Béatrice Seiwert

Product Marketer

Béatrice Seiwert

Product Marketer

To remain competitive, SMEs also need to engage in the digital transformation of their business. One of our aims at POST Telecom is to make the possibilities offered by technology available to these small and medium-sized organisations.

Within the marketing department of POST Telecom, I am committed to raising awareness among these key players in the Luxembourg economic fabric of the new challenges arising from the digitalisation of society. In my job, I like to understand the problems encountered by each person in order to better envisage solutions that will enable them to take up new challenges more easily.

More than ever, SMEs must be able to create value from their core business. For us, one of the main challenges is to relieve them as much as possible of concerns related to the management of IT, networks and their security. In this respect, the cloud provides solutions tailored to the needs of small and medium-sized enterprises. I also believe that digital should be a facilitator. It should support the development of companies and make it easier for them to manage procedures with regard to their customers, starting with a precise identification of their needs.

In this context, IT and digital issues must be better understood by all. Through my contribution to this blog, I want to help SMEs to better understand the issues surrounding the transformation that is taking place as technological development gathers pace. Our mission is to raise awareness and save time for each of these actors.

An error occurred while processing the template.
Java method "com.sun.proxy.$Proxy111.getFriendlyURLLayout(long, boolean, String)" threw an exception when invoked on com.sun.proxy.$Proxy111 object "com.liferay.portal.service.impl.LayoutLocalServiceImpl@7aa62365"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: authorPage = layoutLocalService.getFr...  [in template "20102#20129#1088017" at line 29, column 41]
----
1<#assign 
2layouts = themeDisplay.getLayouts() 
3local = themeDisplay.getLocale() 
4layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService") 
5extendedSeq = []> 
6<#-- set locale for freemarker date otherwise months are not translated in the current language --> 
7<#setting locale= local> 
8 
9<#list layouts as mainpage> 
10    <#if mainpage.getFriendlyURL(local) == '/business'  && 
11    layout.getFriendlyURL(local)?starts_with('/business')> 
12        <#list mainpage.getChildren() as homeSubPages> 
13            <#if homeSubPages.getFriendlyURL(local) == '/business/blog'> 
14            <#-- homeSubPages is blog homepage --> 
15                <#list homeSubPages.getChildren() as articlesBlogPages> 
16                    <#if articlesBlogPages.getFriendlyURL(local) == '/business/blog/articles'> 
17                        <#list articlesBlogPages.getChildren() as categoriesBlogPages> 
18                            <#assign currentCategory = categoriesBlogPages 
19                            isArticleCategoryPage = false 
20                            isArticleSubcategoryPage = false> 
21                            <#list categoriesBlogPages.getChildren() as subCategoriesBlogPages> 
22                                <#assign currentSubCategory = subCategoriesBlogPages 
23                                listArticles = subCategoriesBlogPages.getChildren()> 
24                                <#if listArticles??> 
25                                    <#list listArticles as articleElement> 
26                                        <#assign dateArticle = articleElement.getExpandoBridge().getAttribute('Blog display date from') 
27                                        authorPageUrl = articleElement.getExpandoBridge().getAttribute('Blog author page url') 
28                                        authorTruncatedUrl = "/business" + authorPageUrl?keep_after("/business") 
29                                        authorPage = layoutLocalService.getFriendlyURLLayout(groupId, false, authorTruncatedUrl) 
30                                        authorImage = authorPage.getExpandoBridge().getAttribute('Blog image url') 
31                                        articleImage = articleElement.getExpandoBridge().getAttribute('Blog image url')> 
32                                        <#if authorPage.getFriendlyURL(local) == layout.getFriendlyURL(local)> 
33                                            <#assign 
34                                            <#-- insert the article required data inside the hash --> 
35                                            articlePagesHash = {"date": dateArticle?datetime, "friendlyUrl": articleElement.getRegularURL(request), 
36                                            "categoryName": currentCategory.getHTMLTitle(local), "categoryUrl": currentCategory.getRegularURL(request), 
37                                            "subCategoryName": currentSubCategory.getHTMLTitle(local), "subCategoryUrl": currentSubCategory.getRegularURL(request), 
38                                            "articleImage": articleImage, "articleTitle": articleElement.getHTMLTitle(local), 
39                                            "articleDescription": articleElement.getDescription(local), "authorName": authorPage.getHTMLTitle(local), 
40                                            "authorFriendlyUrl": authorPage.getRegularURL(request), "authorImage": authorImage} 
41                                            extendedSeq += [articlePagesHash]> 
42                                        </#if> 
43                                    </#list> 
44                                </#if> 
45                            </#list> 
46                        </#list> 
47                    </#if> 
48                </#list> 
49            </#if> 
50        </#list> 
51    </#if> 
52</#list> 
53 
54<#assign sortedListArticlePagesByDate = extendedSeq?sort_by("date")?reverse> 
55 
56<#if sortedListArticlePagesByDate?size != 0> 
57    <section class="module module-cards-article" > 
58        <div class="container"> 
59            <div class="row justify-content-center"> 
60                <div class="col-lg-12"> 
61 
62                    <div class="title-wrapper"> 
63                        <h3 class="bottom-cut">${Title.getData()} ${layout.getHTMLTitle(local)}</h3> 
64                    </div> 
65 
66                    <div class="content-list"> 
67                        <div class="row"> 
68                            <#list sortedListArticlePagesByDate as articles> 
69                                <div class="col-lg-4"> 
70                                    <div class="card card-article card-article-small"> 
71                                        <div class="card-wrapper"> 
72                                            <div> 
73                                                <div class="card-img-wrapper"> 
74                                                    <a data-senna-off="true" href="${articles.friendlyUrl}"> 
75                                                        <img src="${articles.articleImage}" class="img-fluid object-fit" alt=""> 
76                                                    </a> 
77                                                </div> 
78 
79                                                <div class="card-text-wrapper"> 
80                                                    <div class="badge-wrapper"> 
81                                                        <a data-senna-off="true" href="${articles.categoryUrl}" class="badge badge-small badge-blue-business ">${articles.categoryName}</a> 
82                                                        <a data-senna-off="true" href="${articles.subCategoryUrl}" class="badge badge-small badge-blue-business ">${articles.subCategoryName}</a> 
83                                                    </div> 
84 
85                                                    <h3><a data-senna-off="true" href="${articles.friendlyUrl}">${articles.articleTitle}</a></h3> 
86                                                    <p>${articles.articleDescription}</p> 
87                                                </div> 
88                                            </div> 
89                                            <div> 
90                                                <a data-senna-off="true" href="${articles.friendlyUrl}" class="btn btn-link" 
91                                                    <#if LinkLabel.LinkAriaLabel?? && 
92                                                    LinkLabel.LinkAriaLabel?has_content && 
93                                                    LinkLabel.LinkAriaLabel.getData()?has_content> 
94                                                    aria-label="${LinkLabel.LinkAriaLabel.getData()}"</#if>> 
95                                                    ${LinkLabel.getData()} <i class="icon-chevron-right"></i></a> 
96                                                <div class="card-details-wrapper"> 
97                                                    <div class="author"> 
98                                                        <div class="author-img-wrapper"> 
99                                                            <img src="${articles.authorImage}" class="img-fluid object-fit" alt=""> 
100                                                        </div> 
101                                                        <div> 
102                                                            <p class="title">${AuthorLabel.getData()}</p> 
103                                                            <a data-senna-off="true" href="${articles.authorFriendlyUrl}" 
104                                                               class="value stretched-link" 
105                                                                    <#if AuthorLabel.AuthorAriaLabel?? && 
106                                                            AuthorLabel.AuthorAriaLabel?has_content && 
107                                                            AuthorLabel.AuthorAriaLabel.getData()?has_content> 
108                                                            aria-label="${AuthorLabel.AuthorAriaLabel.getData()} ${articles.authorName}"</#if>> 
109                                                                ${articles.authorName} 
110                                                            </a> 
111                                                        </div> 
112                                                    </div> 
113                                                    <div class="date"> 
114                                                        <p class="title">${PublicationLabel.getData()}</p> 
115                                                        <p class="value">${articles.date?string["dd MMMM yyyy"]}</p> 
116                                                    </div> 
117                                                </div> 
118                                            </div> 
119                                        </div> 
120                                    </div> 
121                                </div> 
122                            </#list> 
123                        </div> 
124                    </div> 
125                </div> 
126            </div> 
127        </div> 
128    </section> 
129</#if> 

Our experts answer your questions

Do you have any questions about an article? Do you need help solving your IT issues?