Foros de discusión

Portal Normal get Info Web content in page

Carmine Tanga, modificado hace 6 años.

Portal Normal get Info Web content in page

New Member Mensajes: 9 Fecha de incorporación: 14/04/16 Mensajes recientes
Buongiorno,

vorrei implementare una soluzione nel portal normal che riesca a recuperare le informazioni della pagina web e del web content in esso inserito.

Successivamente al recupero di informazioni come titolo,immagine e testo inserirlo all'interno dei meta tag.

Grazie
thumbnail
Denis Signoretto, modificado hace 6 años.

RE: Portal Normal get Info Web content in page

Expert Mensajes: 375 Fecha de incorporación: 21/04/09 Mensajes recientes
Ciao Carmine,

ci sono diverse strade per fare quello che ti serve. Quella più semplice da cui puoi partire è utilizzare le variabili Freemaker che già trovi inizializzate e utilizzabili nel tema. Alcune di queste fanno già al caso tuo. Per vedere quali hai a disposizione ti consiglio di guardare direttamente dentro l'init.ftl

Per la seconda parte devi utilizzare un po' di API per ricavarti l'informazione che ti serve. Quello che posso suggerirti è di utilizzare un "context contributor" [1] un approccio che ti consente di iniettare variabili freemarker nel tema sfruttando le API Java. Fai attenzione alle performance per non rallentare troppo i tempi di render di pagina.

Ciao,
Denis

[1] https://dev.liferay.com/develop/tutorials/-/knowledge_base/7-0/context-contributors
Carmine Tanga, modificado hace 6 años.

RE: Portal Normal get Info Web content in page

New Member Mensajes: 9 Fecha de incorporación: 14/04/16 Mensajes recientes
Ciao Denis,

io utilizzo liferay 6.2 e poi i template che ho sviluppato sono tutti in Velocity e non Freemaker .
hai un'altra soluzione?

Grazie
thumbnail
Denis Signoretto, modificado hace 6 años.

RE: Portal Normal get Info Web content in page

Expert Mensajes: 375 Fecha de incorporación: 21/04/09 Mensajes recientes
Ciao Carmine,

per quanto riguarda Liferay 6.2 puoi seguire un approccio analogo. Con i temi fatti con velocity prova a guardare lo script di init.vm [1] che trovi nel tema unstyled (è comune a tutti i temi). Se ha bisogno di crearti delle variabili custom è buona prassi farlo creando un proprio init_custom.vm che viene incluso da init.vm

Per iniettare delle nuove variabili velocity con la 6.2 lo puoi fare con un Hook [2].

Ciao,
Denis.

[1] https://github.com/liferay/liferay-portal/blob/6.2.x/portal-web/docroot/html/themes/_unstyled/templates/init.vm

[2] https://web.liferay.com/it/community/wiki/-/wiki/Main/Custom+Velocity+Variables
Dave ., modificado hace 6 años.

RE: Portal Normal get Info Web content in page

New Member Mensajes: 5 Fecha de incorporación: 10/02/15 Mensajes recientes
Ciao Denis,
grazie per le tue risposte ma come faccio a recuperare il web content presente in pagina e successivamente i campi che mi servono?
Devo anche assicurarmi che il web content che recupero sia del tipo corretto, poiché il web content creato presenta struttura e modello custom.
Nel file init.vm non c'è ciò che serve.

Denis Signoretto:
Ciao Carmine,

per quanto riguarda Liferay 6.2 puoi seguire un approccio analogo. Con i temi fatti con velocity prova a guardare lo script di init.vm [1] che trovi nel tema unstyled (è comune a tutti i temi). Se ha bisogno di crearti delle variabili custom è buona prassi farlo creando un proprio init_custom.vm che viene incluso da init.vm

Per iniettare delle nuove variabili velocity con la 6.2 lo puoi fare con un Hook [2].

Ciao,
Denis.

[1] https://github.com/liferay/liferay-portal/blob/6.2.x/portal-web/docroot/html/themes/_unstyled/templates/init.vm

