Bootcamp sviluppatori

Lunghezza 5 giorni
Tipologia Privato in loco
Versioni di Liferay 7.1

Sviluppa in modo più intelligente

Conosci quando utilizzare le funzionalità predefinite e quando personalizzare le funzionalità esistenti in modo da poter implementare rapidamente i requisiti di business.

Sfrutta gli strumenti di Liferay

Scopri come utilizzare Liferay per personalizzare tutti gli aspetti della piattaforma dal livello vista fino al livello di persistenza e viceversa.

Scegli il tuo percorso di sviluppo

Scopri come la modularità e lo sviluppo di OSGi ti offrono vantaggi e come continuare a sviluppare con WARs per ridurre al minimo l'impatto sul business.

Cosa imparerai

  • Liferay e utenti

    • Lavora con Liferay DXP

      • Crea esperienze digitali per i tuoi utenti
      • Sii concreto: applica ciò che impari a un caso d'uso reale
    • Porta i tuoi utenti esistenti

      • Importa i tuoi utenti su Liferay
      • Porta utenti da LDAP
    • Gestione utenti

      • Crea la tua struttura organizzativa in Liferay
      • Associa automaticamente i gruppi LDAP a Liferay
      • Differenze e strategie per l'organizzazione degli utenti
    • Controlla l'accesso degli utenti

      • Definisci le autorizzazioni per le singole risorse
      • Rifletti le responsabilità di lavoro della vita reale con i ruoli
  • Gestisci contenuti con i siti

    • Raggiungi i tuoi utenti con i siti

      • Crea siti web per coinvolgere i tuoi clienti
      • Crea intranet per to potenziare i tuoi dipartimenti e team
      • Gestisci le adesioni al sito
    • Pubblicazioni e workflow

      • Scopri come utilizzare i workflow ed esaminare il contenuto prima che vada online
    • Risorse digitali

      • Crea, condividi, e connetti risorse in un framework unico
      • Potenti strumenti per creare e gestire il contenuto
      • Overview funzionalità:
        Modern Site Building (Nuovo!)
        Gestione risorse
        Organizzare i metadati
    • Completa l'esperienza digitale

      • Overview funzionalità:
        Analytics Cloud
        Commerce
        Mobile
  • Sviluppa applicazioni

    • Imposta l'ambiente di sviluppo

      • Prepara il tuo ambiente per lo sviluppo
    • Nozioni di base OSGi

      • Introduzione a OSGi
      • Concetti di base OSGi
      • Cosa sono i Bundles?
      • Componenti e servizi
      • Funzionalità di condivisione
      • Architettura framework
      • Benefici dell'utilizzo di OSGi
    • Contenitore OSGi di Liferay

      • Cos'è un contenitore OSGi?
      • Lavora sull'ambiente di lavoro Liferay
      • Presentazione dei moduli Liferay
      • Gestisci le dipendenze del modulo
    • Gestisci i bundles OSGi

      • Gestisci i pacchetti OSGi con Gogo Shell
      • Utilizzo di Felix Web Console
    • Lavora con i moduli Portlet

      • Il portlet standard Java
    • Sviluppa un'applicazione reale

      • Crea il livello di servizio
      • Crea il livello di presentazione
      • Utilizzo del framework di configurazione Liferay
      • Implementazione del controllo dei permessi
      • Il quadro delle risorse
      • Il quadro di ricerca
      • Workflows
      • Utilizzo dei servizi web
      • Integrazione e test funzionali
      • Esecuzione e gestione di debug e problemi di distribuzione
  • Personalizza la tua piattaforma

    • Overview sull'architettura della piattaforma Liferay

      • Architettura della piattaforma Liferay
    • Personalizza l'interfaccia utente

      • Panoramica sulle tecnologie UI di Liferay
      • Modifica l'interfaccia utente predefinita con i modelli di visualizzazione dell'applicazione
      • Personalizza l'applicazione JSPs
    • Estendi lo schema di Liferay

      • Aggiungi in modo dinamico campi personalizzati con l'API Expando
    • Personalizza il livello di servizio

      • Sostituisci ed estendi i servizi Liferay con il Service Wrapper
      • Sovrascrivi riferimenti al servizio OSGi
    • Ignora le azioni del controller

      • Sovrascrivi le azioni Struts
      • Sostituisci i comandi MVC del portale
    • Gestisci portale

      • Gestisci il ciclo di vita del portale
      • Intercetta eventi con ascoltatori di modelli
    • Sfrutta i messaggi di Liferay

      • Personalizza l'auditing del portale
    • Personalizza il motore di ricerca della piattaforma

      • Personalizza l'indicizzazione e i risultati della ricerca con i processori
