@@ -6,6 +6,8 @@ import { Button } from '@package/components';
66import { flattenToAppURL } from '@plone/volto/helpers' ;
77import { UniversalLink } from '@plone/volto/components' ;
88
9+ import yourLogoHereSVG from './YourLogo.svg' ;
10+
911const FooterSponsors = ( props ) => {
1012 const { type = 'platinum' } = props ;
1113 const subrequest_key = `${ type } _sponsors` ;
@@ -31,24 +33,64 @@ const FooterSponsors = (props) => {
3133 ) ;
3234 } , [ dispatch , subrequest_key , type ] ) ;
3335
34- const plural = sponsors ?. items . length > 1 ? 's' : '' ;
36+ const plural = sponsors ?. items . length > 1 ? 's' : '(s) ' ;
3537 const capitalizedType = String ( type [ 0 ] ) . toUpperCase ( ) + String ( type ) . slice ( 1 ) ;
38+ const sponsorItems = sponsors ?. loaded
39+ ? sponsors . items . length > 0 &&
40+ sponsors . items . map ( ( item ) => {
41+ item [ 'size' ] = 'thumb' ;
42+ return item ;
43+ } )
44+ : [ ] ;
45+
46+ const listingSize = 5 ;
47+
48+ if ( sponsorItems . length > 0 ) {
49+ const remainder = sponsorItems . length % listingSize ;
50+ if ( remainder > 0 ) {
51+ const placeholdersToAdd = listingSize - remainder ;
52+ for ( let i = 0 ; i < placeholdersToAdd ; i ++ ) {
53+ sponsorItems . push ( {
54+ '@id' : '/foundation/sponsorship' ,
55+ title : 'Put your logo here' ,
56+ size : 'thumb' ,
57+ isPlaceholder : true ,
58+ image : {
59+ scales : { thumb : { download : yourLogoHereSVG } } ,
60+ } ,
61+ } ) ;
62+ }
63+ }
64+ }
65+
3666 return sponsors ?. loaded
3767 ? sponsors . items . length > 0 && (
3868 < div className = { `footer-sponsors-listing ${ subrequest_key } ` } >
3969 < div className = "footer-sponsors-listing-headline" >
40- < h3 > { `Our proud ${ capitalizedType } Sponsor ${ plural } ` } </ h3 >
70+ < h3 > Powering the Future of Open Sovereignty </ h3 >
4171 < Button
4272 as = { UniversalLink }
4373 primary
4474 size = "medium"
4575 href = { flattenToAppURL ( '/foundation/sponsorship' ) }
4676 arrow = { true }
4777 >
48- Become a Sponsor
78+ Become a sponsor — every contribution shapes our future!
4979 </ Button >
5080 </ div >
51- < SponsorCardListing items = { sponsors . items || [ ] } />
81+ < p >
82+ Plone thrives because of organizations that believe in secure,
83+ independent, and open technology. We are deeply grateful to our
84+ Platinum Sponsors for their visionary support in sustaining the
85+ world's most secure CMS. Join them in shaping the future of digital
86+ freedom.
87+ </ p >
88+
89+ < SponsorCardListing
90+ items = { sponsorItems || [ ] }
91+ cols = { listingSize }
92+ randomize = { false }
93+ />
5294 </ div >
5395 )
5496 : '' ;
0 commit comments