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.$Proxy624.getArticle(long, String)" threw an exception when invoked on com.sun.proxy.$Proxy624 object "[email protected]3c866b37"; 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.