Paxina de procura.
This commit is contained in:
parent
03414732d1
commit
d4f77bb8da
4 changed files with 1904 additions and 48 deletions
File diff suppressed because one or more lines are too long
|
@ -1,29 +1,34 @@
|
||||||
<?php namespace ProcessWire;
|
<?php namespace ProcessWire;
|
||||||
|
|
||||||
|
/** @var Page $page API variable */
|
||||||
|
|
||||||
|
$atopar = $sanitizer->text($input->get('q'));
|
||||||
|
|
||||||
$menu = '';
|
$menu = '';
|
||||||
$contido = '';
|
$contido = '';
|
||||||
|
|
||||||
$mantemento = $inicio->mantemento;
|
if($configuracion['mantemento']['activo'] && !$user->isLoggedin())
|
||||||
|
|
||||||
if($mantemento && !$user->isLoggedin())
|
|
||||||
{
|
{
|
||||||
$session->redirect($inicio->url);
|
$session->redirect($inicio->url);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$atopar = $sanitizer->text($input->get('q'));
|
$menu = renderMenu($inicio->children);
|
||||||
|
}
|
||||||
|
|
||||||
$contido .= '<article id="' . $page->name . '">' . "\n";
|
$contido .= renderMigasPan($page) . "\n";
|
||||||
$contido .= '<h2 class="bloque"><i class="icon-search"></i> ';
|
$contido .= '<article id="' . $page->name .'" class="container">' . "\n";
|
||||||
$contido .= $atopar ? $page->title . ': ' . $atopar : $page->title;
|
$contido .= '<h2 class="visually-hidden">' . ucfirst($page->title) . '</h2>' . "\n";
|
||||||
$contido .= '</h2>' . "\n";
|
|
||||||
|
|
||||||
if($atopar)
|
if($atopar)
|
||||||
{
|
{
|
||||||
$input->whitelist('q', $atopar);
|
$input->whitelist('q', $atopar);
|
||||||
$atopar = $sanitizer->selectorValue($atopar);
|
$atopar = $sanitizer->selectorValue($atopar);
|
||||||
|
|
||||||
$selector = "title|seccions.artigo~=$atopar, limit=50";
|
$selector = "";
|
||||||
|
$selector .= "(title|seccions.titular|seccions.artigo~=$atopar)";
|
||||||
|
$selector .= ",(seccions.destacados.titular~=$atopar)";
|
||||||
|
$selector .= ",(seccions.destacados.artigo~=$atopar), limit=50";
|
||||||
if($user->isLoggedin()) $selector .= ", has_parent!=2";
|
if($user->isLoggedin()) $selector .= ", has_parent!=2";
|
||||||
$matches = $pages->find($selector);
|
$matches = $pages->find($selector);
|
||||||
|
|
||||||
|
@ -66,4 +71,3 @@ else
|
||||||
$contido .= '</section>';
|
$contido .= '</section>';
|
||||||
}
|
}
|
||||||
$contido .= '</article>' . "\n";
|
$contido .= '</article>' . "\n";
|
||||||
}
|
|
|
@ -223,6 +223,39 @@ function renderMigasPan($paxina, $separador = '<i class="icon-chevrons-right"></
|
||||||
return $saida;
|
return $saida;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param array|PageArray $paxinas
|
||||||
|
* @param int $maxDepth How many levels of navigation below current should it go?
|
||||||
|
* @param string $fieldNames Any extra field names to display (separate multiple fields with a space)
|
||||||
|
* @param string $class CSS class name for containing <ul>
|
||||||
|
* @return string
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
function renderMapaDoSitio($paxinas, $profundidade = 0, $clase = 'nav')
|
||||||
|
{
|
||||||
|
$saida = '';
|
||||||
|
$actual = wire('page');
|
||||||
|
|
||||||
|
if($paxinas instanceof Page) $paxinas = array($paxinas);
|
||||||
|
|
||||||
|
foreach($paxinas as $paxina)
|
||||||
|
{
|
||||||
|
$saida .= '<li class="'. (($paxina->id == $actual->id) ? ' active' : '') . '">' . "\n";
|
||||||
|
$saida .= "<a href='$paxina->url'>$paxina->title</a>";
|
||||||
|
|
||||||
|
if($paxina->hasChildren() && $profundidade)
|
||||||
|
{
|
||||||
|
if($class == 'nav') $class = 'nav nav-tree';
|
||||||
|
$saida .= renderMapaDoSitio($paxina->children, $profundidade-1, $clase);
|
||||||
|
}
|
||||||
|
$saida .= "</li>";
|
||||||
|
}
|
||||||
|
|
||||||
|
if($saida) $saida = '<ul class="' . $class . '">' . $saida . '</ul>' ."\n";
|
||||||
|
|
||||||
|
return $saida;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $titulo
|
* @param string $titulo
|
||||||
* @param string $texto
|
* @param string $texto
|
||||||
|
|
Loading…
Reference in a new issue