Hello Oliver,

I saw your presentation(s) on thymeleaf and Sing and I was hoping for
some feedback from you :).

I saw the sample and I am aware of Sling Models but I try to keep it as
simple as possible. I am already deep enough with new tech.

Regarding thymeleaf and sling do you know where I can find examples on
how to use OGNL in templates? All my tries failed so far. 

After going through the documentation over and over again I think that I
may have to write some servlets to make what I want.

I was hoping (and still do) to get away easy and just do:

----
|rednerer = sling.getService(ThymeleafRenderer )|

|body = renderer.render(content, context)
|

|send the response by wrapping body into layout. ||
|

|----||
|

|I will have to rethink my strategy in terms of an osgi service / custom
resource maybe and use sling.include()? Still struggling to navigate all
of what Sling has to offer. I think this should help
||https://cwiki.apache.org/confluence/display/SLING/Scripting+variables .


|||||
On 28.05.2018 18:12, Oliver Lietz wrote:
> On Monday 28 May 2018 11:50:25 Ioan Eugen Stan wrote:
>> Score 1 for me 99 for Sling.
>>
>> I found out how to use resources in sling templates with thymeleaf.
>>
>> My *ieugen/page* page  looks like this and it works. Now let's see if I
>> can manage to render the content using the thymeleaf rendering service
>> or another way.
>>
>> Note to who is reading: Is there a simpler/better way to solve this?
>>
>> <html data-th-with="valueMap=${resource.getValueMap()}">
>> <head>
>> </head>
>> <body>
>> <div class="container">
>>   <div class="panel panel-primary">
>>     <span data-th-text="${valueMap.get('jcr:title')}">SIMPLE PAGE</span>
>>   </div>
>> </div>
>> </body>
>> </html>
> There is a sample for Thymeleaf with Sling Models:
>
> https://github.com/apache/sling-samples/tree/master/fling
>
> Are you aware of it? Tip: Use Sling Models.
>
> Regards,
> O.
>
>> On 28.05.2018 03:35, Ioan Eugen Stan wrote:
>>> Hello,
>>>
>>> (Dear lazy sling community)
>>>
>>> I'm working to implement my first sling application / pages. We have to
>>> deploy a *Terms of use* page that need to be translated across multiple
>>> languages.
>>>
>>> I figured this should be easy with Sling - and it's not quite as I
>>> expected :( .
>>>
>>> The solution that I have settled for in my head is using thymeleaf
>>> templates and sling i18n with json files. However I need some help
>>> implementing it.
>>>
>>> I'm sharing what is in my head, please help correct if I am wrong. I
>>> have been at this (and other sling related stuff - content loading, etc)
>>> for the past few days.
>>>
>>> My page is going to live in */content**/terms-of-us**e.ht**ml*. It's a
>>> *nt:file*, *sling:res**ource* with *sling:resourceType = **ieugen**/page*
>>> .
>>>
>>> Now, let's put translations for the page under 
>>> */lib/trans**lations/content/t**erms**-of-use**.htlm/{english**.**json*,
>>> *deuts**ch.json}* . These files should follow the format described in [1].
>>>
>>> My goal is for the content of the "/content/terms-of-use.html" node to
>>> be a thymeleaf template itself. This template will use attributes like
>>> th-text="#{text-id-from-translation-file}".
>>>
>>> Now, the script "*ieu**gen/page*" should to the following:
>>>
>>> - take the content of the JCR node
>>>
>>> - load the proper translation file based on the requested language and
>>> the node currently being rendered.
>>>
>>> - render the content of the node (thymeleaf template - or any other
>>> template language - handlebars?? ) by providing a context with the
>>> translation files loaded
>>>
>>> - extra: the content might be rendered inside a layout defined by
>>> ieugen/page script - with common headers and footers.
>>>
>>> My goal is to be able to create pages that are easy to internationalize.
>>>
>>> So far I have a few setbacks:
>>>
>>> 1. I don't know how to render resource properties.
>>>
>>> 2. I don't know how to render a template inside a script.
>>>
>>> So far, my script looks like this:
>>>
>>> <!DOCTYPE html>
>>> <html
>>> data-th-with="*valueMap=${resource.adaptTo(@org.apache.sling.api.resource.
>>> ValueMap@class)}*"> <head>
>>>   <!-- Common head -->
>>> </head>
>>> <body>
>>> <div class="container">
>>>   <span data-th-text="${resource}">This works prints the resource </span>
>>>   <span data-th-text="${valueMap.attribute['jcr:title']}">*This fails -
>>> valueMap is null* </span>
>>>   <div>
>>>      <p>*How do I render node content here**?**Node content is a
>>> thymeleaf? template* </p>
>>>   </div>
>>> </div>
>>> <footer>Common footer</footer>
>>> </body>
>>> </html>
>>>
>>> Thanks,
>>>
>>> [1]
>>> https://sling.apache.org/documentation/bundles/internationalization-suppor
>>> t-i18n.html#json-file-based


Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to