Cabinets d'architecture et de design

Ils ont signé des projets extraordinaires, contribuant à l'expansion de l'art architectural sous toutes ses formes. Découvrez les cabinets d'architecture et de design du monde entier et explorez les projets qu'ils ont réalisés. Découvrez les Archistars qui ont apporté une contribution significative au monde de l'architecture. Dans cette section, vous pouvez découvrir les différentes équipes de cabinets, leurs projets et, si vous le souhaitez, les contacter !

Une erreur s'est produite lors du traitement du gabarit.
The following has evaluated to null or missing:
==> lastPublishArticle.displayDate  [in template "20101#20127#2766430" at line 77, column 46]

----
Tip: It's the step after the last dot that caused this error, not those before it.
----
Tip: If the failing expression is known to be 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: #elseif lastPublishArticle.displayDat...  [in template "20101#20127#2766430" at line 77, column 37]
----
1<#-- Asset cards WRelated People RANDOM --> 
2 
3<#assign assetLinkLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetLinkLocalService") /> 
4<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") /> 
5<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
6<#assign groupLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService") /> 
7<#assign rnd = staticUtil["com.liferay.portal.kernel.security.RandomUtil"] > 
8 
9<#if entries?has_content> 
10<#--    <#assign indexes = rnd.nextInts(entries?size, 40) />--> 
11    <div> 
12        <#list entries as curEntry> 
13        <#--        <#list indexes as index>--> 
14        <#--            <#assign curEntry = entries[index] />--> 
15            <div class="grid-card-content d-flex flex-nowrap"> 
16                <#assign renderer = curEntry.getAssetRenderer() > 
17                <#assign className = renderer.getClassName() > 
18                <#if className == "com.liferay.journal.model.JournalArticle"> 
19                    <#assign article = renderer.getArticle() > 
20 
21                    <div class="card-element main-card" style="color: inherit; position: relative;"> 
22                        <@liferay_journal["journal-article"] 
23                        articleId="${article.getArticleId()}" 
24                        ddmTemplateKey="BOX_DESIGNER_PROFILE_MINIMAL" 
25                        groupId=article.getGroupId() 
26                        /> 
27                        <div class="d-flex d-lg-block d-xl-flex justify-content-between"> 
28                            <a class="profile" target="_blank" href="${assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, curEntry, true)}">${languageUtil.get(locale, "profile")}</a> 
29 
30                            <#assign fields =  renderer.getDDMFormValuesReader().getDDMFormValues().getDDMFormFieldValues() /> 
31                            <#list fields as field> 
32                                <#if field.getName() == "Email"> 
33                                    <#assign email = field.getValue().getString(locale) > 
34                                    <span class="border-custom request-info" data-email=${email}> 
35                                        <button style="font-size:17px;" class="message last">${languageUtil.get(locale, "message")}</button> 
36                                    </span> 
37                                </#if> 
38                            </#list> 
39                        </div> 
40                    </div> 
41 
42                    <#assign currentArticleAssetEntryId = curEntry.getEntryId() /> 
43                    <#assign currentArticleRelatedLinks = assetLinkLocalService.getDirectLinks(currentArticleAssetEntryId) /> 
44 
45                    <#assign lastPublishArticle = "" > 
46                    <#assign relatedArticles = []> 
47                    <#assign relatedVideos = [] /> 
48 
49                    <#list currentArticleRelatedLinks as related_entry> 
50 
51                        <#assign relatedAssetEntryId = related_entry.getEntryId2() /> 
52 
53                        <#assign relatedAssetEntry = assetEntryLocalService.getEntry(relatedAssetEntryId) /> 
54 
55                        <#assign relatedGroup = groupLocalService.getGroup(relatedAssetEntry.groupId) /> 
56 
57                        <#assign relatedAssetEntryPrimKey = relatedAssetEntry.getClassPK() /> 
58 
59                        <#assign relatedArticle = journalArticleLocalService.fetchLatestArticle(relatedAssetEntryPrimKey)!'' /> 
60 
61                        <#if relatedArticle?has_content> 
62 
63                            <#assign relatedArticleStructureKey = relatedArticle.getDDMStructure().getStructureKey() /> 
64                            <#assign relatedArticleStatus = relatedArticle.getStatus() /> 
65 
66                        <#-- <#if (relatedArticleStatus != 7)> --> 
67                            <#if (relatedArticleStatus == 0) && hasCorrectLanguage(relatedAssetEntry, themeDisplay.getLanguageId(), themeDisplay.getCompanyId())> 
68                                <#if relatedArticleStructureKey = "ARKITUBE-CONTENT" && isPublishedOnSite(relatedAssetEntry, themeDisplay.getCompanyId())> 
69 
70                                    <#assign relatedVideos = relatedVideos + [ relatedArticle ] />                           
71 
72                                <#elseif relatedArticleStructureKey = "ARTICLE-CONTENT"> 
73 
74                                    <#assign relatedArticlePublishDate = relatedArticle.displayDate!0 /> 
75                                    <#if !lastPublishArticle?has_content> 
76                                        <#assign lastPublishArticle = relatedArticle /> 
77                                    <#elseif lastPublishArticle.displayDate?long < relatedArticlePublishDate?long > 
78                                        <#assign relatedArticles = relatedArticles + [ lastPublishArticle ]> 
79                                        <#assign lastPublishArticle = relatedArticle /> 
80                                    <#else> 
81                                        <#assign relatedArticles = relatedArticles + [ relatedArticle ]> 
82                                    </#if> 
83                                </#if> 
84 
85                            </#if> 
86 
87                        </#if> 
88 
89                    </#list> 
90 
91                    <#-- primo elemento --> 
92                    <#if lastPublishArticle?has_content> 
93                        <div class="card-element related-card"> 
94                            <#assign relatedArticleId = lastPublishArticle.getArticleId() /> 
95                            <#assign articleGroupId = lastPublishArticle.getGroupId() > 
96                            <#assign thisEntry = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", lastPublishArticle.getResourcePrimKey())> 
97 
98                            <a href="${assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, thisEntry, true)}"> 
99 
100                                <@liferay_journal["journal-article"] 
101                                    articleId="${relatedArticleId}" 
102                                    ddmTemplateKey="ARTICLE_CONTENT_LIST_MINIMAL" 
103                                    groupId=lastPublishArticle.getGroupId() 
104                                /> 
105                            </a> 
106                        </div> 
107                    </#if> 
108 
109                    <#assign relatedIndexes = rnd.nextInts(relatedArticles?size, 2) /> 
110                    <#list [0, 1] as index> 
111 
112                        <div class="card-element related-card"> 
113 
114                            <#if relatedIndexes[index]?? && relatedArticles[relatedIndexes[index]]??> 
115 
116                                <#assign relatedArticle = relatedArticles[relatedIndexes[index]] /> 
117                                <#assign relatedArticleId = relatedArticle.getArticleId() /> 
118                                <#assign articleGroupId = relatedArticle.getGroupId() > 
119                                <#assign thisEntry = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", relatedArticle.getResourcePrimKey())> 
120 
121                                <a href="${assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, thisEntry, true)}"> 
122 
123                                    <@liferay_journal["journal-article"] 
124                                    articleId="${relatedArticleId}" 
125                                    ddmTemplateKey="ARTICLE_CONTENT_LIST_MINIMAL" 
126                                    groupId=relatedArticle.getGroupId() 
127                                    /> 
128 
129                                </a> 
130 
131                            </#if> 
132 
133                        </div> 
134 
135                    </#list> 
136 
137                    <#assign relatedVideo = "" /> 
138                    <#if (relatedVideos?size > 0) > 
139                        <#assign relatedIndex = rnd.nextInt(relatedVideos?size) /> 
140                        <#assign relatedVideo = relatedVideos[relatedIndex] /> 
141                    </#if> 
142 
143                    <#if relatedVideo?? && relatedVideo?has_content > 
144                        <#assign mobileClass = "d-block" /> 
145                    <#else> 
146                        <#assign mobileClass = "d-none" /> 
147                    </#if> 
148 
149                    <div class="card-element related-card related-card-video d-lg-block ${mobileClass}"> 
150 
151                        <#if relatedVideo?? && relatedVideo?has_content > 
152 
153                            <#assign relatedArticleId = relatedVideo.getArticleId() /> 
154                            <#assign articleGroupId = relatedVideo.getGroupId() > 
155                            <#assign thisEntryArkitube = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", relatedVideo.getResourcePrimKey())> 
156                            <a href="${assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, thisEntryArkitube, true)}"> 
157 
158 
159                                <@liferay_journal["journal-article"] 
160                                articleId="${relatedArticleId}" 
161                                ddmTemplateKey="ARKITUBE_DETAIL_MINIMAL" 
162                                groupId=articleGroupId 
163                                /> 
164                            </a> 
165 
166                        </#if> 
167 
168                    </div> 
169 
170                </#if> 
171            </div> 
172        </#list> 
173    </div> 
174</#if> 
175 
176<#function hasCorrectLanguage assetEntry languageId companyId> 
177 
178    <#assign groupLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService")> 
179    <#assign assetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService")> 
180 
181    <#assign groupGlobal = groupLocalService.getCompanyGroup(companyId)> 
182    <#assign vocabLanguageId = (assetVocabularyLocalService.fetchGroupVocabulary(groupGlobal.getGroupId(), "Language").vocabularyId)!0> 
183    <#assign categories = assetEntry.categories /> 
184 
185    <#list categories as category> 
186 
187        <#if category.vocabularyId == vocabLanguageId> 
188 
189            <#if category.name == languageId> 
190 
191                <#return true /> 
192 
193            </#if> 
194 
195        </#if> 
196 
197    </#list> 
198 
199    <#return false /> 
200 
201</#function> 
202 
203<#function isPublishedOnSite assetEntry companyId> 
204 
205    <#assign groupLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService")> 
206    <#assign assetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService")> 
207 
208    <#assign groupGlobal = groupLocalService.getCompanyGroup(companyId)> 
209    <#assign vocabLanguageId = (assetVocabularyLocalService.fetchGroupVocabulary(groupGlobal.getGroupId(), "PublishOnSite").vocabularyId)!0> 
210    <#assign categories = assetEntry.categories /> 
211 
212    <#list categories as category> 
213 
214        <#if category.vocabularyId == vocabLanguageId> 
215 
216            <#if category.name == "arkitectureonweb"> 
217 
218                <#return true /> 
219 
220            </#if> 
221 
222        </#if> 
223 
224    </#list> 
225 
226    <#return false /> 
227 
228</#function> 

L'inspiration naît des idées merveilleuses des cabinets d'architecture et de design du monde entier

Le paysage international regorge de nombreux talents : des architectes célèbres, hommes et femmes, qui, grâce à leur savoir-faire et à leurs approches culturelles et stylistiques brillantes, ont rendu chaque projet architectural unique et fonctionnel. Des Archistars comme Renzo Piano, Fuksas, Zaha Hadid, qui ont inspiré et continuent d'inspirer des milliers de concepteurs.