Indoor Mobile Coverage

Extension of the public mobile network in your company premises for a homogeneous and quality coverage on all your surfaces.

Perfect for:
SMB Large enterprises

Not picking up the public mobile network in your building?

The Indoor Mobile Coverage solution can be adapted to the individual features of any type of building.

White areas

Stadiums

Basements

Offices

Hospitals

Shopping Centers

HQE buildings

Warehouses

Industrial sites

Car parks

Our offer

Indoor Mobile Coverage gives you optimal mobile coverage throughout your business premises.

2G/4G/5G compatibility

A compatible solution to guarantee the quality of your calls and internet access.

Wide coverage

Equipment installed to suit your layout and cover all your premises.

Single or multi-operator

All your employees and customers can benefit from optimised mobile network coverage regardless of their chosen operator.

Support

From the development of your project to solution implementation and support.

How does it work?

The Indoor Mobile Coverage solution can be adapted to the individual features of any type of building.

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

----
FTL stack trace ("~" means nesting-related):
	- Failed at: authorPage = layoutLocalService.getFr...  [in template "20102#20129#1341914" at line 32, column 45]
----
1<#assign local = themeDisplay.getLocale() 
2        layouts = themeDisplay.getLayouts() 
3        extendedSeq = [] 
4        finalSeq = [] 
5        assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") 
6        layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService")> 
7<!-- Get the tags from the webcontent and create a new sequence with the string --> 
8<#assign 
9        inputTags = .vars['reserved-article-asset-tag-names'].data 
10        inputTagsSeq = inputTags?split(",")> 
11<#setting locale= local> 
12 
13 
14<#list layouts as mainpage> 
15    <#if mainpage.getFriendlyURL(local) == '/business'> 
16        <#list mainpage.getChildren() as homeSubPages> 
17            <#if homeSubPages.getFriendlyURL(local) == '/business/blog'> 
18                <#list homeSubPages.getChildren() as articlesHomepage> 
19                    <#if articlesHomepage.getFriendlyURL(local) == '/business/blog/articles'> 
20                        <#list articlesHomepage.getChildren() as categoryPages> 
21                            <#list categoryPages.getChildren() as subCategoryPages> 
22                                <#list subCategoryPages.getChildren() as articleElement> 
23                                    <!-- Get the tag for the target article Page --> 
24                                    <#assign plId = articleElement.getPlid() 
25                                            layoutEntry = assetEntryLocalService.fetchEntry("com.liferay.portal.kernel.model.Layout", plId) 
26                                            assetTags = layoutEntry.getTags()> 
27                                    <#assign 
28                                            tagList = [] 
29                                            dateArticle = articleElement.getExpandoBridge().getAttribute('Blog display date from') 
30                                            authorPageUrl = articleElement.getExpandoBridge().getAttribute('Blog author page url') 
31                                            authorTruncatedUrl = "/business" + authorPageUrl?keep_after("/business") 
32                                            authorPage = layoutLocalService.getFriendlyURLLayout(groupId, false, authorTruncatedUrl) 
33                                            authorImage = authorPage.getExpandoBridge().getAttribute('Blog image url') 
34                                            articleImage = articleElement.getExpandoBridge().getAttribute('Blog image url')> 
35                                    <#list assetTags as tag> 
36                                        <#assign  tagList += [tag.name]> 
37                                    </#list> 
38                                    <!-- Insert element in the extendedSeq --> 
39                                    <#assign layoutHash = {"tags": tagList, 
40                                    "friendlyUrl": articleElement.friendlyURL, "articleTitle": articleElement.getHTMLTitle(local), 
41                                    "articleDescription": articleElement.getDescription(local), 
42                                    "date": dateArticle?datetime, "authorFriendlyUrl": authorPage.getRegularURL(request), 
43                                    "authorName": authorPage.getHTMLTitle(local), 
44                                    "authorImage": authorImage, "articleImage": articleImage, 
45                                    "categoryName": categoryPages.getHTMLTitle(local), 
46                                    "categoryUrl": categoryPages.getRegularURL(request), 
47                                    "subCategoryName": subCategoryPages.getHTMLTitle(local), 
48                                    "subCategoryUrl": subCategoryPages.getRegularURL(request)} 
49                                    extendedSeq += [layoutHash] /> 
50                                </#list> 
51                            </#list> 
52                        </#list> 
53                    </#if> 
54                </#list> 
55            </#if> 
56        </#list> 
57    </#if> 
58</#list> 
59 
60<#list extendedSeq?sort_by("date")?reverse as reversedSeq> 
61    <#if finalSeq?size lt 3> 
62        <!-- Boolean to get out of the loop and only add once the element to the final sequence--> 
63        <#assign tagsFound = false> 
64        <#list reversedSeq.tags as tag> 
65            <#if tagsFound != true> 
66                <#list inputTagsSeq as inputTag> 
67                    <#if inputTag == tag> 
68                        <#assign finalSeq += [reversedSeq] 
69                                 tagsFound = true> 
70                        <#break> 
71                    </#if> 
72                </#list> 
73            <#else> 
74                <#break> 
75            </#if> 
76        </#list> 
77    <#else> 
78        <#break> 
79    </#if> 
80</#list> 
81 
82<section class="module module-cards-article" > 
83    <div class="container"> 
84        <div class="row justify-content-center"> 
85            <div class="col-lg-12"> 
86                <div class="title-wrapper"> 
87                    <h3 class="bottom-cut">${Title.getData()}</h3> 
88                </div> 
89 
90                <div class="content-list"> 
91                    <div class="row"> 
92                        <#list finalSeq as articles> 
93                            <div class="col-lg-4"> 
94                                <div class="card card-article card-article-small"> 
95                                    <div class="card-wrapper"> 
96                                        <div> 
97                                            <div class="card-img-wrapper"> 
98                                                <a data-senna-off="true" href="${articles.friendlyUrl}"> 
99                                                    <img src="${articles.articleImage}" class="img-fluid object-fit" alt=""> 
100                                                </a> 
101                                            </div> 
102 
103                                            <div class="card-text-wrapper"> 
104                                                <div class="badge-wrapper"> 
105                                                    <a data-senna-off="true" href="${articles.categoryUrl}" class="badge badge-small badge-blue-business ">${articles.categoryName}</a> 
106                                                    <a data-senna-off="true" href="${articles.subCategoryUrl}" class="badge badge-small badge-blue-business ">${articles.subCategoryName}</a> 
107                                                </div> 
108 
109                                                <h3><a data-senna-off="true" href="${articles.friendlyUrl}">${articles.articleTitle}</a></h3> 
110                                                <p>${articles.articleDescription}</p> 
111                                            </div> 
112                                        </div> 
113                                        <div> 
114                                            <a data-senna-off="true" href="${articles.friendlyUrl}" class="btn btn-link" 
115                                                <#if LinkLabel.LinkAriaLabel?? && 
116                                                    LinkLabel.LinkAriaLabel?has_content && 
117                                                    LinkLabel.LinkAriaLabel.getData()?has_content> 
118                                                    aria-label="${LinkLabel.LinkAriaLabel.getData()}"</#if>> 
119                                                    ${LinkLabel.getData()} <i class="icon-chevron-right"></i> 
120                                            </a> 
121 
122                                            <#if articles.authorImage?? && articles.authorImage?has_content 
123                                                && articles.authorName?? && articles.authorName?has_content 
124                                                && articles.date?? && articles.date?has_content 
125                                                && articles.articleImage?? && articles.articleImage?has_content> 
126                                                <div class="card-details-wrapper"> 
127                                                    <div class="author"> 
128                                                        <div class="author-img-wrapper"> 
129                                                            <img src="${articles.authorImage}" class="img-fluid object-fit" alt=""> 
130                                                        </div> 
131                                                        <div> 
132                                                            <p class="title">${AuthorLabel.getData()}</p> 
133                                                            <a data-senna-off="true" href="${articles.authorFriendlyUrl}" 
134                                                               class="value stretched-link" 
135                                                                    <#if AuthorLabel.AuthorAriaLabel?? && 
136                                                            AuthorLabel.AuthorAriaLabel?has_content && 
137                                                            AuthorLabel.AuthorAriaLabel.getData()?has_content> 
138                                                            aria-label="${AuthorLabel.AuthorAriaLabel.getData()} ${articles.authorName}"</#if>> 
139                                                                ${articles.authorName} 
140                                                            </a> 
141                                                        </div> 
142                                                    </div> 
143                                                    <div class="date"> 
144                                                        <p class="title">${PublicationLabel.getData()}</p> 
145                                                        <p class="value">${articles.date?string["dd MMMM yyyy"]}</p> 
146                                                    </div> 
147                                                </div> 
148                                            </#if> 
149                                        </div> 
150                                    </div> 
151                                </div> 
152                            </div> 
153                        </#list> 
154                    </div> 
155                </div> 
156            </div> 
157        </div> 
158    </div> 
159</section> 

Our experts answer your questions

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

Do you have any other questions? 

Call us free of charge on 8002 4000 or +352 2424 4000 for international calls form Monday to Friday from 8am until 6pm.

Why choose POST?

Discover POST's strengths: innovations, certifications, CSR commitments.