Форум русской поддержки Joomla! CMS |

23.04.2010, 20:27:26

Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь. Вам не пришло письмо с кодом активации? Войти

|  | Начало |  | Поиск | Joomla 1.5 FAQ | Joomla 1.0 FAQ | Правила форума | Новости Joomla | Войти | Регистрация | Помощь |

Страниц: [1] Вниз |

| Добавить закладку | Печать |

| Автор | Тема: Собственная страница ошибок 404 в Joomla 1.5 (Прочитано 16166 раз)
0 Пользователей и 1 Гость смотрят эту тему.

Missile Осваиваюсь на форуме Репутация: +20/-0 Offline Пол:
Сообщений: 134

| Собственная страница ошибок 404 в Joomla 1.5 « : 07.11.2008, 09:16:28 » |

Посмотрела в интернете - многие пытаются решить проблему с созданием в Joomla 1.5, где включен джумловский родной SEF, собственной страницы ошибок. Причем так, чтобы страница не была самодельной html-кой, а была оформлена в виде стандартной страницы самой Joomla.
Вот решение для страницы 404-й ошибки, найденное на форуме Joomla.org:
1. Создаете материал, не указывая раздел и категорию (то, что в Joomla 1.0 называлось статичным материалом). Публикуете его (только не на главной).
2. В меню создаете новый пункт, указав ссылку на эту страницу. После создания в свойствах данного пункта меню смотрите истинный адрес страницы. Например, это
Код

    index.php?option=com_content&view=article&id=23

Записываете.
3. В папке templates/system есть файл error.php. Стираете в нем всё содержимое и вместо этого пишете:
Код

    <?php
          defined('JPATH_BASE') or die();
          echo file_get_contents(JURI::root().'/index.php?option=com_content&view=article&id=23');
    ?>

Либо просто переименовываете оригинальный файл, а вместо него создаете свой, новый error.php, вписываете туда то, что указано выше, и помещаете в папку templates/system.
После проделанной операции не забудьте этот пункт меню снять с публикации.
Проверено, работает.

« Последнее редактирование: 26.10.2009, 20:32:23 от PaLyCH » | Записан

livsi Захожу иногда Репутация: +1/-0 Offline Пол:
Сообщений: 13

| Re: Собственная страница ошибок в Joomla 1.5 (решение) « Ответ #1 : 12.01.2009, 02:30:41 » |

