From 51198587b4bfa0525cf1134216d55a088702772f Mon Sep 17 00:00:00 2001 From: xuliwenwenwen <74528885+xuliwenwenwen@users.noreply.github.com> Date: Mon, 4 Nov 2024 10:31:21 +0800 Subject: [PATCH] Feat/industry (#43) * feat: industry page * feat: form dark mode * feat: solution banner * feat: workload card * feat: icon font * style: update * fix --- pingcap-jp/acf/acf-banner.php | 14 +- pingcap-jp/bootstrap/blocks.php | 4 +- pingcap-jp/bootstrap/shortcodes.php | 4 +- pingcap-jp/css/blocks/cards.scss | 5 + pingcap-jp/css/blocks/case.scss | 50 ++++--- pingcap-jp/css/blocks/media-content.scss | 23 ++- .../components/banners/banner-default.scss | 26 ++-- .../css/components/cards/card-workload.scss | 33 +++++ pingcap-jp/css/components/header.scss | 2 +- .../menu-dropdowns/menu-dropdown.scss | 26 ++-- pingcap-jp/css/iconfont.scss | 6 +- pingcap-jp/css/master.scss | 1 + pingcap-jp/css/scaffold/typography.scss | 2 +- pingcap-jp/css/vendor/hubspot.scss | 89 ++++++++++-- pingcap-jp/fonts/iconfont/iconfont.ttf | Bin 8496 -> 8496 bytes pingcap-jp/fonts/iconfont/iconfont.woff | Bin 5448 -> 5444 bytes pingcap-jp/fonts/iconfont/iconfont.woff2 | Bin 4476 -> 4536 bytes pingcap-jp/grav-blocks/cards/block.php | 23 ++- pingcap-jp/grav-blocks/cards/block_fields.php | 134 +++++++++++++++++- pingcap-jp/grav-blocks/case/block.php | 46 +++--- pingcap-jp/grav-blocks/case/block_fields.php | 28 +++- .../PingCAP/Components/Cards/CardWorkload.php | 66 +++++++++ .../inc/PingCAP/Components/HubSpotForm.php | 4 +- pingcap-jp/inc/PingCAP/Constants/CPT.php | 1 + pingcap-jp/post-types/solution.php | 46 ++++++ 25 files changed, 540 insertions(+), 93 deletions(-) create mode 100644 pingcap-jp/css/components/cards/card-workload.scss create mode 100644 pingcap-jp/inc/PingCAP/Components/Cards/CardWorkload.php create mode 100644 pingcap-jp/post-types/solution.php diff --git a/pingcap-jp/acf/acf-banner.php b/pingcap-jp/acf/acf-banner.php index 1652ec3..7ba0481 100644 --- a/pingcap-jp/acf/acf-banner.php +++ b/pingcap-jp/acf/acf-banner.php @@ -139,13 +139,12 @@ ), ), 'wrapper' => array( - 'width' => '33', + 'width' => '50', 'class' => '', 'id' => '', ), 'choices' => array( '' => 'Normal', - 'medium' => 'Medium', 'large' => 'Large', ), 'other_choice' => 0, @@ -170,7 +169,7 @@ ), ), 'wrapper' => array( - 'width' => '67', + 'width' => '50', 'class' => '', 'id' => '', ), @@ -761,6 +760,15 @@ 'group_no' => 1, ), ), + array( + array( + 'param' => 'post_type', // post_type | post | page | page_template | post_category | taxonomy | options_page + 'operator' => '==', + 'value' => 'solution', // if options_page then use: acf-options | if page_template then use: template-example.php + 'order_no' => 0, + 'group_no' => 1, + ), + ) ), 'menu_order' => 0, 'position' => 'acf_after_title', // side | normal | acf_after_title diff --git a/pingcap-jp/bootstrap/blocks.php b/pingcap-jp/bootstrap/blocks.php index 0c78e43..9c9070b 100644 --- a/pingcap-jp/bootstrap/blocks.php +++ b/pingcap-jp/bootstrap/blocks.php @@ -35,7 +35,9 @@ PingCAP\Constants\CPT::CASE_STUDY, PingCAP\Constants\CPT::COMMUNITY_ACTIVITY, PingCAP\Constants\CPT::PRESS_RELEASE, - PingCAP\Constants\CPT::EBOOK_WHITEPAPER + PingCAP\Constants\CPT::EBOOK_WHITEPAPER, + PingCAP\Constants\CPT::VIDEO, + PingCAP\Constants\CPT::SOLUTION ]; // Specify which page templates the blocks editor should be visible on diff --git a/pingcap-jp/bootstrap/shortcodes.php b/pingcap-jp/bootstrap/shortcodes.php index a9dc050..fbeb65e 100644 --- a/pingcap-jp/bootstrap/shortcodes.php +++ b/pingcap-jp/bootstrap/shortcodes.php @@ -10,7 +10,8 @@ 'salesforce_id' => '', 'border' => '', 'calendly_id' => '', - 'calendly_url' => '' + 'calendly_url' => '', + 'dark' => '' ], $atts); return Component::render_to_string(Components\HubSpotForm::class, [ @@ -18,6 +19,7 @@ 'form_id' => $params['form_id'], 'salesforce_id' => $params['salesforce_id'], 'border' => $params['border'], + 'dark' => $params['dark'], 'calendly_id' => $params['calendly_id'], 'calendly_url' => $params['calendly_url'] ]); diff --git a/pingcap-jp/css/blocks/cards.scss b/pingcap-jp/css/blocks/cards.scss index 7ff399a..a21656e 100644 --- a/pingcap-jp/css/blocks/cards.scss +++ b/pingcap-jp/css/blocks/cards.scss @@ -6,6 +6,11 @@ } } } + .workload { + .block-cards__container { + gap: 64px; + } + } &__container { --num-cols: 1; diff --git a/pingcap-jp/css/blocks/case.scss b/pingcap-jp/css/blocks/case.scss index b92345f..9f19387 100644 --- a/pingcap-jp/css/blocks/case.scss +++ b/pingcap-jp/css/blocks/case.scss @@ -1,10 +1,33 @@ .case { &-container { - display: flex; - flex-direction: column; + display: grid; gap: 6.4rem; + grid-template-columns: repeat(1, 1fr); + @include media-min($medium) { + gap: 64px 40px; + grid-template-columns: repeat(2, 1fr); + } @include media-min(1200px) { - flex-direction: row; + grid-template-columns: repeat(4, 1fr); + + &[data-num-cols="1"], + &[data-num-cols="2"], + &[data-num-cols="3"] { + .case-title { + grid-column: auto; + } + } + &[data-num-cols="5"] { + .case-framer:nth-of-type(2){ + grid-column-start: 4; + } + } + } + + .case-title { + @include media-min($medium) { + grid-column: span 2 / span 2; + } } h5 { @@ -21,25 +44,19 @@ h4 { color: #fff; } + + .desc { + font-size: 22px; + font-weight: 300; + line-height: 28px; + color: #ffffffa6; + } } &-card { display: block; text-decoration: none; margin-top: 0; - min-width: 272px; transition: all var(--default-transition-params); - &__container { - display: grid; - gap: 6.4rem; - grid-template-columns: repeat(1, 1fr); - @include media-min($medium) { - gap: 4rem; - grid-template-columns: repeat(2, 1fr); - } - @include media-min($large) { - grid-template-columns: repeat(3, 1fr); - } - } &__title { color: #fff; font-size: 24px; @@ -51,6 +68,7 @@ img { height: 3rem; width: auto; + margin-top: 8px; } p { color: #a2adb9; diff --git a/pingcap-jp/css/blocks/media-content.scss b/pingcap-jp/css/blocks/media-content.scss index 63b7a57..2c60c04 100644 --- a/pingcap-jp/css/blocks/media-content.scss +++ b/pingcap-jp/css/blocks/media-content.scss @@ -80,7 +80,7 @@ } &[data-image-size="medium"] { - --grid-areas: ". txt txt txt txt txt img img img img img img"; + --grid-areas: ". txt txt txt txt txt txt img img img img img"; } &[data-image-size="large"] { @@ -134,6 +134,27 @@ padding-bottom: 4rem; padding-left: 1.6rem; + h5 { + font-size: 40px; + font-weight: 700; + line-height: 48px; + color: var(--h5-color); + @include media-min($medium) { + font-size: 50px; + font-weight: 700; + line-height: 66px; + margin: 20px 0; + } + } + + p { + color: #454B51; + } + + ul { + margin-top: 1.6rem; + } + @include media-min($medium) { padding-left: 0; padding-bottom: 0; diff --git a/pingcap-jp/css/components/banners/banner-default.scss b/pingcap-jp/css/components/banners/banner-default.scss index b526a2c..1769913 100644 --- a/pingcap-jp/css/components/banners/banner-default.scss +++ b/pingcap-jp/css/components/banners/banner-default.scss @@ -206,22 +206,16 @@ overflow: hidden; .banner-default__text-content { position: relative; - z-index: 1; - padding-top: 80px; - @include media-min($medium) { - grid-column: 1 / span 12; - padding: 80px 0 140px; - width: 60%; - } - @include media-min(1200px) { - width: 50%; - &.medium { - width: 60%; - } - &.large { - width: 66%; - } - } + z-index: 1; + padding-top: 80px; + @include media-min($medium) { + padding: 80px 0 140px; + } + @include media-min(1200px) { + &.large { + grid-column: 1 / span 8; + } + } h1 { font-size: 48px; font-weight: 700; diff --git a/pingcap-jp/css/components/cards/card-workload.scss b/pingcap-jp/css/components/cards/card-workload.scss new file mode 100644 index 0000000..bd2dd04 --- /dev/null +++ b/pingcap-jp/css/components/cards/card-workload.scss @@ -0,0 +1,33 @@ +.card-workload { + display: flex; + text-decoration: none; + flex-direction: column; + @include media-min($large){ + flex-direction: row; + } + + &__image { + width: 150px; + height: 150px; + margin-right: 20px; + @include media-min($medium){ + margin-right: 40px; + } + } + + &__content { + h5 { + font-size: 25px; + font-weight: 500; + line-height: 31px; + color: #fff; + } + p { + font-size: 16px; + font-weight: 300; + line-height: 22px; + color: #a2adb9; + margin: 24px 0; + } + } +} diff --git a/pingcap-jp/css/components/header.scss b/pingcap-jp/css/components/header.scss index bcf51cb..3808a71 100644 --- a/pingcap-jp/css/components/header.scss +++ b/pingcap-jp/css/components/header.scss @@ -275,7 +275,7 @@ html.mobile-menu-cta-active { &:nth-child(2) { .menu-dropdown-columns { - transform: translatex(-25%); + transform: translatex(-34%); } } } diff --git a/pingcap-jp/css/components/menu-dropdowns/menu-dropdown.scss b/pingcap-jp/css/components/menu-dropdowns/menu-dropdown.scss index 76914f4..3acff9d 100644 --- a/pingcap-jp/css/components/menu-dropdowns/menu-dropdown.scss +++ b/pingcap-jp/css/components/menu-dropdowns/menu-dropdown.scss @@ -5,6 +5,15 @@ .menu-dropdown__item + .menu-dropdown__item { border-left: 1px solid rgba(83, 85, 94, 0.5); } + + .menu-dropdown__feature + .menu-dropdown__links-column { + padding-left: 48px; + } + + .menu-dropdown__links-column + .menu-dropdown__links-column { + padding-left: 48px; + margin-left: 48px; + } } &__inner-reserve { @@ -22,8 +31,12 @@ } .menu-dropdown__feature + .menu-dropdown__links-column { - padding-left: 0; - padding-right: 4.8rem; + padding-right: 48px; + } + + .menu-dropdown__links-column + .menu-dropdown__links-column { + padding-right: 48px; + margin-right: 48px; } } @@ -113,21 +126,12 @@ } } } - & + .menu-dropdown__links-column { - padding-left: 4.8rem; - padding-right: 0; - } } &__links-column { display: flex; flex-direction: column; gap: 1.6rem; - padding-right: 4.8rem; - - & + .menu-dropdown__links-column { - padding-left: 4.8rem; - } a { display: flex; diff --git a/pingcap-jp/css/iconfont.scss b/pingcap-jp/css/iconfont.scss index 062f7df..d2007c0 100644 --- a/pingcap-jp/css/iconfont.scss +++ b/pingcap-jp/css/iconfont.scss @@ -1,8 +1,8 @@ @font-face { font-family: "iconfont"; /* Project id 4677496 */ - src: local(""), url("#{$fonts-url-base}/fonts/iconfont/iconfont.woff?t=1725963639600") format("woff"), - url("#{$fonts-url-base}/fonts/iconfont/iconfont.woff2?t=1725963639600") format("woff2"), - url("#{$fonts-url-base}/fonts/iconfont/iconfont.ttf?t=1725963639600") format("truetype"); + src: local(""), url("#{$fonts-url-base}/fonts/iconfont/iconfont.woff?t=1730186159719") format("woff"), + url("#{$fonts-url-base}/fonts/iconfont/iconfont.woff2?t=1730186159719") format("woff2"), + url("#{$fonts-url-base}/fonts/iconfont/iconfont.ttf?t=1730186159719") format("truetype"); } [class^="icon-"], diff --git a/pingcap-jp/css/master.scss b/pingcap-jp/css/master.scss index 6de1b8c..4999423 100644 --- a/pingcap-jp/css/master.scss +++ b/pingcap-jp/css/master.scss @@ -90,6 +90,7 @@ Components @import "components/cards/card-event"; @import "components/cards/card-slides"; @import "components/cards/card-bg"; +@import "components/cards/card-workload"; @import "components/archive/load-more"; @import "components/archive/navigation"; diff --git a/pingcap-jp/css/scaffold/typography.scss b/pingcap-jp/css/scaffold/typography.scss index a3c1ed5..89a886f 100644 --- a/pingcap-jp/css/scaffold/typography.scss +++ b/pingcap-jp/css/scaffold/typography.scss @@ -210,7 +210,7 @@ h6 { .xxlarge, %xxlarge-text { font-size: calc(var(--body-font-size) + 0.6rem) !important; - line-height: 1.5; + line-height: 30px; } .xlarge, diff --git a/pingcap-jp/css/vendor/hubspot.scss b/pingcap-jp/css/vendor/hubspot.scss index f475ed4..aca56d0 100644 --- a/pingcap-jp/css/vendor/hubspot.scss +++ b/pingcap-jp/css/vendor/hubspot.scss @@ -77,13 +77,16 @@ padding: 0; } - ul li { - margin: 0 !important; - &::before { - display: none; - } - label > input { - margin-right: 0.6rem; + ul { + list-style: none; + li { + margin: 0 !important; + &::before { + display: none; + } + label > input { + margin-right: 0.6rem; + } } } @@ -92,7 +95,77 @@ } select.is-placeholder { - color: rgba(var(--color-rgb-gray-dark), 0.4);; + color: rgba(var(--color-rgb-gray-dark), 0.4); + } + + &.dark { + background: transparent; + padding: 0; + border: 0; + p { + color: #fff; + } + .form-columns-0 { + display: none; + } + input, + select, + textarea { + margin: 0; + background-color: transparent; + height: 6rem; + border-radius: unset; + color: #fff; + border-color: #5d6974; + &::placeholder { + color: #fff; + } + } + select { + background-image: var(--form-select-arrow-white-img); + } + input[type="checkbox"], + input[type="submit"] { + height: auto; + } + a { + color: #fff !important; + } + .hs-button { + letter-spacing: 0; + position: relative; + display: inline-flex; + align-items: center; + justify-content: center; + padding: 0.8rem 1.4rem; + width: 15.8rem; + height: 4rem; + border: none; + font-size: 1.6rem; + line-height: 2.2rem; + font-weight: 500; + text-decoration: none; + background: #fff; + color: #000; + -webkit-appearance: none; + appearance: none; + outline: 0; + overflow: hidden; + cursor: pointer; + font-family: var(--font-moderat); + transition: all 0.2s ease-in-out; + + span { + position: relative; + z-index: 1; + color: #000; + } + + &:hover { + background: #dc150b; + color: #fff; + } + } } } diff --git a/pingcap-jp/fonts/iconfont/iconfont.ttf b/pingcap-jp/fonts/iconfont/iconfont.ttf index 43c13135f360dfb747009b200be6aca24df71cd1..1e8996d12474635a239a3451e1bd85786296d3b0 100644 GIT binary patch delta 123 zcmdnsw83eDgUIgVJAxP(*mW2fL@#8dCZ=ev-jg{oWQvSS@lCCGew(ih+$;l$A`r6*Dhe{a4h#F+z_hBN;cpmI!+!=whQF&A8yLeFr)n`atp3-q UnrU^zzlH{;hSi&AiBIDM06M%Y)c^nh diff --git a/pingcap-jp/fonts/iconfont/iconfont.woff b/pingcap-jp/fonts/iconfont/iconfont.woff index 3faf5074daebd365d436f15334008cc0b06689ae..952883060cd8069e2fbee9a1304208bdedc35935 100644 GIT binary patch delta 4074 zcmVl_W%GD(7VUDQfOsiWB>pW>!e&aPyMklC5D_kGX3_ji8hT;e162!BamA=Q7Ro}|fjgg`hD*J6ou zHl=k%L@gEwM=+I5Cqi?a1|=y7`JhyP zB`Lj|Zg%s{X(=qJF;!EkqiP*~!F2?GknWOI;4Q`(IjV};jLjj44fUoBH0|#I&e-E(FVWoSA5SN0NJrxC% zaDiPat6vwat@Q!%`6h|4wl>HvLEY4M`3!3*t(B`^I){I!>F3jHAbMQpYR3W#AYK;A z%oPEyPr%PeDRIGRk%H%g(py34SWs%2)}4KF^5prGCr1w)*gzlQrN_LNeO}U!{)u}4 zPO`O^F7fHb@;+Wg=A#a+q?;@uYsu!aCUGs3PC`KROE60ffkQ!)^|Y;Lc?y(pAeOim zI7Y-7=>>mqC9TdV7e@Oum3>|}ud#-WR@d}R?V|Ke!Ot!+#|L>|1v?3(q_R``o0aK? zw^Z$|+Ih9KV!WbWVm0O6e;*;z4e!T&be#J9ZZ|x_5g42;E`CWF8bN6<=q)76EkZ)z z2uYA=lxBM&hv=zA3?(6*gNPc6LXIYBpj1?<7S4Yz-|e*jwrOx6ud4Zh!KQd1TnmBb zc4znUFVw_DtP$h92Ast^QVmI{Yf{xk0|SdxwJA{nHQ|buWJA}T`|j+Tn`D=?h?*Z9 zSQLpg86wt+3zH409bDa#9k}%GNtCps1>8V3klRsvBZ=A?3I3sufk-2bsQyT*tC!|L z#4>*oe@4RKs;5*v(F@sBS0k^1b}Ul8bwxpqWNp>PjA3UZjS#`Yc1YlxgGP!A{&YCl zstk_>0%OBUYj8LyDR+M0L+lGeQ2bRvkv`Zjh63@0%?WM34}_Bs@4EcoK!>TH(wleQ zEYSRa{?k40^oagbl@&rw)ivL|>VY#L@EU&+hAHb6KSvoaqeCXg^0G58|(~!Pfil4&a7L)dBw;S|N=5W|bhkM%w zvc5qPjhfEwj|Kols3407PfJ0Uct-v+F)ZHoZ^Im5&wB-*@q!EVLQwKhM@s~E_0L3X#^LKV z3l4vV`3qYm;xF;EFc*0`K{`l|tU~2V6NdxH5(#|HF)y|LXVG`vp2G_@}6Qgc078qHJkSr<+?et%dXUP%+uwo-879yDl_Zt*s{e5Ho~O zLMAT=Pa}W#k$zlNi~};PMpVRT*3O|#i4w9OLNt-Kv$*TLN(tjW8=ONDoE(3X9HTUA zM{&W~Oq#b9VxE0=MY;J>a@V%a+3xP_=52TN?&+u$szMd!pLTCwzpkURvt!-**Lk8T zvLw=kOK7=!$F-HKcI|AEuQBs|ULQTD>$w$N2=%<+13p@FQy?V!0`r@uN8pL=t7G-` zvDM!BHMiC$Z@X_})aq=pwhw=JD!Av%1EIhp_0IK4`Wrm&(C!ZX3$N2OJxyg${9{1{s4g@qs^Wzu7 z84NxPrl9~P8!vrDK8D55q5Ksr#{%c__!za^5vR<*lm9Dx6~~nck40L^Rb(;8vqV)9 znL_OaBb%gvAXP;}SCL9{pie^-;cCYu2&0MS09~!fS%y;zCCh*Jtn$YmJvy{!&(P6F zWByfp*n?YRL-y7saAe!POSalWY-8^ZXGgCmCKhxqSkQSj7hCkKj<29Bd+^(fF4cYQ z+_|sSU0U?*2ba0ez0le%9^Ll0FH~(iDt7-%zTCHWN3q-$MPVNAtb6u((Zg0XspH6! zH3b(S8VIcro=ty2Fq!j7z;y$kFvq0hg5nnUwV3#{?4uUr{k@L}-=)ux28_;dPq-sV zNP_22Rdk?2lKRncQi&!EbfYvUP^bGgEm&u5xiM84>)W)kxkhT)zI}bFI(pqE_F4PG z`|q`D2Om0cZQG7JZfvRS*|L)s(rvXBVPD(YEdx0v(o}z4)mT60>VdD^vcl}SDy?k% z`u_WSs?1n;!OG#C+pZ3lV=j)xDi4Dga{=N_No7(Q#G7BWRk5_rcHr=nQ+7&C$-v=g z#6{@O=Pi68)Rv64wMCO{C^NVfuN?mR;a6Nj#~(QS(qR}g^LaBLY~!`1_n!*|x4&4V z98&#mu~>g3Q+_5%PoOT`-YP+@1iKOpO4y|+j~G!vU6eW8rg4WRg_}LGOnx1 zT+)JGf@5zcpk_c#^;mWRXeF{NGo?aFa!oS1W-}KjVm;UQ#5~~)uIw{gsncrqtz=KE zaGrEl2uj=9P1tPpmet9TSWi6Ovy?afon`f{95jDT>|j}Jbk*LKEBCJQ);IZU;d#`J z@3J>#Jj01RivAMm-HShr1k!sv!>yf1S~)5dx;k!Lf9oxS>#w?6TQG0Yb*F~5u30za z^Cc3ijsr25t`?U%-+OW23UF>+e`80N*=ns^{i7`#mo8gWU7gO13~d|Skh3Pq>CPu! z{7!#iVf>E{eVP5&agO8mt|Q~{e*qEBk6D%Jp_2WNjg?rSn%UHGi|`lE!Xb0aV&fL= zzdTOwc2CjqXWh3-zKjVG9NR}KJzLTJA=y^t32L$lHepUo2+HM)=g!gpaCf}&3VmYw z?4P4=b9Tfd$1~Bu7M^9Nq7ZST^h0(r3XXr5Ga(Z7&iUVwXXbkP*Ldtz19}QM8T`8H z*FhKkIwA+Y%J#CogJ5#y*-_X6TNL&fdkl85qYCVTU5ZeD_UzeX$BwbTd*coL{rB1P zTk{aScVXhbY2L?@Zw!%~@?LWUSuL{&+tb}C~V8NaQjkR6n`Xv8zf5R}Br7>a-O z+~0M57ryWA-u=?l%kIAY_JdO|B{L8g=S{nyZ${&ntQn0DdVXq*PN4mAA2JU$L@UM1 zoLn|yyxXNReiSN}QNges|>GUZ4=W`~&EEjedXSHMRx;;y`~19fC4R#*0PQH2a~*W_?qfcn{r+ zh(xOoskUJoegj#@_!f(vKOcpc&PN&JXU}uY%S_|Nphq}fJPkNxgoNdO7NwQ!etLwp z!z1qhL}}2P5gX7#c|ANf@P6FiA$eaOzw)75!@aSlxRFj^pQ`fuxi98X1yX+@k4(@` zH4zPkP7DknlZ`lzJAi8+p#yvy$6)|X1e_vsJf?HNvA6}5d;#t+@%FchuK>dn@4Pfw zAPj!w9AblLB&dyPSuQ%1a-V+{irA-g(s-(h=Y@D+!W|Jm?hLL-)`TJ+>>ck#Up8Nk zzQ^t;6odgc@44&=)^FKZar%EW*4P#lO_QI)lpl!9Vgs&D4>v^t6Mj9TDSo_PIAiGX zEpAWabetW60!AAJK^fu8cGzFxJ$3E6KY!?xe79Rk%0DZ~QwHL{EJLl@1t5gb?^ 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 Ji3dCY003MO&YS=M delta 4462 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 AOaK4? diff --git a/pingcap-jp/grav-blocks/cards/block.php b/pingcap-jp/grav-blocks/cards/block.php index 0896009..225ad2f 100644 --- a/pingcap-jp/grav-blocks/cards/block.php +++ b/pingcap-jp/grav-blocks/cards/block.php @@ -8,7 +8,7 @@ $block_title_desc = isset($block_title_desc) && is_string($block_title_desc) ? $block_title_desc : ACF::get_sub_field_string('block_title_desc'); $card_type = isset($card_type) && is_string($card_type) ? $card_type : ACF::get_sub_field_string('card_type'); -if (!in_array($card_type, ['', 'media', 'solution', 'integration', 'bg', 'tier'], true)) { +if (!in_array($card_type, ['', 'media', 'solution', 'integration', 'bg', 'workload', 'tier'], true)) { $card_type = ''; } @@ -32,6 +32,10 @@ $cards = ACF::get_sub_field_array('media_cards'); break; + case 'workload': + $cards = ACF::get_sub_field_array('workload_cards'); + break; + case 'tier': $cards = ACF::get_sub_field_array('tier_cards'); break; @@ -62,6 +66,11 @@ case 'tier': $block_classes[] = 'tier'; break; + + case 'workload': + $block_classes[] = 'workload'; + break; + default: $num_cols = count($cards) % 2 === 0 ? 2 : 3; @@ -141,6 +150,18 @@ break; + case 'workload': + $component_name = Components\Cards\CardWorkload::class; + + $render_params = [ + 'image' => Arrays::get_value_as_array($card, 'image'), + 'subtitle' => Arrays::get_value_as_string($card, 'subtitle'), + 'title' => Arrays::get_value_as_string($card, 'title'), + 'content' => Arrays::get_value_as_string($card, 'content'), + ]; + + break; + case 'media': $component_name = Components\Cards\CardMedia::class; $link = BlueprintBlocks::get_button_field_values('link', $card); diff --git a/pingcap-jp/grav-blocks/cards/block_fields.php b/pingcap-jp/grav-blocks/cards/block_fields.php index aab21f5..d513311 100644 --- a/pingcap-jp/grav-blocks/cards/block_fields.php +++ b/pingcap-jp/grav-blocks/cards/block_fields.php @@ -73,6 +73,7 @@ 'media' => 'Media', 'solution' => 'Solution', 'integration' => 'Integration', + 'workload' => 'Workload', 'bg' => 'Bg Color', 'tier' => 'Tier', ), @@ -355,7 +356,7 @@ 'max_size' => '', 'mime_types' => '', ), - array ( + array( 'key' => 'field_' . $block . '_card_integration_image_size', 'label' => 'Enable Image Full Size', 'name' => 'is_full', @@ -363,7 +364,7 @@ 'instructions' => '', 'required' => 0, 'conditional_logic' => 0, - 'wrapper' => array ( + 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', @@ -462,20 +463,20 @@ 'button_label' => 'Add Card', 'sub_fields' => array_merge( array( - array ( - 'key' => 'field_' . $acf_group . '_card_bg_color', + array( + 'key' => 'field_' . $block . '_card_bg_color', 'label' => 'Card Bg Color', 'name' => 'card_bg_color', 'type' => 'select', 'instructions' => '', 'required' => 0, 'conditional_logic' => 0, - 'wrapper' => array ( + 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), - 'choices' => array ( + 'choices' => array( 'red' => 'Red', 'violet' => 'Violet', 'blue' => 'Blue', @@ -743,6 +744,127 @@ ) ), + array( + 'key' => 'field_' . $block . '_workload_cards', + 'label' => 'Cards', + 'name' => 'workload_cards', + 'type' => 'repeater', + 'instructions' => '', + 'required' => 1, + 'conditional_logic' => array( + array( + array( + 'field' => 'field_' . $block . '_card_type', + 'operator' => '==', + 'value' => 'workload', + ), + ), + ), + 'wrapper' => array( + 'width' => '', + 'class' => '', + 'id' => '', + ), + 'collapsed' => '', + 'min' => 1, + 'max' => '', + 'layout' => 'block', // table | block | row + 'button_label' => 'Add Card', + 'sub_fields' => array_merge( + array( + array( + 'key' => 'field_' . $block . '_item_image', + 'label' => 'Icon Image', + 'name' => 'image', + 'instructions' => '', + 'type' => 'image', + 'required' => 1, + 'conditional_logic' => 0, + 'wrapper' => array( + 'width' => '', + 'class' => '', + 'id' => '', + ), + 'return_format' => 'array', // array | url | id + 'preview_size' => 'thumbnail', + 'library' => 'all', // all | uploadedTo + 'min_width' => '', + 'min_height' => '', + 'min_size' => '', + 'max_width' => '', + 'max_height' => '', + 'max_size' => '', + 'mime_types' => '', + ), + array( + 'key' => 'field_' . $block . '_item_subtitle', + 'label' => 'Subtitle', + 'name' => 'subtitle', + 'type' => 'text', + 'instructions' => '', + 'required' => 0, + 'conditional_logic' => 0, + 'wrapper' => array( + 'width' => '', + 'class' => '', + 'id' => '', + ), + 'default_value' => '', + 'placeholder' => '', + 'formatting' => 'none', // none | html + 'prepend' => '', + 'append' => '', + 'maxlength' => '', + 'readonly' => 0, + 'disabled' => 0, + ), + array( + 'key' => 'field_' . $block . '_item_title', + 'label' => 'Title', + 'name' => 'title', + 'type' => 'text', + 'instructions' => '', + 'required' => 0, + 'conditional_logic' => 0, + 'wrapper' => array( + 'width' => '', + 'class' => '', + 'id' => '', + ), + 'default_value' => '', + 'placeholder' => '', + 'formatting' => 'none', // none | html + 'prepend' => '', + 'append' => '', + 'maxlength' => '', + 'readonly' => 0, + 'disabled' => 0, + ), + array( + 'key' => 'field_' . $block . '_item_content', + 'label' => 'Content', + 'name' => 'content', + 'type' => 'textarea', + 'instructions' => '', + 'required' => 1, + 'conditional_logic' => 0, + 'wrapper' => array( + 'width' => '', + 'class' => '', + 'id' => '', + ), + 'default_value' => '', + 'placeholder' => '', + 'maxlength' => '', + 'rows' => 4, + 'new_lines' => "\n", // wpautop | br | '' + 'readonly' => 0, + 'disabled' => 0, + ), + ), + ) + ), + array( 'key' => 'field_' . $block . '_tier_cards', 'label' => 'Tier Cards', diff --git a/pingcap-jp/grav-blocks/case/block.php b/pingcap-jp/grav-blocks/case/block.php index a0868bc..9ac3918 100644 --- a/pingcap-jp/grav-blocks/case/block.php +++ b/pingcap-jp/grav-blocks/case/block.php @@ -5,29 +5,35 @@ use Blueprint\Images; $block_title = ACF::get_sub_field_string('block_title'); +$block_title_desc = ACF::get_sub_field_string('block_title_desc'); $cards = ACF::get_sub_field_array('case_cards'); ?>
-
-
- +
+ +
+
+ +

+ +
+ + + +
diff --git a/pingcap-jp/grav-blocks/case/block_fields.php b/pingcap-jp/grav-blocks/case/block_fields.php index 8db00c4..d7d9101 100644 --- a/pingcap-jp/grav-blocks/case/block_fields.php +++ b/pingcap-jp/grav-blocks/case/block_fields.php @@ -17,7 +17,29 @@ 'name' => 'block_title', 'type' => 'text', 'instructions' => '', - 'required' => 1, + 'required' => 0, + 'conditional_logic' => 0, + 'wrapper' => array( + 'width' => '', + 'class' => '', + 'id' => '', + ), + 'default_value' => '', + 'placeholder' => '', + 'formatting' => 'none', // none | html + 'prepend' => '', + 'append' => '', + 'maxlength' => '', + 'readonly' => 0, + 'disabled' => 0, + ), + array( + 'key' => 'field_' . $block . '_block_title_desc', + 'label' => 'Block Title Desc', + 'name' => 'block_title_desc', + 'type' => 'text', + 'instructions' => '', + 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', @@ -66,7 +88,7 @@ 'id' => '', ), 'return_format' => 'object', // array | url | id - 'preview_size' => 'medium', + 'preview_size' => 'thumbnail', 'library' => 'all', // all | uploadedTo 'min_width' => '', 'min_height' => '', @@ -133,7 +155,7 @@ 'class' => '', 'id' => '', ), - 'post_type' => PingCAP\Constants\CPT::CASE_STUDY, + 'post_type' => [PingCAP\Constants\CPT::CASE_STUDY, PingCAP\Constants\CPT::BLOG, PingCAP\Constants\CPT::VIDEO], 'taxonomy' => array (), 'allow_null' => 0, 'multiple' => 0, diff --git a/pingcap-jp/inc/PingCAP/Components/Cards/CardWorkload.php b/pingcap-jp/inc/PingCAP/Components/Cards/CardWorkload.php new file mode 100644 index 0000000..2efb504 --- /dev/null +++ b/pingcap-jp/inc/PingCAP/Components/Cards/CardWorkload.php @@ -0,0 +1,66 @@ + + */ + public $image = null; + + /** + * The workload subtitle + * + * @var string + */ + public string $subtitle = ''; + + /** + * The workload title + * + * @var string + */ + public string $title = ''; + + /** + * The workload content + * + * @var string + */ + public string $content = ''; + + public function __construct(array $params) + { + $this->image = Arrays::get_value_as_array($params, 'image'); + $this->subtitle = Arrays::get_value_as_string($params, 'subtitle'); + $this->title = Arrays::get_value_as_string($params, 'title'); + $this->content = Arrays::get_value_as_string($params, 'content'); + } + + public function render(): void + { +?> +
+ image) { + Images::safe_image_output($this->image, ['class' => 'card-workload__image']); + } + ?> +
+ subtitle) { ?> +
subtitle; ?>
+ +
title; ?>
+ content; ?> +
+
+calendly_id = Arrays::get_value_as_string($params, 'calendly_id'); $this->calendly_url = Arrays::get_value_as_string($params, 'calendly_url'); $this->border = Arrays::get_value_as_string($params, 'border'); + $this->dark = Arrays::get_value_as_string($params, 'dark'); if (!$this->portal_id) { $this->message = 'portal id for hubspot form must be specified'; @@ -51,7 +53,7 @@ public function render(): void } ?> -
+
message); ?>
$plural_label, + 'description' => '', + 'public' => true, + 'publicly_queryable' => true, + 'show_ui' => true, + 'show_in_menu' => true, + 'show_in_rest' => true, + 'capability_type' => 'page', + 'map_meta_cap' => true, + 'hierarchical' => false, + 'rewrite' => [ + 'with_front' => false, + 'slug' => PingCAP\Constants\CPT::SOLUTION . 's' + ], + 'query_var' => true, + 'exclude_from_search' => false, + 'can_export' => true, + 'has_archive' => false, + 'menu_icon' => 'dashicons-portfolio', + 'supports' => ['title'], + 'taxonomies' => [], + 'labels' => [ + 'name' => $plural_label, + 'singular_name' => $single_label, + 'menu_name' => $plural_label, + 'add_new' => 'Add ' . $single_label, + 'add_new_item' => 'Add New ' . $single_label, + 'edit' => 'Edit', + 'edit_item' => 'Edit ' . $single_label, + 'new_item' => 'New ' . $single_label, + 'view' => 'View ' . $single_label, + 'view_item' => 'View ' . $single_label, + 'search_items' => 'Search ' . $plural_label, + 'not_found' => 'No ' . $plural_label . ' Found', + 'not_found_in_trash' => 'No ' . $plural_label . ' Found in Trash', + 'parent' => 'Parent ' . $single_label, + ] + ] +);