Saps per a què fem servir les cookies? Recopilem dades sobre el teu comportament de navegació per mitjà de cookies pròpies i de tercers, que usarem per analitzar la teva navegació amb la finalitat de millorar tant les funcionalitats del lloc web com els productes i serveis que posem a la teva disposició, per gestionar els espais publicitaris, i per personalitzar-te la nostra oferta de productes i serveis, d'acord amb els teus hàbits de navegació i dels continguts visualitzats. Consulta tota la informació sobre l'ús de cookies en la nostra Política de cookies.
A imagin ens prenem molt seriosament el nostre compromís amb el planeta i els seus oceans. Per això estem tan orgullosos de poder compartir amb tu el nostre projecte imagin SeaBin.
Una solució innovadora per lluitar contra la contaminació dels nostres mars i oceans.
De què es tracta?
Els dispositius SeaBin són unes papereres marines flotants fabricades amb materials 100% reciclats.
Capaces de recol·lectar cada any fins a 1,4 tones de residus i 300.000 objectes de plàstic del mar.
Contribueixen a netejar els oceans a través de la captura de plàstics, restes flotants i microfibres.
Tot per menys d'1 € d'electricitat al dia.
On es troben?
On es troben?
S'ha produït un error mentre es processava la plantilla.
The following has evaluated to null or missing: ==> journalArticleLocalService.fetchJournalArticleByUuidAndGroupId(webContentData.uuid, themeDisplay.getScopeGroupId()) [in template "554383#554429#859110" at line 143, column 38] ---- Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ja = journalArticleLocalService.fetch... [in template "554383#554429#859110" at line 143, column 33] ----
1<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
2<#assign portletRequestModel = objectUtil("com.liferay.portal.kernel.portlet.PortletRequestModel", renderRequest, renderResponse) />
3<#assign style = ""/>
4<#if parentStructureFieldSet1019244.selColorDeFondo?? && (parentStructureFieldSet1019244.selColorDeFondo.getData() != "" || parentStructureFieldSet1019244.damImagenFondoFieldSet.damImagenFondo.getData() != "")>
5 <#assign backgroundStyle = ""
6 imagePath = ""
7 backgroundColor = ""
8 repeatable = ""
9 backgroundSize = ""
10 backgroundPosition = ""
11 />
12
13 <#if parentStructureFieldSet1019244.damImagenFondoFieldSet.damImagenFondo.getData() != "">
14 <#assign imagePath = "url('" + parentStructureFieldSet1019244.damImagenFondoFieldSet.damImagenFondo.getData() + "')">
15 </#if>
16
17 <#if parentStructureFieldSet1019244.selColorDeFondo.getData() != "">
18 <#if parentStructureFieldSet1019244.selColorDeFondo.getData() == 'white'>
19 <#assign backgroundColor = "#FFFFFF">
20 </#if>
21 <#if parentStructureFieldSet1019244.selColorDeFondo.getData() == 'gray-10'>
22 <#assign backgroundColor = "#F5F5F5">
23 </#if>
24 <#if parentStructureFieldSet1019244.selColorDeFondo.getData() == 'gray-gradient'>
25 <#assign backgroundColor = "linear-gradient(180deg, #E0E0E0 0%, #FFFFFF 100%)">
26 </#if>
27 <#if parentStructureFieldSet1019244.selColorDeFondo.getData() == 'green-gradient'>
28 <#assign backgroundColor = "linear-gradient(90deg, #00EABF 0%, #00F198 100%)">
29 </#if>
30 </#if>
31
32 <#if parentStructureFieldSet1019244.damImagenFondoFieldSet.txtImagenFondoRepetible.getData() != "">
33 <#assign repeatable = "background-repeat:" + parentStructureFieldSet1019244.damImagenFondoFieldSet.txtImagenFondoRepetible.getData()/>
34 </#if>
35
36 <#if parentStructureFieldSet1019244.damImagenFondoFieldSet.txtImagenFondoAncho.getData() != "" || parentStructureFieldSet1019244.damImagenFondoFieldSet.txtImagenFondoAlto.getData() != "">
37 <#assign backgroundSize = "background-size:" + parentStructureFieldSet1019244.damImagenFondoFieldSet.txtImagenFondoAncho.getData() + " " + parentStructureFieldSet1019244.damImagenFondoFieldSet.txtImagenFondoAlto.getData()/>
38 </#if>
39
40 <#if parentStructureFieldSet1019244.damImagenFondoFieldSet.txtImagenFondoPosicionHorizontal.getData() != "" || parentStructureFieldSet1019244.damImagenFondoFieldSet.txtImagenFondoPosicionVertical.getData() != "">
41 <#assign backgroundPosition = "background-position:" + parentStructureFieldSet1019244.damImagenFondoFieldSet.txtImagenFondoPosicionHorizontal.getData() + " " + parentStructureFieldSet1019244.damImagenFondoFieldSet.txtImagenFondoPosicionVertical.getData()/>
42 </#if>
43
44 <#if imagePath != "" && backgroundColor != "">
45
46 <#assign backgroundStyle = "background: " + imagePath + "," + backgroundColor/>
47
48 <#elseif imagePath == "" && backgroundColor != "">
49
50 <#assign backgroundStyle = "background: " + backgroundColor/>
51
52 <#elseif imagePath != "" && backgroundColor == "">
53
54 <#assign backgroundStyle = "background: " + imagePath/>
55
56 </#if>
57
58 <#assign style = [backgroundStyle, repeatable, backgroundSize, backgroundPosition]?join(";")>
59</#if>
60
61<#assign thereIsIntersection = parentStructureFieldSet1019244.damSvgIntersection?? && parentStructureFieldSet1019244.damSvgIntersection.getData() != ''>
62
63<div id="<@portlet.namespace />" class="d2 highlighted-features container-fluid ${thereIsIntersection?then('pb-0', '')}" style="${style}">
64
65 <div class="container">
66 <#if htmlTitulo?? && htmlTitulo.getData() != "">
67 <div class="row">
68 <div class="col-12 px-0 text-${htmlTitulo.selTitleAlineacion.getData()}">
69 ${htmlTitulo.getData()}
70 </div>
71 </div>
72 </#if>
73
74 <#if txtDescripcion?? && txtDescripcion.getData()?has_content>
75 <div class="row">
76 <#assign cssClass = "">
77 <#if txtDescripcion.selDescripcionAlineacion.getData() == "left">
78 <#assign cssClass></#assign>
79 <#elseif txtDescripcion.selDescripcionAlineacion.getData() == "center">
80 <#assign cssClass>offset-sm-3</#assign>
81 <#elseif txtDescripcion.selDescripcionAlineacion.getData() == "right">
82 <#assign cssClass>offset-sm-6</#assign>
83 </#if>
84 <div class="col-12 col-sm-6 d-sm-block body-lg my-3 text-${txtDescripcion.selDescripcionAlineacion.getData()} ${cssClass}">
85 ${txtDescripcion.getData()}
86 </div>
87 </div>
88 </#if>
89
90 <#assign alineacionImagen=damImagenPrincipal.selImagenAlineacion.getData()/>
91 <#if alineacionImagen == "1">
92 <#assign col1Order = 2, col2Order = 3>
93 <#elseif alineacionImagen == "2">
94 <#assign col1Order = 1, col2Order = 3>
95 <#elseif alineacionImagen == "3">
96 <#assign col1Order = 1, col2Order = 2>
97 </#if>
98
99 <#assign keyBenefitsSize=jasKeyBenefits.getSiblings()?size/>
100
101 <#if damImagenPrincipal?has_content && damImagenPrincipal.getData() != "">
102 <div class="content">
103
104 <div class="order-${alineacionImagen} promo-image">
105 <img alt="${damImagenPrincipal.getAttribute("alt")!""}" data-src="${damImagenPrincipal.getData()}">
106 </div>
107
108 <#assign chunks = jasKeyBenefits.getSiblings()?chunk(keyBenefitsSize / 2)>
109
110 <div class="feature-list-col order-${col1Order}">
111 <#list chunks[0] as cell>
112
113 <#assign
114 webContentData = jsonFactoryUtil.createJSONObject(cell.getData())
115 ja = journalArticleLocalService.fetchJournalArticleByUuidAndGroupId(webContentData.uuid, themeDisplay.getScopeGroupId())>
116
117 ${journalArticleLocalService.getArticleContent(ja, ja.getDDMTemplateKey(), "VIEW", locale, portletRequestModel, themeDisplay)}
118
119 </#list>
120 </div>
121
122 <div class="feature-list-col order-${col2Order}">
123 <#list chunks[1] as cell>
124
125 <#assign
126 webContentData = jsonFactoryUtil.createJSONObject(cell.getData())
127 ja = journalArticleLocalService.fetchJournalArticleByUuidAndGroupId(webContentData.uuid, themeDisplay.getScopeGroupId())>
128
129 ${journalArticleLocalService.getArticleContent(ja, ja.getDDMTemplateKey(), "VIEW", locale, portletRequestModel, themeDisplay)}
130
131 </#list>
132 </div>
133 </div>
134
135 <#else>
136
137 <#list jasKeyBenefits.getSiblings()>
138 <div class="content feature-list-row justify-content-around">
139 <#items as cell>
140
141 <#assign
142 webContentData = jsonFactoryUtil.createJSONObject(cell.getData())
143 ja = journalArticleLocalService.fetchJournalArticleByUuidAndGroupId(webContentData.uuid, themeDisplay.getScopeGroupId())>
144
145 ${journalArticleLocalService.getArticleContent(ja, ja.getDDMTemplateKey(), "VIEW", locale, portletRequestModel, themeDisplay)}
146
147 </#items>
148 </div>
149 </#list>
150 </#if>
151
152
153 <#if CTA.htmlDescripcion.getData() != '' || CTA.txtTexto.getData() != ''>
154 <div class="row">
155
156 <div class="cta">
157 <#if CTA.htmlDescripcion.getData() != ''>
158 <div class="detail">${CTA.htmlDescripcion.getData()}</div>
159 </#if>
160
161 <#if CTA.txtTexto.getData() != ''>
162 <#assign itemId = 'tealium-id' + random.nextInt() >
163 <#assign
164 powlinkDinamicoClass = ""
165 />
166 <#if CTA.PowlinkDinamico?? && getterUtil.getBoolean(CTA.PowlinkDinamico.getData())>
167 <#assign powlinkDinamicoClass = "powlink-dinamico">
168 </#if>
169 <a id="${itemId}" class="alternative btn-${CTA.selTipoEnlace.getData()} btn-color-${CTA.selColor.getData()} ${powlinkDinamicoClass}" href="${CTA.txtEnlace.getData()}" ${(CTA.chkNuevaVentana.getData() == 'true')?string('target="_blank"', '')}">${CTA.txtTexto.getData()}</a>
170 <#if CTA.txtTealium.getData() != ""><script>$("#${itemId}").on('click', function() {${CTA.txtTealium.getData()}});</script></#if>
171 </#if>
172 </div>
173 </div>
174 </#if>
175 </div>
176
177 <#if thereIsIntersection>
178 <div class="intersection">
179 ${dlUtil.svgContent(parentStructureFieldSet1019244.damSvgIntersection.getData(), groupId)}
180 </div>
181 </#if>
182</div>
Treballant en equip
Els ports esportius són ecosistemes que tenen un gran impacte en la biota marina. Per això, instal·larem diversos SeaBins en ports de tot el territori espanyol.
Amb la col·laboració del personal del port, es buidaran periòdicament els dispositius, es pesaran tots els residus, es classificaran segons la seva composició i es reciclaran amb l'objectiu de fer un seguiment de l'impacte generat i detectar possibles millores d'ubicació.
Es faran accions de conscienciació en cada punt d'instal·lació sobre la problemàtica de la contaminació dels mars.
Coneix el nostre compromís
amb la sostenibilitat
Som el que fem
Som Empresa B Certificada™ des de 2020. Descobreix més aquí.
NRI: 20263-2021-00262
imagin, marca comercial d'imaginersGen, S.A., carrer Estany 11, 08038 – Barcelona, NIF A61363339.