[2] https://web.liferay.com/it/community/wiki/-/wiki/Main/Custom+Velocity+Variables
thumbnail
Denis Signoretto, modificado hace 6 años.

RE: Portal Normal get Info Web content in page

Expert Mensajes: 375 Fecha de incorporación: 21/04/09 Mensajes recientes
Ciao Carmine,

nel file init.vm trovi le informazioni relative alla pagina (e.g. layoutId) utili per utilizzare poi altre API che ti serviranno per identificare se sulla pagina c'è un contenuto. A te poi la scelta se queste API iniettarle nel template come variabili/oggetti velocity.
Quello che vuoi fare non è proprio banale perché tieni conto che un contenuto non è necessariamente associato ad una pagina. Potrebbe succedere che sulla pagina: non c'è associato alcun contenuto, c'è un contenuto o addirittura più di un contenuto. Inoltre un contenuto potrebbe essere visualizzato in pagina da portlet diverse (e.g. un Asset Renderer o un Web Content Display).

Se vuoi rendere la cosa veloce (e deve esserlo per non rallentare il portale) una via semplice è quella di creare un attributo custom di pagina con l'ID del contenuto che vuoi renderizzare. Questo renderà la vita più difficile al content editor ma potrai velocemente da velocity accedere al custom attribute di pagina e, se valorizzato recuperare l'ID e da lì utilizzare le API del journal article service per avere tutte le altre informazioni sul contenuto.

Se vuoi altrimenti fare tutto "dinamicamente" allora dovrai lavorare molto di API...

HTH,

Ciao,
Denis.
thumbnail
Denis Signoretto, modificado hace 6 años.

RE: Portal Normal get Info Web content in page

Expert Mensajes: 375 Fecha de incorporación: 21/04/09 Mensajes recientes
Dimenticavo, se aggiungi delle variabili è bene indicare che il tuo tema dipende dal plugin hook che le inietta così da essere garantito che l'ordine di caricamento dei plugin sia preservato (prima l'hook e poi il tema).
Carmine Tanga, modificado hace 6 años.

RE: Portal Normal get Info Web content in page

New Member Mensajes: 9 Fecha de incorporación: 14/04/16 Mensajes recientes
Ciao Denis,

potresti gentilmente farmi un esempio? te ne sarei Grato!

per esempio un immagine nel mio web contet si chiama $Foto - $Foto.getData().

Ti ringrazio anticipatamente...

Ciao
marco de lucia, modificado hace 6 años.

RE: Portal Normal get Info Web content in page

New Member Mensaje: 1 Fecha de incorporación: 23/09/15 Mensajes recientes
Ciao Carmine,
immagino che tu volessi fare questa cosa per implementare la corretta condivisione del web content su Facebook.
Sto affrontando anche io questo problema, sei riuscito alla fine a risolvere?

Grazie.
thumbnail
Jader Francia, modificado hace 6 años.

RE: Portal Normal get Info Web content in page

Junior Member Mensajes: 65 Fecha de incorporación: 31/01/10 Mensajes recientes
Lo so: la mia risposta è assolutamente fuori tempo massimo! ;)
Però, a peritura memoria di chi leggerà questo post nel futuro emoticon, vorrei aggiungere a tutto quello che ha detto Denis anche il fatto che esiste una tabella di sistema che mappa l'associazione tra web content e pagine (a patto che i web content siano inseriti in pagina utilizzando il portlet "Web Content Display".

Questa tabella era funzionale al motore di ricerca dei soli contenuti; la tabella in questione è la journalarticlesearch.

Se guardiamo la sua struttura, troveremo questi field:
  • layoutid
  • portletid
  • articleid


ovvero tutto il necessario per trovare il contenuto (articleid), trovare la pagina sulla quale il contenuto è posizionato (layoutId) e costruire la URL per la portlet che lo mostra (portletid)!

Spero d'essere stato d'aiuto! ;)

A presto, ciao, J.

P.S. AFAIK, questa tabella è presente e gestita sia sulla 6.2 che sulla 7! emoticon