Cikkek visszakeresése

Mi történik, ha egy cikk elérését pl. migráció után a Joomla megváltoztatja? Megpróbálhatjuk az error.php módosításával visszakeresni a hiányzónak vélt, de mégis létező cikket (amennyiben a cikk alias-a változatlan):

if($this->error->getCode()==404)
{
$uri = JFactory::getUri();
$pathA = explode('/', ltrim($uri->getPath(),'/'));
if(count($pathA)==2 && $pathA[0]=='cikkek')
{
$this->_db = JFactory::getDBO();
$query = $this->_db->getQuery(true);
$query->select('*')
->from('#__content')
->where('alias='.$this->_db->q($pathA[1]));
$this->_db->setQuery($query);
$article = $this->_db->loadObject();

if($article)
{
$url = JRoute::_('index.php?option=com_content&view=article&id='.$article->id.'&catid='.$article->catid);
JFactory::getApplication()->redirect($url, null, null, true);
}
}
}

Joomla oldal title felülírása cikk sablonból

Volt rá igény, úgyhogy lássuk a megoldást.

Egy oldalon nem minden tartalom rendelkezik önálló menüponttal. Azonban ilyenkor az oldal title szövege a cikk címe lesz. Ha szeretnénk ezt egyedileg megadni, két dolgot kell megtennünk.

Fel kell venni egy egyedi mezőt (field) ami típusát tekintve vagy sima text vagy nem beállított.

A field-nek elérhetőnek kell lenni az adott cikkeknél.

Ha ez megtörtént, akkor a cikk nézet (com_content > article view) sablon felülírásának elejére tegyük be a következő kódot:

JLoader::register('FieldsHelper', JPATH_ADMINISTRATOR . '/components/com_fields/helpers/fields.php'); 
foreach($this->item->jcfields as $jcfield)
{
$item->jcFields[$jcfield->name] = $jcfield;
}
$browserbar = $item->jcFields['fieldneve']->rawvalue;
$document = JFactory::getDocument();
$document->setTitle($browserbar);

Természetesen a 'fieldneve' az általunk megadott field név legyen (az alias, nem pedig a megadott, akár ékezetes elnevezés, ami a label!)