Забобрить эту страницу!
Форум русской поддержки Joomla! CMS
03.09.2010, 11:33:34 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор Тема: Собственная страница ошибок 404 в Joomla 1.5  (Прочитано 22616 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Missile
Осваиваюсь на форуме
***

Репутация: +20/-0
Offline Offline

Пол: Женский
Сообщений: 126


Просмотр профиля
« : 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 Offline

Пол: Мужской
Сообщений: 13



Просмотр профиля
« Ответ #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 Offline

Сообщений: 87


Просмотр профиля
« Ответ #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
Захожу иногда
**

Репутация: +4/-0
Offline Offline

Пол: Мужской
Сообщений: 30



Просмотр профиля
« Ответ #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.  Roll Eyes
Записан
allmomente
Захожу иногда
**

Репутация: +2/-0
Offline Offline

Сообщений: 46



Просмотр профиля WWW
« Ответ #4 : 04.07.2009, 12:16:44 »

allmomente вот это ты дал ссылку на решение, там на форуме надо регистрироваться да еще 10 сообщений написать, выложи здесь вносимый код от error.php
Для редиректа может быть много разных решений. Например такое:
Код:
<?php $URL="http://book.webcomme.ru/index.php";
header("Location:$URL");
exit();
?>
Записан
Lann
Осваиваюсь на форуме
***

Репутация: +4/-0
Offline Offline

Пол: Мужской
Сообщений: 101


Палисандровый генерал


Просмотр профиля WWW
« Ответ #5 : 17.07.2009, 15:17:55 »

2Missile, позволь я отвечу за место allmomente. Он не сказал "забейте на 404" а сделайте редирект. Что, в принципе, конечно, не корректно но тем не менее. Так что ваш совет ему - неуместен. Имхо.

и еще - следуя Вашему совету мы создаем только страницу на которой упомянута 404 ошибка. а как быть с 403 ? Azn оригинальный err.php Все распознает.

Вывод. Не мудрить со статьей, а модифицировать err.php.

Спасибо.
Записан
Lann
Осваиваюсь на форуме
***

Репутация: +4/-0
Offline Offline

Пол: Мужской
Сообщений: 101


Палисандровый генерал


Просмотр профиля WWW
« Ответ #6 : 17.07.2009, 17:14:42 »

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

офрмляйте как душа пожелает.....
Записан
Missile
Осваиваюсь на форуме
***

Репутация: +20/-0
Offline Offline

Пол: Женский
Сообщений: 126


Просмотр профиля
« Ответ #7 : 18.07.2009, 07:19:50 »

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

Репутация: +0/-0
Offline Offline

Сообщений: 9


Просмотр профиля
« Ответ #8 : 23.08.2009, 23:23:51 »

заработало только после включения в Joomle mod_rewrite. без него не взлетало вообще:(
Записан
evlebedev
Захожу иногда
**

Репутация: +1/-0
Offline Offline

Сообщений: 65



Просмотр профиля WWW
« Ответ #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
Давно я тут
****

Репутация: +18/-0
Offline Offline

Пол: Мужской
Сообщений: 253



Просмотр профиля
« Ответ #10 : 07.09.2009, 19:59:57 »

есть бесплатный компонент error404

http://extensions.joomla.org/extensions/structure-a-navigation/site-navigation/9309

Записан

Интернет - как жизнь, смысла нет, а уходить не хочется...
LOBsTerr
Захожу иногда
**

Репутация: +1/-0
Offline Offline

Пол: Мужской
Сообщений: 25


Вопрос?


Просмотр профиля
« Ответ #11 : 06.10.2009, 16:25:30 »

этот компонент не совсем дружим с SEF (
Записан
Sulpher
Support Team
*****

Репутация: +201/-4
Offline Offline

Пол: Мужской
Сообщений: 1480


Mercyful Fate's fan


Просмотр профиля WWW
« Ответ #12 : 19.08.2010, 22:22:25 »

Только что вышла обновленная версия error404 -  исправлены ошибки работы с SEF, так что ставим и радуемся.
Записан

Round Interactive - разработка сайтов под ключ на Joomla!
Joomla 1.5 FAQ   - вопросы и ответы по Joomla 1.5

Beer, sex & heavy metal.
В личку пишите по делу!
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@Mail.ru Rambler Top100 Powered by SMF 1.1.11 | SMF © 2006, Simple Machines LLC
Ноутбуки нетбуки acer.