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; case 'logo': foreach($config->imaxes as $logo) { $configuracion['logo'][$logo->tags] = array( 'url' => $logo->url, 'alt' => $logo->description ); } break; } } return $configuracion; } /** * @param array|PageArray $seccions * @return string */ function getSeccions($seccions) { $saida = ''; $posicion = 0; foreach($seccions as $seccion) { $posicion++; switch($seccion->template) { case 'repeater_seccions': switch ($seccion->seccion_tipo->value) { case 'deslizante': $saida .= renderDeslizante($seccion); break; case 'destacados': $saida .= renderDestacado($seccion); break; case 'columnas': $saida .= renderColumna($seccion); break; case 'imaxe_texto_lateral': $saida .= renderImaxeTexto($seccion); break; case 'opinions': $saida .= renderOpinions($seccion); break; case 'texto': $saida .= renderTexto($seccion); break; case 'galeria': $saida .= renderGaleria($seccion); break; case 'reixa': $saida .= renderReixa($seccion); break; } break; case 'repeater_deslizante': $saida .= renderDiapositiva($seccion, $posicion); break; case 'repeater_botons': $saida .= renderBoton($seccion); break; case 'repeater_ligazon_imaxe': $saida .= renderLigazonImaxe($seccion); break; case 'repeater_destacados': case 'repeater_columnas': $saida .= renderElemento($seccion, $posicion); break; case 'repeater_opinions': $saida .= renderCita($seccion); break; } } return $saida; } /** * @param string $texto * @return string */ 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; } /** * @param PageArray $paxinas * @param string $clase * @return string */ function renderMenu($paxinas, $clase = 'navbar-nav') { $saida = ''; $inicio = wire('pages')->get('/'); $actual = wire('page'); if($paxinas instanceof Page) { $paxinas = array($paxinas); } $saida .= '' . "\n"; return $saida; } /** * @param array|PageArray $paxina * @param string $separador * @return string */ function renderMigasPan($paxina, $separador = '') { $saida = ''; $icono = ''; switch ($paxina->template) { case 'inicio': $icono = 'home'; break; case 'paxina': case 'habitacions': case 'habitacion': $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 .= '' . "\n"; $saida .= '
'; return $saida; } /** * @param string $titulo * @param string $texto * @param array|PageArray $imaxe * @return string */ function renderTextoMantemento($titulo, $texto, $imaxe) { $saida = ''; $saida .= '
' . "\n"; $saida .= '

' . $titulo . '

' . "\n"; $saida .= '
' . "\n"; $saida .= $texto . "\n"; $saida .= '
' . "\n"; $saida .= '
' . "\n"; $saida .= '
' . "\n"; $saida .= '' . $imaxe->description . '' . "\n"; $saida .= '
' . "\n"; $saida .= '
' . "\n"; return $saida; } /** * @param array|PageArray $seccion * @return string */ function renderGaleria($seccion) { $saida = ''; $saida .= '
' . "\n"; $saida .= '

' . (($seccion->titular) ? $seccion->titular : 'Galeria') . '

' . "\n"; $saida .= '
' . "\n"; foreach($seccion->imaxes as $imaxe) { $saida .= '
' . "\n"; $saida .= '
' . "\n"; $saida .= '' . $imaxe->description . '' . "\n"; $saida .= '
' . $imaxe->description . '
' . "\n"; $saida .= '
' . "\n"; $saida .= '
' . "\n"; $saida .= '
' . "\n"; } $saida .= '
' . "\n"; $saida .= '
Previous
' . "\n"; $saida .= '
Next
' . "\n"; $saida .= '
' . "\n"; $saida .= '
'; return $saida; } /** * @param array|PageArray $seccion * @return string */ function renderReixa($seccion) { $saida = ''; $saida .= '
' . "\n"; $saida .= '

' . (($seccion->titular) ? $seccion->titular : 'Reixa') . '

' . "\n"; $saida .= '
' . "\n"; foreach($seccion->imaxes as $imaxe) { $saida .= '
' . "\n"; $saida .= '' . $imaxe->description . '' . "\n"; $saida .= '
' . "\n"; } $saida .= '
' . "\n"; $saida .= '' . "\n"; $saida .= '
'; return $saida; } /** * @param array|PageArray $seccion * @return string */ function renderImaxeTexto($seccion) { $saida = ''; $imaxe = ''; $texto = ''; $botons = ''; if($seccion->imaxe) { $imaxe .= renderImaxe($seccion); } $texto .= renderTexto($seccion); if($seccion->botons->isEmpty()) { $botons .= '
' . "\n"; $botons .= getSeccions($seccion->botons) . "\n"; $botons .= '
' . "\n"; } switch ($seccion->imaxe_posicion->value) { case 'superior': $saida .= '
' . "\n"; $saida .= '
' . "\n"; $saida .= $imaxe . "\n"; $saida .= '
' . "\n"; $saida .= '
' . "\n"; $saida .= $texto . "\n"; $saida .= '
' . "\n"; $saida .= $botons . "\n"; break; case 'esquerda': $saida .= '
' . "\n"; $saida .= '
' . "\n"; $saida .= '
' . "\n"; $saida .= $imaxe . "\n"; $saida .= '
' . "\n"; $saida .= '
' . "\n"; $saida .= $texto . "\n"; $saida .= $botons . "\n"; $saida .= '
' . "\n"; $saida .= '
' . "\n"; break; case 'dereita': $saida .= '
' . "\n"; $saida .= '
' . "\n"; $saida .= '
' . "\n"; $saida .= $texto . "\n"; $saida .= $botons . "\n"; $saida .= '
' . "\n"; $saida .= '
' . "\n"; $saida .= $imaxe . "\n"; $saida .= '
' . "\n"; $saida .= '
' . "\n"; break; } $saida .= '
' . "\n"; return $saida; } /** * @param array|PageArray $seccion * @return string */ function renderImaxe($seccion) { $saida = ''; $saida .= '
' . "\n"; $saida .= '' . $seccion->maxe->description . '' . "\n"; $saida .= '
' . $seccion->imaxe->description . '
' . "\n"; $saida .= '
' . "\n"; return $saida; } /** * @param array|PageArray $seccion * @return string */ function renderTexto($seccion) { $saida = ''; if($seccion->titular) { $saida .= '
' . "\n"; $saida .= '

' . $seccion->titular . '

' . "\n"; $saida .= '
' . "\n"; } $saida .= '
' . "\n"; $saida .= $seccion->artigo . "\n"; $saida .= '
' . "\n"; return $saida; } /** * @param array|PageArray $seccion * @return string */ function renderBoton($seccion) { $saida = ''; $clases = ''; $sufijo = ''; switch ($seccion->botons_estilo->value) { case 'activo': $clases = 'btn btn-lg btn-primary'; break; case 'secundario': $clases = 'btn btn-lg btn-secundary'; break; case 'inactivo': $clases = 'btn btn-lg btn-primary disabled'; break; case 'aviso': $clases = 'btn btn-lg text-black btn-outline-warning'; break; case 'ligazon': $clases = 'd-inline-flex align-items-center link-primary text-decoration-none text-uppercase'; $sufijo = ' '; break; } $saida .= ''; return $saida; } /** * @param array|PageArray $seccion * @return string */ function renderLigazonImaxe($seccion) { $saida = ''; $saida .= '
' . "\n"; $saida .= '' . $seccion->imaxe->description . '' . "\n"; $saida .= '
' . "\n"; $saida .= '

' . $seccion->titular . '

' . "\n"; $saida .= '

' . _x('See details', 'see details') . '

' . "\n"; $saida .= '' . "\n"; $saida .= '
' . "\n"; $saida .= '
' . "\n"; return $saida; } /** * @param array|PageArray $seccion * @return string */ function renderDestacado($seccion) { $saida = ''; $icona = ''; $saida .= '
' . "\n"; $saida .= '

' . $seccion->titular . '

' . "\n"; $saida .= '
' . "\n"; $saida .= getSeccions($seccion->destacados); $saida .= '
' . "\n"; $saida .= '
' . "\n"; return $saida; } /** * @param array|PageArray $seccion * @param int $posicion * @return string */ function renderElemento($seccion, $posicion = 0) { $saida = ''; $saida .= '
' . "\n"; switch($seccion->destacado_icona_tipo->value) { case 'icona': $saida .= '
'; break; case 'imaxe': $saida .= '
' . $seccion->imaxe->description . '
'; break; case 'posicion': $saida .= '
' . $posicion . '
'; break; default: $saida .= ''; break; } $saida .= '
' . "\n"; $saida .= '
' . "\n"; $saida .= renderTexto($seccion); if($seccion->botons && $seccion->botons->isEmpty()) { $saida .= '
' . "\n"; $saida .= getSeccions($seccion->botons) . "\n"; $saida .= '
' . "\n"; } $saida .= '
' . "\n"; $saida .= '
' . "\n"; $saida .= '
' . "\n"; return $saida; } /** * @param array|PageArray $seccion * @return string */ function renderCategoriasEtiquetas($seccion) { $saida = ''; switch ($seccion->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 .= '' . "\n"; $saida .= '
' . "\n"; $saida .= '
    ' . "\n"; foreach($seccion 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"; $saida .= '
' . "\n"; return $saida; } /** * @param array|PageArray $artigos * @param int $posicion * @return string */ 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; } /** * @param array|PageArray $publicacion * @param string $locale * @param boolean $resumen * @return string */ 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 .= ' ' . $publicacion->title . '' . "\n"; $saida .= '

    ' . "\n"; $saida .= '
    ' . "\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 .= '' . $publicacion->imaxe->description . '' . "\n"; } $saida .= '
    ' . "\n"; $saida .= '

    ' . renderResumen(getTextoLimpo(getSeccions($publicacion->seccions))) . '

    ' . "\n"; $saida .= '

    ' . _x("Read more", "Read more") . '

    ' ."\n"; $saida .= '
    ' . "\n"; } else { if($publicacion->imaxe) { $thumb = $publicacion->imaxe->size(466, 260); $saida .= '' . $publicacion->imaxe->description . '' . "\n"; } $saida .= '
    ' . "\n"; $saida .= getSeccions($publicacion->seccions) . "\n"; $saida .= '
    ' . "\n"; } $saida .= '
    ' . "\n"; return $saida; } /** * @param string $texto * @param int $limite * @param string $fin * @return string */ 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; }