По поводу картинки с TiniMCE корень проблемы: в локализации и настройке плагина TiniMCE.
Для TiniMCE можно доставить русский язык (если качалась оригинальная версия с joomla.org и доставлялись языковые файлы для фронтеда и бакенда). Качать с сайта TiniMCE. http://tinymce.moxiecode.com/download_i18n.php
Как вариант - установить язык для TiniMCE - en (тогда редактор будет с оригинальной панелью - английской). (Расширения->Менеджер плагинов->Editor - TinyMCE 2.0: Автоматический выбор языка -нет, Код языка - en)
Насчет страницы ошибок
Missile
Цитировать
2. В меню создаете новый пункт, указав ссылку на эту страницу. После создания в свойствах данного пункта меню смотрите истинный адрес страницы.
Маленькая поправка: В создании пункта меню нет надобности, достаточно просто посмотреть ID статьи в Менеджере материалов (последняя колонка таблички на странице <ваш сайт>//administrator/index.php?option=com_content напротив созданной статьи-страницы ошибки).
Работает и в 158 и в 159.
Также можно почитать: http://docs.joomla.org/Custom_error_pages, из всего написанного для меня наиболее ценным было
Код:

    <?php
    if ($this->error->code = '404') {
            header("HTTP/1.0 404 Not Found");
    } ?>

Вставляется перед DOCTYPE в файле templates/system/error.php (если в текущем шаблоне нет templates/<template-name>/error.php), позволяет удалять страницы, которых уже нет на сайте из индекса Гугла (в стандартной редакции возвращается статус 200, и это не позволяло удалять несуществующие уже страницы из индекса Гугла при помощи интерфейса для вебмастеров https://www.google.com/webmasters/tools/)

« Последнее редактирование: 12.01.2009, 02:58:00 от livsi » | Записан

item32 Захожу иногда Репутация: +9/-2 Offline Сообщений: 90

| Re: Собственная страница ошибок в Joomla 1.5 (решение) « Ответ #2 : 04.02.2009, 20:09:29 » |

делай так
1. Создаете материал, не указывая раздел и категорию (то, что в Joomla 1.0 называлось статичным материалом). Публикуете его (только не на главной).
2. Справа в менеджере материалов есть колонка id - запомни его
3. В папке templates/system есть файл error.php. Стираете в нем всё содержимое и вместо этого пишете:
Код:
<?php
defined('JPATH_BASE') or die();
echo file_get_contents(JURI::root().'/index.php?option=com_content&view=article&id=23');
?>
вместо 23 пишешь свой id материала

| Записан

Reveal Захожу иногда Репутация: +3/-0 Offline Пол:
Сообщений: 26

| Re: Собственная страница ошибок в Joomla 1.5 (решение) « Ответ #3 : 01.06.2009, 16:43:19 » |

Смотрю, тут не у всех получается то, чего хочется...
Вот как сделал я, может, кому пригодится:
1. Заходим в административный раздел (Панель Управления).
Для удобства, чтоб материалы не "валялись где попало", Создаем раздел "Технический раздел", в этом разделе создаем категорию "Errors".
Создаем материал, и для удобства обзываем его, к примеру, "error 404", Привязываем к созданной категории. Отмечаем "Опубликовано: ДА", "На главной: Нет".
В самом материале пишем что-нибудь на Ваш вкус, к примеру вот это:
Цитировать
error 404
Страница не найдена.
Возможно, неправильно введен адрес, или после обновления сайта адрес страницы изменился.
Если у вас возникли сложности, пожалуйста, свяжитесь с Администратором этого сайта.
Смотрим ID Материала, и запоминаем (в моем случае ID Материала: 1950)
Сохраняем созданный материал.
2. Открываем файл: ваш-сайт/templates/system/error.php
В этом файле удаляем Все, и вставляем вот это:
Код:

    <?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' );
    ?>
    <?php
    if ($this->error->code = '404') {
            header("HTTP/1.0 404 Not Found");
    } ?>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <?php
    defined('JPATH_BASE') or die();
    echo file_get_contents(JURI::root().'/index.php?option=com_content&view=article&id=1950');
    ?>

В строке: echo file_get_contents(JURI::root().'/index.php?option=com_content&view=article&id=1950'); Меняем цифру 1950 на ваш ID Материала!
Сохраняем файл.
Проверяем: набираем в браузере: http://Ваш-Сайт/abra-kadabra.htm
Если все сделано правильно, то увидите собственную страницу ошибки 404.

| Записан

allmomente Захожу иногда Репутация: +2/-0 Offline Сообщений: 39

| Re: Собственная страница ошибок в Joomla 1.5 (решение) « Ответ #4 : 04.07.2009, 12:16:44 » |

Цитата: Vasya2 от 04.07.2009, 07:23:37
allmomente вот это ты дал ссылку на решение, там на форуме надо регистрироваться да еще 10 сообщений написать, выложи здесь вносимый код от error.php
Для редиректа может быть много разных решений. Например такое:
Код:

    <?php $URL="http://book.webcomme.ru/index.php";
    header("Location:$URL");
    exit();
    ?>

| Записан

Lann Захожу иногда Репутация: +3/-0 Offline Пол:
Сообщений: 82
Палисандровый генерал

| Re: Собственная страница ошибок в Joomla 1.5 (решение) « Ответ #5 : 17.07.2009, 15:17:55 » |

2Missile, позволь я отвечу за место allmomente. Он не сказал "забейте на 404" а сделайте редирект. Что, в принципе, конечно, не корректно но тем не менее. Так что ваш совет ему - неуместен. Имхо.
и еще - следуя Вашему совету мы создаем только страницу на которой упомянута 404 ошибка. а как быть с 403 ? оригинальный err.php Все распознает.
Вывод. Не мудрить со статьей, а модифицировать err.php.
Спасибо.

| Записан

Lann Захожу иногда Репутация: +3/-0 Offline Пол:
Сообщений: 82
Палисандровый генерал

| Re: Собственная страница ошибок в Joomla 1.5 (решение) « Ответ #6 : 17.07.2009, 17:14:42 » |

Поясню. в err 2 фишки
<?php echo $this->error->code ?> - выводит код ошибки
<?php echo $this->title; ?> - выводит описание ошибки
офрмляйте как душа пожелает.....

| Записан

Missile Осваиваюсь на форуме Репутация: +20/-0 Offline Пол:
Сообщений: 134

| Re: Собственная страница ошибок в Joomla 1.5 (решение) « Ответ #7 : 18.07.2009, 07:19:50 » |

Цитата: Lann от 17.07.2009, 15:17:55
2Missile, позволь я отвечу за место allmomente. Он не сказал "забейте на 404" а сделайте редирект. Что, в принципе, конечно, не корректно но тем не менее. Так что ваш совет ему - неуместен. Имхо.
Г-н allmomente написал: "Я не могу понять одного: Зачем создавать свою страницу ошибки?" - на что ему и был дан ответ. Идея оформлять страницы ошибок в общем стиле сайта родилась не в моей голове, и не вчера. А редирект 404-й на главную - решение как минимум неизящное. Пользователь набирает ввв.yoursite.ru/somepage.html и попадает на ввв.yoursite.ru. Как он должен понять, что запрашиваемый материал на сайте отсутствует? Я уже не касаюсь этической стороны вопроса - такими технологиями промышляют для сбора трафа. На белом СДЛ должны быть страницы ошибок, указывающие посетителю, что произошло, и предлагающие метод решения проблемы (воспользоваться поиском, перейти на главную и т.п.). Сателлитчикам, клепателям г*сайтов и доров эта заумь, конечно, ни к чему.

| Записан

bulbet Захожу иногда Репутация: +0/-0 Offline Сообщений: 9

| Re: Собственная страница ошибок в Joomla 1.5 (решение) « Ответ #8 : 23.08.2009, 23:23:51 » |

заработало только после включения в Joomle mod_rewrite. без него не взлетало вообще:(

| Записан

evlebedev Захожу иногда Репутация: +1/-0 Offline Сообщений: 61

| Re: Собственная страница ошибок в Joomla 1.5 (решение) « Ответ #9 : 07.09.2009, 19:38:45 » |

Я решил вопрос создания собственной страницы ошибок более тупо, но более универсально.
Взял файл php шаблона который использую в качестве основного, выбросил из тега <body> все коды вызова модулей, а на место вызова основного содержимого (<?php include ("mainbody.php"); ?>) вставил содержимое тега боди файла эрор.
Добавил нужный мне текст, форму поиска (<table class="moduletable" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<th valign="top">Поиск </th>
</tr>
<tr>
<td><form method="post" action="index.php">
<div class="search">
<input onblur="if(this.value=='') this.value='поиск...';"
id="mod_search_searchword" class="inputbox"
onfocus="if(this.value=='поиск...') this.value='';" value="поиск..." alt="искать"
maxlength="20" size="20" type="text" name="searchword" />
<input name="submit" type="submit" class="button" onclick="this.form.searchword.focus();" value="искать" />
</div>
<input value="search" type="hidden" name="task" />
<input value="com_search"
type="hidden" name="option" />
</form></td>
</tr>
</tbody>
</table>)
итд.
Вот что у меня получилось в результате
http://hi-hik.net/фигня

« Последнее редактирование: 07.09.2009, 19:43:09 от evlebedev » | Записан

fist Давно я тут Репутация: +10/-0 Offline Пол:
Сообщений: 202

| Re: Собственная страница ошибок в Joomla 1.5 (решение) « Ответ #10 : 07.09.2009, 19:59:57 » |

есть бесплатный компонент error404
http://extensions.joomla.org/extensions/structure-a-navigation/site-navigation/9309

| Записан

LOBsTerr Захожу иногда Репутация: +0/-0 Offline Пол:
Сообщений: 25
Вопрос?

| Re: [Решение] Собственная страница ошибок 404 в Joomla 1.5 « Ответ #11 : 06.10.2009, 16:25:30 » |

этот компонент не совсем дружим с SEF (

| Записан

Страниц: [1] Вверх |

| Добавить закладку | Печать |

Перейти в:

| Powered by SMF 1.1.11 | SMF © 2006, Simple Machines LLC |

Загружается...