Buongiorno,
io sto creando sul mio sito in locale una pagina di error404 utilizzando Joomla 3.3.3 e Easyphp 12.1
Come è spiegato in vari tutorial quando creo l'articolo "Errore404" lo devo creare senza categoria. Qui sorge il primo problema visto che devo per forza inserire la categoria. Come posso creare un articolo senza categoria?
Poi seguendo tutti i passaggi succesivi, mettendo il file error nel mio template, e modificando il file error dove c'è "$this->error->code) == '404' " con "$this->error->getCode()) == '404'" mi escono questi errori:
Strict Standards: Only variables should be assigned by reference in C:\Program Files (x86)\EasyPHP-12.1\www\SoloVasco\templates\td-okini\error.php on line 27
Fatal error: Call to a member function redirect() on a non-object in C:\Program Files (x86)\EasyPHP-12.1\www\SoloVasco\templates\td-okini\error.php on line 39
Cosa sbaglio a fare?
Il codice del file errore è questo:
<?php
/**
* @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.
* @license GNU/GPL, see LICENSE.php
* Joomla! is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
//inizializzo variabile globale
global $mainframe;
// Inserire come valore per $titolopagina404 il titolo del vostro articolo che utilizzate come pagina 404
// come valore di default abbiamo indicato il titolo in errore404 questo � il titolo del vostro articolo
// come l'esempio commentato di seguito
//$titolopagina404 = 'errore404';
// valore di default
$titolopagina404 = 'errore404';
// NON MODIFICATE I VALORI SEGUENTI SE NON SAPETE COSA STATE FACENDO
//query per ricerca id articolo in base al titolo assegnato
$db =& JFactory::getDBO();
$query = 'SELECT id AS numerocodicepagina' .
' FROM #__content'.
' WHERE title ="'. $titolopagina404.'"';
$db->setQuery($query);
$rows = $db->loadObject();
// path dell'articolo da includere come testo per pagina 404
$link = JRoute::_( JURI::root().'index.php?option=com_content&view=article&id=');
if ( ($this->error->getCode()) == '404' && $rows->numerocodicepagina != null )
{
echo $mainframe->redirect( $link.$rows->numerocodicepagina );
// utilizzo di redirect in luogo di file_get_contents.
//file_get_contents($link.$rows->numerocodicepagina);
}
else
{
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>">
<head>
<title><?php echo $this->error->code ?> - <?php echo $this->title; ?></title>
<link rel="stylesheet" href="<?php echo $this->baseurl; ?>/templates/system/css/error.css" type="text/css" />
</head>
<body>
<div align="center">
<div id="outline">
<div id="errorboxoutline">
<div id="errorboxheader"><?php echo $this->error->code ?> - <?php echo $this->error->message ?></div>
<div id="errorboxbody">
<p><strong><?php echo JText::_('You may not be able to visit this page because of:'); ?></strong></p>
<ol>
<li><?php echo JText::_('An out-of-date bookmark/favourite'); ?></li>
<li><?php echo JText::_('A search engine that has an out-of-date listing for this site'); ?></li>
<li><?php echo JText::_('A mis-typed address'); ?></li>
<li><?php echo JText::_('You have no access to this page'); ?></li>
<li><?php echo JText::_('The requested resource was not found'); ?></li>
<li><?php echo JText::_('An error has occurred while processing your request.'); ?></li>
</ol>
<p><strong><?php echo JText::_('Please try one of the following pages:'); ?></strong></p>
<p>
<ul>
<li><a href="<?php echo $this->baseurl; ?>/index.php" title="<?php echo JText::_('Go to the home page'); ?>"><?php echo JText::_('Home Page'); ?></a></li>
</ul>
</p>
<p><?php echo JText::_('If difficulties persist, please contact the system administrator of this site.'); ?></p>
<div id="techinfo">
<p><?php echo $this->error->message; ?></p>
<p>
<?php if($this->debug) :
echo $this->renderBacktrace();
endif; ?>
</p>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
<?php
}
?>