Всем привет, у меня вопрос к знатокам joomla и php.
При перехода на постраничной навигации, если перейти на 2-3-4.... страницу все норм но если перейти обратно на 1 по выдает 500 ошибку
урл такого вида _http://..../frontpage.html?layout=frontpage- 500 ошибка
урл рабочих страниц _http://..../frontpage/2.html?layout=frontpage - норм работает
если нерабочий урл руками переписать и сделать из него такой вид _http://.../frontpage/1.html?layout=frontpage то он нормально переходит на 1 страницу.
Я думаю тут есть 2 решение,
1 это сделать 301 редерект с ./frontpage.html?layout=frontpage на ./frontpage/1.html?layout=frontpage - пробовал но у меня не получилось.
2 это изменить настройку ЧПУ.
Я использую шаблон от YOOtheme.
Наполнение сайта через компонент ZOO последней версии
ЧПУ на сайте с помощью файла router.phprouter.php
<?php
/**
* @package com_zoo
* @author YOOtheme _http://www.yootheme.com
* @copyright Copyright (C) YOOtheme GmbH
* @license _http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 only
*/
// load config
require_once(JPATH_ADMINISTRATOR.'/components/com_zoo/config.php');
function ZooBuildRoute(&$query) {
$app = App::getInstance('zoo');
// init vars
$segments = array();
// frontpage
$task = 'frontpage';
if (@$query['task'] == $task || @$query['view'] == $task) {
if (@$query['task'] == $task) {
$segments[] = $task;
}
unset($query['task']);
unset($query['view']);
unset($query['layout']);
// pagination
if (isset($query['page'])) {
$segments[] = $query['page'];
unset($query['page']);
}
}
// category
$task = 'category';
if (@$query['task'] == $task || @$query['view'] == $task) {
if (@$query['task'] == $task) {
$segments[] = $task;
}
if (@$query['category_id']) {
$segments[] = $app->alias->category->translateIDToAlias((int) $query['category_id']);
}
unset($query['task']);
unset($query['view']);
unset($query['layout']);
unset($query['category_id']);
// pagination
if (isset($query['page'])) {
$segments[] = $query['page'];
unset($query['page']);
}
}
// alpha index
$task = 'alphaindex';
if ((@$query['task'] == $task || @$query['view'] == $task) && isset($query['alpha_char']) && isset($query['app_id'])) {
$segments[] = $task;
$segments[] = $app->alias->application->translateIDToAlias((int) $query['app_id']);
$segments[] = $query['alpha_char'];
unset($query['task']);
unset($query['view']);
unset($query['alpha_char']);
unset($query['app_id']);
// pagination
if (isset($query['page'])) {
$segments[] = $query['page'];
unset($query['page']);
}
}
// tag
$task = 'tag';
if ((@$query['task'] == $task || @$query['view'] == $task) && isset($query['tag']) && isset($query['app_id'])) {
$segments[] = $task;
$segments[] = $app->alias->application->translateIDToAlias((int) $query['app_id']);
$segments[] = $query['tag'];
unset($query['task']);
unset($query['view']);
unset($query['tag']);
unset($query['app_id']);
// pagination
if (isset($query['page'])) {
$segments[] = $query['page'];
unset($query['page']);
}
}
// item
$task = 'item';
if (@$query['task'] == $task || @$query['view'] == $task) {
if (@$query['task'] == $task && @$query['item_id']) {
$segments[] = $task;
$segments[] = $app->alias->item->translateIDToAlias((int) $query['item_id']);
}
unset($query['task']);
unset($query['view']);
unset($query['layout']);
unset($query['item_id']);
}
// feed
$task = 'feed';
if ((@$query['task'] == $task || @$query['view'] == $task) && isset($query['type']) && isset($query['app_id']) && isset($query['category_id'])) {
$segments[] = $task;
$segments[] = $query['type'];
$segments[] = $app->alias->application->translateIDToAlias((int) $query['app_id']);
if ($query['category_id']) {
$segments[] = $app->alias->category->translateIDToAlias((int) $query['category_id']);
}
unset($query['task']);
unset($query['view']);
unset($query['type']);
unset($query['app_id']);
unset($query['category_id']);
}
// submission
$task = 'submission';
if (((@$query['task'] == $task || @$query['view'] == $task) && @$query['layout'] == 'submission')) {
$segments[] = $task;
$segments[] = @$query['layout'];
$segments[] = $app->alias->submission->translateIDToAlias((int) $query['submission_id']);
$segments[] = $query['type_id'];
$segments[] = $query['submission_hash'];
$segments[] = $app->alias->item->translateIDToAlias((int) @$query['item_id']);
unset($query['task']);
unset($query['view']);
unset($query['layout']);
unset($query['submission_id']);
unset($query['type_id']);
unset($query['submission_hash']);
unset($query['item_id']);
}
// submission mysubmissions
$task = 'submission';
if (((@$query['task'] == $task || @$query['view'] == $task) && @$query['layout'] == 'mysubmissions')) {
$segments[] = $task;
$segments[] = @$query['layout'];
$segments[] = $app->alias->submission->translateIDToAlias((int) $query['submission_id']);
unset($query['task']);
unset($query['view']);
unset($query['layout']);
unset($query['submission_id']);
}
return $segments;
}
function ZooParseRoute($segments) {
$app = App::getInstance('zoo');
// init vars
$vars = array();
$count = count($segments);
// fix segments (see JRouter::_decodeSegments)
foreach (array_keys($segments) as $key) {
$segments[$key] = str_replace(':', '-', $segments[$key]);
}
// frontpage (with optional pagination)
$task = 'frontpage';
if ($count == 1 && $segments[0] == $task) {
$vars['task'] = $task;
}
if ($count == 2 && $segments[0] == $task) {
$vars['task'] = $task;
$vars['page'] = (int) $segments[1];
}
// category (with optional pagination)
$task = 'category';
if ($count == 2 && $segments[0] == $task) {
$vars['task'] = $task;
$vars['category_id'] = (int) $app->alias->category->translateAliasToID($segments[1]);
}
if ($count == 3 && $segments[0] == $task) {
$vars['task'] = $task;
$vars['category_id'] = (int) $app->alias->category->translateAliasToID($segments[1]);
$vars['page'] = (int) $segments[2];
}
// alpha index (with optional pagination)
$task = 'alphaindex';
if ($count == 3 && $segments[0] == $task) {
$vars['task'] = $task;
$vars['app_id'] = (int) $app->alias->application->translateAliasToID($segments[1]);
$vars['alpha_char'] = (string) $segments[2];
}
if ($count == 4 && $segments[0] == $task) {
$vars['task'] = $task;
$vars['app_id'] = (int) $app->alias->application->translateAliasToID($segments[1]);
$vars['alpha_char'] = (string) $segments[2];
$vars['page'] = (int) $segments[3];
}
// tag (with optional pagination)
$task = 'tag';
if ($count == 3 && $segments[0] == $task) {
$vars['task'] = $task;
$vars['app_id'] = (int) $app->alias->application->translateAliasToID($segments[1]);
$vars['tag'] = (string) $segments[2];
}
if ($count == 4 && $segments[0] == $task) {
$vars['task'] = $task;
$vars['app_id'] = (int) $app->alias->application->translateAliasToID($segments[1]);
$vars['tag'] = (string) $segments[2];
$vars['page'] = (int) $segments[3];
}
// item
$task = 'item';
if ($count == 2 && $segments[0] == $task) {
$vars['task'] = $task;
$vars['item_id'] = (int) $app->alias->item->translateAliasToID($segments[1]);
}
// feed
$task = 'feed';
if ($count == 3 && $segments[0] == $task) {
$vars['task'] = $task;
$vars['type'] = (string) $segments[1];
$vars['app_id'] = (int) $app->alias->application->translateAliasToID($segments[2]);
}
if ($count == 4 && $segments[0] == $task) {
$vars['task'] = $task;
$vars['type'] = (string) $segments[1];
$vars['app_id'] = (int) $app->alias->application->translateAliasToID($segments[2]);
$vars['category_id'] = (int) $app->alias->category->translateAliasToID($segments[3]);
}
// submission
$task = 'submission';
$layout = 'submission';
if ($count == 2 && $segments[0] == $task && $segments[1] == $layout) {
$vars['task'] = $task;
$vars['layout'] = (string) $segments[1];
}
if ($count == 5 && $segments[0] == $task && $segments[1] == $layout) {
$vars['task'] = $task;
$vars['layout'] = (string) $segments[1];
$vars['submission_id'] = (int) $app->alias->submission->translateAliasToID($segments[2]);
$vars['type_id'] = (string) $segments[3];
$vars['submission_hash'] = (string) $segments[4];
}
if ($count == 6 && $segments[0] == $task && $segments[1] == $layout) {
$vars['task'] = $task;
$vars['layout'] = (string) $segments[1];
$vars['submission_id'] = (int) $app->alias->submission->translateAliasToID($segments[2]);
$vars['type_id'] = (string) $segments[3];
$vars['submission_hash'] = (string) $segments[4];
$vars['item_id'] = (int) $app->alias->item->translateAliasToID($segments[5]);
}
// submission mysubmissions
$task = 'submission';
$layout = 'mysubmissions';
if ($count == 2 && $segments[0] == $task && $segments[1] == $layout) {
$vars['task'] = $task;
$vars['layout'] = (string) $segments[1];
}
if ($count == 3 && $segments[0] == $task && $segments[1] == $layout) {
$vars['task'] = $task;
$vars['layout'] = (string) $segments[1];
$vars['submission_id'] = (int) $app->alias->submission->translateAliasToID($segments[2]);
}
// try to retrieve vars from menu item
if (empty($vars)) {
if ($menu_item = $app->object->create('JSite')->getMenu()->getActive()) {
$vars['task'] = @$menu_item->query['view'];
switch ($vars['task']) {
case 'frontpage':
if ($count == 1) {
$vars['page'] = (int) $segments[0];
}
break;
case 'category':
if ($count == 1) {
$vars['page'] = (int) $segments[0];
$vars['category_id'] = @$menu_item->query['category_id'];
}
break;
}
}
}
return $vars;
}[свернуть]
еще вам может пригодиться файлfrontpage.php
<?php
/**
* @package com_zoo
* @author YOOtheme _http://www.yootheme.com
* @copyright Copyright (C) YOOtheme GmbH
* @license _http://www.gnu.org/licenses/gpl-2.0.html[/url] GNU/GPLv2 only
*/
// no direct access
defined('_JEXEC') or die('Restricted access');
// include assets css/js
if (strtolower(substr($GLOBALS[($this->app->joomla->isVersion('1.5') ? 'mainframe' : 'app')]->getTemplate(), 0, 3)) != 'yoo') {
$this->app->document->addStylesheet('assets:css/reset.css');
}
$this->app->document->addStylesheet($this->template->resource.'assets/css/zoo.css');
// show description only if it has content
if (!$this->application->description) {
$this->params->set('template.show_description', 0);
}
// show title only if it has content
if (!$this->application->getParams()->get('content.title')) {
$this->params->set('template.show_title', 0);
}
// show image only if an image is selected
if (!($image = $this->application->getImage('content.image'))) {
$this->params->set('template.show_image', 0);
}
$css_class = $this->application->getGroup().'-'.$this->template->name;
?>
<div id="yoo-zoo" class="yoo-zoo <?php echo $css_class; ?> <?php echo $css_class.'-frontpage'; ?>">
<?php if ($this->params->get('template.show_alpha_index')) : ?>
<?php echo $this->partial('alphaindex'); ?>
<?php endif; ?>
<?php if ($this->params->get('template.show_title') || $this->params->get('template.show_description') || $this->params->get('template.show_image')) : ?>
<div class="details <?php echo 'alignment-'.$this->params->get('template.alignment'); ?>">
<?php if ($this->params->get('template.show_title')) : ?>
<h1 class="title"><?php echo $this->application->getParams()->get('content.title'); ?></h1>
<?php if ($this->application->getParams()->get('content.subtitle')) : ?>
<h2 class="subtitle"><?php echo $this->application->getParams()->get('content.subtitle'); ?></h2>
<?php endif; ?>
<?php endif; ?>
<?php if ($this->params->get('template.show_description') || $this->params->get('template.show_image')) : ?>
<div class="description">
<?php if ($this->params->get('template.show_image')) : ?>
<img class="image" src="<?php echo $image['src']; ?>" title="<?php echo $this->application->getParams()->get('content.title'); ?>" alt="<?php echo $this->application->getParams()->get('content.title'); ?>" <?php echo $image['width_height']; ?>/>
<?php endif; ?>
<?php if ($this->params->get('template.show_description')) echo $this->application->getText($this->application->description); ?>
</div>
<?php endif; ?>
</div>
<?php endif; ?>
<?php
// render categories
$has_categories = false;
if ($this->params->get('template.show_categories') && ($this->category->childrenHaveItems())) {
$has_categories = true;
echo $this->partial('categories');
}
?>
<?php
// render items
if (count($this->items)) {
echo $this->partial('items', compact('has_categories'));
}
?>
</div>[свернуть]
и_pagination.php
<?php
/**
* @package com_zoo
* @author YOOtheme _http://www.yootheme.com
* @copyright Copyright (C) YOOtheme GmbH
* @license _http://www.gnu.org/licenses/gpl-2.0.html[/url] GNU/GPLv2 only
*/
// no direct access
defined('_JEXEC') or die('Restricted access');
?>
<?php if ($pagination = $this->pagination->render($this->pagination_link)) : ?>
<div class="pagination">
<div class="pagination-bg">
<?php echo $pagination; ?>
</div>
</div>
<?php endif; ?>[свернуть]
Сам сайт _big-move.ru
Если надо еще какие данные то пишите сюда.
Спасибо всем кто поможет.
- 03.03.2012 20:08
Последний раз редактировалось HaXaL; 03.03.2012 в 20:12.
- 05.03.2012 01:41
Извините меня модераторы за АП темы, но проблема решена.
Вот ее решение: вся проблема была в файлеток он должен выглядеть, мб кому пригодиться.router.php
<?php
/**
* @package com_zoo
* @author YOOtheme http://www.yootheme.com
* @copyright Copyright (C) YOOtheme GmbH
* @license http://www.gnu.org/licenses/gpl.html GNU/GPL
*/
// load config
require_once(JPATH_ADMINISTRATOR.'/components/com_zoo/config.php');
function ZooBuildRoute(&$query) {
$app = App::getInstance('zoo');
// init vars
$segments = array();
// frontpage
$task = 'frontpage';
if (@$query['task'] == $task || @$query['view'] == $task) {
if (@$query['task'] == $task) {
$segments[] = $task;
}
unset($query['task']);
unset($query['view']);
unset($query['layout']);
// pagination
if (isset($query['page'])) {
$segments[] = $query['page'];
unset($query['page']);
}
}
// category
$task = 'category';
if (@$query['task'] == $task || @$query['view'] == $task) {
if (@$query['task'] == $task) {
$segments[] = $task;
}
if (@$query['category_id']) {
$segments[] = $app->alias->category->translateIDToAlias((int) $query['category_id']);
}
unset($query['task']);
unset($query['view']);
unset($query['layout']);
unset($query['category_id']);
// pagination
if (isset($query['page'])) {
$segments[] = $query['page'];
unset($query['page']);
}
}
// alpha index
$task = 'alphaindex';
if ((@$query['task'] == $task || @$query['view'] == $task) && isset($query['alpha_char']) && isset($query['app_id'])) {
$segments[] = $task;
$segments[] = $app->alias->application->translateIDToAlias((int) $query['app_id']);
$segments[] = $query['alpha_char'];
unset($query['task']);
unset($query['view']);
unset($query['alpha_char']);
unset($query['app_id']);
// pagination
if (isset($query['page'])) {
$segments[] = $query['page'];
unset($query['page']);
}
}
// tag
$task = 'tag';
if ((@$query['task'] == $task || @$query['view'] == $task) && isset($query['tag']) && isset($query['app_id'])) {
$segments[] = $task;
$segments[] = $app->alias->application->translateIDToAlias((int) $query['app_id']);
$segments[] = $query['tag'];
unset($query['task']);
unset($query['view']);
unset($query['tag']);
unset($query['app_id']);
// pagination
if (isset($query['page'])) {
$segments[] = $query['page'];
unset($query['page']);
}
}
// item
$task = 'item';
if (@$query['task'] == $task || @$query['view'] == $task) {
if (@$query['task'] == $task && @$query['item_id']) {
$segments[] = $app->alias->item->translateIDToAlias((int) $query['item_id']);
}
unset($query['task']);
unset($query['view']);
unset($query['layout']);
unset($query['item_id']);
unset($query['category_id']);
}
// feed
$task = 'feed';
if ((@$query['task'] == $task || @$query['view'] == $task) && isset($query['type']) && isset($query['app_id']) && isset($query['category_id'])) {
$segments[] = $task;
$segments[] = $query['type'];
$segments[] = $app->alias->application->translateIDToAlias((int) $query['app_id']);
if ($query['category_id']) {
$segments[] = $app->alias->category->translateIDToAlias((int) $query['category_id']);
}
unset($query['task']);
unset($query['view']);
unset($query['type']);
unset($query['app_id']);
unset($query['category_id']);
}
// submission
$task = 'submission';
if (((@$query['task'] == $task || @$query['view'] == $task) && @$query['layout'] == 'submission')) {
$segments[] = $task;
$segments[] = @$query['layout'];
$segments[] = $app->alias->submission->translateIDToAlias((int) $query['submission_id']);
$segments[] = $query['type_id'];
$segments[] = $query['submission_hash'];
$segments[] = $app->alias->item->translateIDToAlias((int) @$query['item_id']);
unset($query['task']);
unset($query['view']);
unset($query['layout']);
unset($query['submission_id']);
unset($query['type_id']);
unset($query['submission_hash']);
unset($query['item_id']);
}
// submission mysubmissions
$task = 'submission';
if (((@$query['task'] == $task || @$query['view'] == $task) && @$query['layout'] == 'mysubmissions')) {
$segments[] = $task;
$segments[] = @$query['layout'];
$segments[] = $app->alias->submission->translateIDToAlias((int) $query['submission_id']);
unset($query['task']);
unset($query['view']);
unset($query['layout']);
unset($query['submission_id']);
}
return $segments;
}
function ZooParseRoute($segments) {
$app = App::getInstance('zoo');
// init vars
$vars = array();
$count = count($segments);
// fix segments (see JRouter::_decodeSegments)
foreach (array_keys($segments) as $key) {
$segments[$key] = str_replace(':', '-', $segments[$key]);
}
// frontpage (with optional pagination)
$task = 'frontpage';
if ($count == 1 && $segments[0] == $task) {
$vars['task'] = $task;
}
if ($count == 2 && $segments[0] == $task) {
$vars['task'] = $task;
$vars['page'] = (int) $segments[1];
}
// category (with optional pagination)
$task = 'category';
if ($count == 2 && $segments[0] == $task) {
$vars['task'] = $task;
$vars['category_id'] = (int) $app->alias->category->translateAliasToID($segments[1]);
}
if ($count == 3 && $segments[0] == $task) {
$vars['task'] = $task;
$vars['category_id'] = (int) $app->alias->category->translateAliasToID($segments[1]);
$vars['page'] = (int) $segments[2];
}
// alpha index (with optional pagination)
$task = 'alphaindex';
if ($count == 3 && $segments[0] == $task) {
$vars['task'] = $task;
$vars['app_id'] = (int) $app->alias->application->translateAliasToID($segments[1]);
$vars['alpha_char'] = (string) $segments[2];
}
if ($count == 4 && $segments[0] == $task) {
$vars['task'] = $task;
$vars['app_id'] = (int) $app->alias->application->translateAliasToID($segments[1]);
$vars['alpha_char'] = (string) $segments[2];
$vars['page'] = (int) $segments[3];
}
// tag (with optional pagination)
$task = 'tag';
if ($count == 3 && $segments[0] == $task) {
$vars['task'] = $task;
$vars['app_id'] = (int) $app->alias->application->translateAliasToID($segments[1]);
$vars['tag'] = (string) $segments[2];
}
if ($count == 4 && $segments[0] == $task) {
$vars['task'] = $task;
$vars['app_id'] = (int) $app->alias->application->translateAliasToID($segments[1]);
$vars['tag'] = (string) $segments[2];
$vars['page'] = (int) $segments[3];
}
// item
$task = 'item';
if ($count == 1 && (int) $app->alias->item->translateAliasToID($segments[0]))
{
$vars['task'] = $task;
$vars['item_id'] = (int) $app->alias->item->translateAliasToID($segments[0]);
}
// feed
$task = 'feed';
if ($count == 3 && $segments[0] == $task) {
$vars['task'] = $task;
$vars['type'] = (string) $segments[1];
$vars['app_id'] = (int) $app->alias->application->translateAliasToID($segments[2]);
}
if ($count == 4 && $segments[0] == $task) {
$vars['task'] = $task;
$vars['type'] = (string) $segments[1];
$vars['app_id'] = (int) $app->alias->application->translateAliasToID($segments[2]);
$vars['category_id'] = (int) $app->alias->category->translateAliasToID($segments[3]);
}
// submission
$task = 'submission';
$layout = 'submission';
if ($count == 2 && $segments[0] == $task && $segments[1] == $layout) {
$vars['task'] = $task;
$vars['layout'] = (string) $segments[1];
}
if ($count == 5 && $segments[0] == $task && $segments[1] == $layout) {
$vars['task'] = $task;
$vars['layout'] = (string) $segments[1];
$vars['submission_id'] = (int) $app->alias->submission->translateAliasToID($segments[2]);
$vars['type_id'] = (string) $segments[3];
$vars['submission_hash'] = (string) $segments[4];
}
if ($count == 6 && $segments[0] == $task && $segments[1] == $layout) {
$vars['task'] = $task;
$vars['layout'] = (string) $segments[1];
$vars['submission_id'] = (int) $app->alias->submission->translateAliasToID($segments[2]);
$vars['type_id'] = (string) $segments[3];
$vars['submission_hash'] = (string) $segments[4];
$vars['item_id'] = (int) $app->alias->item->translateAliasToID($segments[5]);
}
// submission mysubmissions
$task = 'submission';
$layout = 'mysubmissions';
if ($count == 2 && $segments[0] == $task && $segments[1] == $layout) {
$vars['task'] = $task;
$vars['layout'] = (string) $segments[1];
}
if ($count == 3 && $segments[0] == $task && $segments[1] == $layout) {
$vars['task'] = $task;
$vars['layout'] = (string) $segments[1];
$vars['submission_id'] = (int) $app->alias->submission->translateAliasToID($segments[2]);
}
// try to retrieve vars from menu item
if (empty($vars)) {
if ($menu_item = $app->object->create('JSite')->getMenu()->getActive()) {
$vars['task'] = @$menu_item->query['view'];
switch ($vars['task']) {
case 'frontpage':
if ($count == 1) {
$vars['page'] = (int) $segments[0];
}
break;
case 'category':
if ($count == 1) {
$vars['page'] = (int) $segments[0];
$vars['category_id'] = @$menu_item->query['category_id'];
}
break;
}
}
}
return $vars;
}[свернуть]Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 10 сообщение(ий)):У вас нет прав чтобы видеть скрытый текст, содержащийся здесь.Последний раз редактировалось ArhStrAngeR; 23.04.2012 в 12:07. Причина: обновил в связи с изменением файла по просьбе ТС
Спасибо сказали:
ArhStrAngeR(05.03.2012),
Тэги топика:
Похожие темы
Темы | Раздел | Ответов | Последний пост |
---|---|---|---|
JComments 2.3 - компонент комментариев для Joomla 2.5, Joomla 1.5 и Joomla 1.0 | Joomla | 5 | 21.03.2012 23:16 |
Ошибка при импорте БД Joomla | Web программирование | 2 | 29.02.2012 03:04 |
Плагин Joomla Estate Agency переработать для Joomla!2.5 | Софт, скрипты, лицензии | 0 | 28.02.2012 21:37 |
Ошибка в joomla | Joomla | 5 | 03.11.2011 00:16 |
Ошибка: Внутренняя ошибка Remote service dnsmgr return error. Code 100 | Вопросы от новичков | 0 | 17.10.2009 23:05 |