configuracion as $config)
{
switch ($config->parametro_tipo->value)
{
case 'texto':
$configuracion[$config->parametro_nome] = $config->parametro_valor;
break;
case 'cor':
list($r, $g, $b) = sscanf($config->parametro_cor, "%02x%02x%02x");
$configuracion[$config->parametro_nome] = $r . ', ' . $g . ', ' . $b;
break;
case 'mantemento':
if($config->parametro_mantemento==1)
{
$configuracion['mantemento'] = array(
"activo" => true,
"titular" => $config->titular,
"artigo" => $config->artigo,
"imaxe" => $config->imaxe
);
}
else
{
$configuracion['mantemento'] = array("activo" => false);
}
break;
}
}
return $configuracion;
}
function getTextoLimpo($texto)
{
$texto = preg_replace ('/<[^>]*>/', ' ', $texto);
$texto = str_replace("\r", '', $texto);
$texto = str_replace("\n", ' ', $texto);
$texto = str_replace("\t", ' ', $texto);
$texto = trim(preg_replace('/ {2,}/', ' ', $texto));
return $texto;
}
function getSeccions($seccions)
{
$saida = '';
foreach($seccions as $seccion)
{
switch($seccion->template)
{
case 'repeater_seccions':
switch ($seccion->seccion_tipo->value)
{
case 'texto':
$saida .= renderTexto($seccion->titular, $seccion->artigo);
break;
case 'galeria':
$saida .= renderGaleria($seccion->titular, $seccion->imaxes_galeria);
break;
case 'reixa':
$saida .= renderReixa($seccion->titular, $seccion->imaxes_reixa);
break;
case 'imaxe_texto_lateral':
$saida .= renderTextoImaxe($seccion->titular, $seccion->artigo, $seccion->imaxe, $seccion->imaxe_posicion->value);
break;
}
break;
case 'repeater_imaxe_ligazon':
$saida .= renderImaxeLigazon($seccion->titular, $seccion->imaxe, $seccion->ligazon);
break;
}
}
return $saida;
}
function renderMenu($paxinas, $maxDepth = 0, $id = 'nav')
{
if($paxinas instanceof Page)
{
$paxinas = array($paxinas);
}
$saida = '';
foreach($paxinas as $paxina)
{
if($paxina->id == wire('page')->id)
{
$saida .= '
';
}
else
{
$saida .= '';
}
$saida .= '' . mb_strtoupper($paxina->title) . '';
if($paxina->hasChildren() && $maxDepth)
{
if($id == 'nav')
{
$id = 'nav nav-tree';
}
$saida .= renderMenu($paxina->children, $maxDepth-1, $id);
}
$saida .= '' . "\n";
}
if($saida)
{
$saida = '' . "\n";
}
return $saida;
}
function renderMigasPan($paxina, $separador = '')
{
$saida = '';
$icono = '';
switch ($paxina->template)
{
case 'portada':
$icono = 'home';
break;
case 'paxina':
case 'habitacions':
$icono = 'play';
break;
case 'blogue':
$icono = 'book';
break;
case 'categoria':
$icono = 'folder';
break;
case 'etiqueta':
$icono = 'tag';
break;
case 'publicacion':
$icono = 'book-open';
break;
case 'contacto':
$icono = 'user';
break;
}
$saida .= '' . "\n";
$saida .= $separador;
foreach($paxina->parents() as $pai)
{
$saida .= '
' . $pai->title . ' ' . $separador . ' ';
}
$saida .= ($icono != '')? '
' : '';
$saida .= '
' . $paxina->title . '';
if($paxina->editable()):
$saida .= ' [
' . _x('Edit', 'Edit page') . ' ]';
endif;
$saida .= "\n";
$saida .= '
';
return $saida;
}
function renderPaxinacion($artigos, $posicion)
{
$paxinacion = $artigos->renderPager(array(
'listMarkup' => '',
'itemMarkup' => '{out}',
'linkMarkup' => '{out}',
'nextItemLabel' => '',
'previousItemLabel' => '',
'separatorItemClass' => 'separador',
'nextItemClass' => 'seguinte',
'previousItemClass' => 'anterior',
'lastItemClass' => 'derradeiro',
'currentItemClass' => 'actual'
));
return $paxinacion;
}
function renderTexto($titulo, $texto)
{
$saida = '';
$saida .= '' . "\n";
$saida .= $texto . "\n";
$saida .= '
' . "\n";
if($titulo)
{
$saida = '' . "\n" . '' . $titulo . '
' . "\n" . $texto . "\n" . '';
}
return $saida;
}
function renderGaleria($titulo, $galeria)
{
$saida = '';
$saida .= '' . "\n";
$saida .= '';
if($titulo)
{
$saida .= $titulo;
}
else
{
$saida .= 'Galeria';
}
$saida .= '
' . "\n";
$saida .= '' . "\n";
foreach($galeria as $imaxe)
{
$saida .= '
' . "\n";
$saida .= '
' . "\n";
$saida .= '
' . "\n";
}
$saida .= '
' . "\n";
$saida .= '' . "\n";
$saida .= '' . "\n";
$saida .= '' . "\n";
$saida .= '';
return $saida;
}
function renderReixa($titulo, $reixa)
{
$saida = '';
$saida .= '' . "\n";
$saida .= '';
if($titulo)
{
$saida .= $titulo;
}
else
{
$saida .= 'Reixa de imaxes';
}
$saida .= '
' . "\n";
$saida .= '' . "\n";
foreach($reixa as $imaxe)
{
$saida .= '
' . "\n";
}
$saida .= '
' . "\n";
$saida .= '';
return $saida;
}
function renderTextoImaxe($titulo, $texto, $imaxe, $posicion)
{
$saida = '';
$saida .= '' . "\n";
$saida .= '
' . "\n";
if($texto)
{
$saida .= $texto . "\n";
}
$saida .= '
' . "\n";
if($titulo)
{
$saida = '' . "\n" . '' . $titulo . '
' . "\n" . $saida . '';
}
return $saida;
}
function renderTextoMantemento($titulo, $texto, $imaxe)
{
$saida = '';
$saida .= '' . "\n";
$saida .= '' . $titulo . '
' . "\n";
if($imaxe)
{
$saida .= '' . "\n";
}
else
{
$saida .= $texto . "\n";
}
$saida .= '';
return $saida;
}
function renderImaxeLigazon($titular, $imaxe, $ligazon)
{
$saida = '';
$saida .= '' . "\n";
$saida .= '
' . "\n";
$saida .= '
' . "\n";
return $saida;
}
function renderCategoriasEtiquetas($data)
{
$saida = '';
switch ($data->first()->template->name)
{
case 'categoria':
$icono = 'folder';
$nome = 'categorias';
break;
case 'etiqueta':
$icono = 'tag';
$nome = 'etiquetas';
break;
default:
$icono = 'sn';
$nome = 'sin';
break;
}
$saida .= '' . "\n";
$saida .= '' . pages()->get('/noticias/' . $nome)->title . '
' . "\n";
$saida .= '' . "\n";
foreach($data as $item)
{
$numPosts = pages()->count('template=publicacion, ' . $nome . '=' . $item->name);
$saida .= '- ' . "\n";
$saida .= ' ' . $item->title . '' . "\n";
$saida .= '(' . sprintf(_n('%d post', '%d posts', $numPosts), $numPosts) . ')' . "\n";
$saida .= '
' . "\n";
}
$saida .= '
' . "\n";
$saida .= '' . "\n";
return $saida;
}
function renderResumen($texto = '', $limite = 120, $fin = '...')
{
$saida = '';
if($texto == '') return '';
if(strlen($texto) <= $limite) return $texto;
$saida = substr($texto, 0, $limite);
$pos = strrpos($saida, " ");
if($pos>0)
{
$saida = substr($saida, 0, $pos);
}
$saida .= $fin;
return $saida;
}
function renderArtigos($publicacion, $locale, $resumen = true)
{
$saida = '';
$data = strtotime($publicacion->fecha_publicacion);
$dateFormatter = \IntlDateFormatter::create(
$locale,
\IntlDateFormatter::NONE,
\IntlDateFormatter::NONE,
\date_default_timezone_get(),
\IntlDateFormatter::GREGORIAN
);
$saida .= '' . "\n";
$saida .= '' . "\n";
$saida .= '' . "\n";
$saida .= '' . "\n";
$saida .= '
' . "\n";
$saida .= '
' . "\n";
$saida .= '- ' . _x('Author', 'Post author') . '
' . "\n";
$saida .= '- ' . ucfirst($publicacion->createdUser->name) . '
' . "\n";
$saida .= '- ' . pages()->get('/noticias/categorias/')->title . '
' . "\n";
$saida .= '- ' . $publicacion->categorias->title . '
' . "\n";
$saida .= '- ' . pages()->get('/noticias/etiquetas/')->title . '
' . "\n";
$saida .= '- ' . $publicacion->etiquetas->each("{title}") . '
' . "\n";
$saida .= '
' . "\n";
$saida .= '
' . "\n";
$saida .= '' . "\n";
if($resumen)
{
if($publicacion->imaxe)
{
$thumb = $publicacion->imaxe->size(466, 260);
$saida .= '' . "\n";
}
$saida .= '' . "\n";
}
else
{
if($publicacion->imaxe)
{
$thumb = $publicacion->imaxe->size(466, 260);
$saida .= '' . "\n";
}
$saida .= '' . "\n";
$saida .= getSeccions($publicacion->seccions) . "\n";
$saida .= '
' . "\n";
}
$saida .= '' . "\n";
return $saida;
}