Si è verificato un errore nell'elaborarazione del modello.
Java method "com.sun.proxy.$Proxy620.getArticle(long, String)" threw an exception when invoked on com.sun.proxy.$Proxy620 object "[email protected]3ce604f5"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign article = journal_article_loc...  [in template "ARTICLE_UTILITIES" in macro "runtime_embed_journal_article_by_article_id" at line 117, column 9]
	- Reached through: @article_utilities.runtime_embed_jour...  [in template "10155#10195#LEGO" at line 39, column 96]
----
1<#import "${templatesPath}/article_utilities" as article_utilities> 
2 
3<div class="lego-article ${article_class.getData()}" id="article-${.vars['reserved-article-id'].getData()}"> 
4	<#list section.siblings as cur_section> 
5		<section class="block-container lego-section section-${cur_section_index + 1} ${cur_section.section_class.getData()}" ${cur_section.getData()}> 
6			<#list cur_section.block.siblings as cur_block> 
7				<div class="block block-${cur_block_index + 1} content-column lego-block w${cur_block.width.getData()} ${cur_block.block_class.getData()}" ${cur_block.getData()}> 
8					<#list cur_block.element.siblings as cur_element> 
9						<#assign cur_element_tag = cur_element.tag.getData()> 
10 
11						<#if !cur_element_tag?has_content> 
12							<#assign cur_element_tag = "div"> 
13						</#if> 
14 
15						<#assign cur_element_css_class = "lego-element " + cur_element.element_class.getData() /> 
16						<#assign button_attrs = cur_element.getData() /> 
17 
18						<#if article_utilities.has_update_permissions()> 
19							<#assign cur_element_css_class = cur_element_css_class + " live-edit" /> 
20							<#assign button_attrs = button_attrs + " 
21								data-article-id='${.vars[\"reserved-article-id\"].getData()}' 
22								data-level-path='${cur_section.name}::${cur_section_index},${cur_block.name}::${cur_block_index},${cur_element.name}::${cur_element_index},${cur_element.content.name}::0' 
23							" /> 
24						</#if> 
25 
26						<${cur_element_tag} class="${cur_element_css_class}" ${button_attrs}> 
27							${cur_element.content.getData()} 
28						</${cur_element_tag}> 
29					</#list> 
30 
31					<#if cur_block.article_url_title?has_content> 
32						<#list cur_block.article_url_title.siblings as article_url_title> 
33							<#if article_url_title.getData()?has_content> <@article_utilities.runtime_embed_journal_article_by_url_title article_url_title.getData() /> </#if> 
34						</#list> 
35					</#if> 
36 
37					<#if cur_block.article_id?has_content> 
38						<#list cur_block.article_id.siblings as article_id> 
39							<#if article_id.getData()?has_content> <@article_utilities.runtime_embed_journal_article_by_article_id article_id.getData() /> </#if> 
40						</#list> 
41					</#if> 
42				</div> 
43			</#list> 
44		</section> 
45	</#list> 
46</div> 
47 
48<#if css.getData()?has_content> 
49	<style type="text/css"> 
50		${css.getData()} 
51	</style> 
52</#if> 
53 
54<#if javascript?? && javascript.getData()?has_content> 
55	<script> 
56		${javascript.getData()} 
57	</script> 
58</#if> 

Didn’t find what you were looking for?

Contact us, and we'll work to find a training that meets your needs.