Joomla.it Forum
Joomla! 3 => Joomla! 3 => : Snt®hw4u® 03 May 2013, 22:21:29
-
Come da titolo:
Come creo una pagina per l'errore 404 su Joomla 3.1?
uso un template protostar.
Saluti
-
Ciao Snt®hw4u®,
la pagina di errore c'è in quel template è error.php
Se la vuoi personalizzare crea un articolo e inserisci solo i moduli essenziali (tipo il menù principale) e metti il link alla home nel testo dell'articolo (ad esempio).
Crea una voce di menù temporanea e linka l'articolo.
Richiami l'articolo in frontend e copi il codice sorgente, lo incolli nella pagina error.php al posto di quello che trovi, e hai la pagina personalizzata come vuoi.
Poi elimina la voce menù.
-
Non trovo la pagina error.php
Il template base è il protosta e io l'ho "copiato" con un altro nome
-
Ho trovato il file error.php dentro protostar e l'ho copiato nel mio template.
Ma in che punto devo modificare?
-
Richiami l'articolo in frontend e copi il codice sorgente, lo incolli nella pagina error.php al posto di quello che trovi, e hai la pagina personalizzata come vuoi.
-
Ciao e intanto grazie per l'aiuto!
il codice della pagina di errore è:
<?php
/**
* @package Joomla.Administrator
* @subpackage Templates.protostar
*
* @copyright Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
defined('_JEXEC') or die;
// Getting params from template
$params = JFactory::getApplication()->getTemplate(true)->params;
$app = JFactory::getApplication();
$doc = JFactory::getDocument();
$this->language = $doc->language;
$this->direction = $doc->direction;
// Detecting Active Variables
$option = $app->input->getCmd('option', '');
$view = $app->input->getCmd('view', '');
$layout = $app->input->getCmd('layout', '');
$task = $app->input->getCmd('task', '');
$itemid = $app->input->getCmd('Itemid', '');
$sitename = $app->getCfg('sitename');
if($task == "edit" || $layout == "form" )
{
$fullWidth = 1;
}
else
{
$fullWidth = 0;
}
// Add JavaScript Frameworks
JHtml::_('bootstrap.framework');
// Add current user information
$user = JFactory::getUser();
// Logo file
if ($params->get('logoFile'))
{
$logo = JURI::root() . $params->get('logoFile');
}
else
{
$logo = $this->baseurl . "/templates/" . $this->template . "/images/logo.png";
}
?>
<!DOCTYPE html>
<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->title; ?> <?php echo $this->error->getMessage();?></title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="language" content="<?php echo $this->language; ?>" />
<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template; ?>/css/template.css" type="text/css" />
<?php
$debug = JFactory::getConfig()->get('debug_lang');
if ((defined('JDEBUG') && JDEBUG) || $debug)
{
?>
<link rel="stylesheet" href="<?php echo $this->baseurl ?>/media/cms/css/debug.css" type="text/css" />
<?php
}
?>
<?php
// If Right-to-Left
if ($this->direction == 'rtl')
{
?>
<link rel="stylesheet" href="<?php echo $this->baseurl ?>/media/jui/css/bootstrap-rtl.css" type="text/css" />
<?php
}
// Use of Google Font
if ($params->get('googleFont'))
{
?>
<link href='http://fonts.googleapis.com/css?family=<?php echo $params->get('googleFontName');?>' rel='stylesheet' type='text/css'>
<?php
}
?>
<link href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template; ?>/favicon.ico" rel="shortcut icon" type="image/vnd.microsoft.icon" />
<?php
// Template color
if ($params->get('templateColor'))
{
?>
<style type="text/css">
body.site
{
border-top: 3px solid <?php echo $params->get('templateColor');?>;
background-color: <?php echo $params->get('templateBackgroundColor');?>
}
a
{
color: <?php echo $params->get('templateColor');?>;
}
.navbar-inner, .nav-list > .active > a, .nav-list > .active > a:hover, .dropdown-menu li > a:hover, .dropdown-menu .active > a, .dropdown-menu .active > a:hover, .nav-pills > .active > a, .nav-pills > .active > a:hover
{
background: <?php echo $params->get('templateColor');?>;
}
.navbar-inner
{
-moz-box-shadow: 0 1px 3px rgba(0, 0, 0, .25), inset 0 -1px 0 rgba(0, 0, 0, .1), inset 0 30px 10px rgba(0, 0, 0, .2);
-webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, .25), inset 0 -1px 0 rgba(0, 0, 0, .1), inset 0 30px 10px rgba(0, 0, 0, .2);
box-shadow: 0 1px 3px rgba(0, 0, 0, .25), inset 0 -1px 0 rgba(0, 0, 0, .1), inset 0 30px 10px rgba(0, 0, 0, .2);
}
</style>
<?php
}
?>
<!--[if lt IE 9]>
<script src="<?php echo $this->baseurl ?>/media/jui/js/html5.js"></script>
<![endif]-->
</head>
<body class="site <?php echo $option
. ' view-' . $view
. ($layout ? ' layout-' . $layout : ' no-layout')
. ($task ? ' task-' . $task : ' no-task')
. ($itemid ? ' itemid-' . $itemid : '')
. ($params->get('fluidContainer') ? ' fluid' : '');
?>">
<!-- Body -->
<div class="body">
<div class="container<?php echo ($params->get('fluidContainer') ? '-fluid' : '');?>">
<!-- Header -->
<div class="header">
<div class="header-inner clearfix">
<a class="brand pull-left" href="<?php echo $this->baseurl; ?>">
<img src="<?php echo $logo;?>" alt="<?php echo $sitename; ?>" />
</a>
<div class="header-search pull-right">
<?php
// Display position-0 modules
$this->searchmodules = JModuleHelper::getModules('position-0');
foreach ($this->searchmodules as $searchmodule)
{
$output = JModuleHelper::renderModule($searchmodule, array('style' => 'none'));
$params = new JRegistry;
$params->loadString($searchmodule->params);
echo $output;
}
?>
</div>
</div>
</div>
<div class="navigation">
<?php
// Display position-1 modules
$this->navmodules = JModuleHelper::getModules('position-1');
foreach ($this->navmodules as $navmodule)
{
$output = JModuleHelper::renderModule($navmodule, array('style' => 'none'));
$params = new JRegistry;
$params->loadString($navmodule->params);
echo $output;
}
?>
</div>
<!-- Banner -->
<div class="banner">
<jdoc:include type="modules" name="banner" style="xhtml" />
</div>
<div class="row-fluid">
<div id="content" class="span12">
<!-- Begin Content -->
<h1 class="page-header"><?php echo JText::_('JERROR_LAYOUT_PAGE_NOT_FOUND'); ?></h1>
<div class="well">
<div class="row-fluid">
<div class="span6">
<p><strong><?php echo JText::_('JERROR_LAYOUT_ERROR_HAS_OCCURRED_WHILE_PROCESSING_YOUR_REQUEST'); ?></strong></p>
<p><?php echo JText::_('JERROR_LAYOUT_NOT_ABLE_TO_VISIT'); ?></p>
<ul>
<li><?php echo JText::_('JERROR_LAYOUT_AN_OUT_OF_DATE_BOOKMARK_FAVOURITE'); ?></li>
<li><?php echo JText::_('JERROR_LAYOUT_MIS_TYPED_ADDRESS'); ?></li>
<li><?php echo JText::_('JERROR_LAYOUT_SEARCH_ENGINE_OUT_OF_DATE_LISTING'); ?></li>
<li><?php echo JText::_('JERROR_LAYOUT_YOU_HAVE_NO_ACCESS_TO_THIS_PAGE'); ?></li>
</ul>
</div>
<div class="span6">
<?php if (JModuleHelper::getModule('search')) : ?>
<p><strong><?php echo JText::_('JERROR_LAYOUT_SEARCH'); ?></strong></p>
<p><?php echo JText::_('JERROR_LAYOUT_SEARCH_PAGE'); ?></p>
<?php
$module = JModuleHelper::getModule('search');
echo JModuleHelper::renderModule($module);
?>
<?php endif; ?>
<p><?php echo JText::_('JERROR_LAYOUT_GO_TO_THE_HOME_PAGE'); ?></p>
<p><a href="<?php echo $this->baseurl; ?>/index.php" class="btn"><i class="icon-home"></i> <?php echo JText::_('JERROR_LAYOUT_HOME_PAGE'); ?></a></p>
</div>
</div>
<hr />
<p><?php echo JText::_('JERROR_LAYOUT_PLEASE_CONTACT_THE_SYSTEM_ADMINISTRATOR'); ?></p>
<blockquote>
<span class="label label-inverse"><?php echo $this->error->getCode(); ?></span> <?php echo $this->error->getMessage();?>
</blockquote>
</div>
<!-- End Content -->
</div>
</div>
</div>
</div>
<!-- Footer -->
<div class="footer">
<div class="container<?php echo ($params->get('fluidContainer') ? '-fluid' : '');?>">
<hr />
<jdoc:include type="modules" name="footer" style="none" />
<p class="pull-right"><a href="#top" id="back-top"><?php echo JText::_('TPL_PROTOSTAR_BACKTOTOP'); ?></a></p>
<p>© <?php echo $sitename; ?> <?php echo date('Y');?></p>
</div>
</div>
<jdoc:include type="modules" name="debug" style="none" />
</body>
</html>
e la pagina che voglio visualizzare è questa..
http://www.pizzeriabemitempi.it/menu-non-trovato.html
Ciao e ancora Grazie
-
Risolto:
Ho cercato su internet e ho trovato la soluzione:
Ora apri il file error.php e cerca le parole defined('_JEXEC') or die; 6. Copia il seguente codice subito dopo le parole defined('_JEXEC') or die;
Aggiunta:
if (($this->error->getCode()) == '404') {
header('Location: index.php?option=com_content&view=article&id=7');
exit; }
Al posto di:
index.php?option=com_content&view=article&id=7
Ho inserito il riferimento del mio articolo!
Ciao e Grazie!
-
Bene. Levo il riferimento perché ad una risorsa esterna.
-
Ok! Ciao e ancora Grazie per l'aiuto!