Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 3 Ответов
  • 1525 Просмотров
*

theo_

  • Захожу иногда
  • 115
  • 2 / 0
страница 404
« : 29.09.2010, 17:32:04 »
хочется узнать, как программно перенаправлять на свою собственную страницу 404
создал я в каталоге HTML страницу shop.404

при вводе в адресную строку несуществующего адреса
Код
index.php?option=com_virtuemart&page=unknown_page
хочется, чтобы делался редирект на страницу shop.404

в vm обычно выводится предупреждение, что такая страница не найдена...

в каком файле нужно добавить редирект, чтобы происходило перенаправлние?
*

skyscraper

  • Захожу иногда
  • 252
  • 47 / 2
Re: страница 404
« Ответ #1 : 30.09.2010, 00:11:02 »
а SEF у тебя не стоит случаем? например в sh404 это всё легко настраивается в опциях... а так, вот статейка или здесь  ^-^
« Последнее редактирование: 30.09.2010, 00:16:08 от skyscraper »
*

theo_

  • Захожу иногда
  • 115
  • 2 / 0
Re: страница 404
« Ответ #2 : 30.09.2010, 23:05:15 »
спасибо, редактированием файла /templates/имя_шаблона/error.php можно решить проблемы со стандартными компонентами
т.е. допустим, если для com_content я укажу не тот вид (view)
тогда сработает error.php

однако для vm, указав в page несуществующую страницу, этот error.php не сработает...
у него где-то своя обработка идет
подскажите, кто знает....
*

theo_

  • Захожу иногда
  • 115
  • 2 / 0
Re: страница 404
« Ответ #3 : 01.10.2010, 17:50:45 »
Может кому пригодиться:

файл VirtueMart.php (/components/com_virtuemart)
там есть следующая проверка:
Код
elseif( !$pagePermissionsOK && defined('_VM_PAGE_NOT_FOUND') ) {
$page = HOMEPAGE;
}
заменил HOMEPAGE на созданную мной shop.404, т.е. получилось
Код
elseif( !$pagePermissionsOK && defined('_VM_PAGE_NOT_FOUND') ) {
$page = 'shop.404';
}

Все теперь работает, как я и хотел

в том же файле можно решить еще одну проблему

иногда при переходе по ссылке, которая доступна только авторизованным пользователям, гость получит перед собой форму авторизации и надпись выше нее - "Вы должны войти"
Думаю у многих она выпадает, так сказать, из дизайна сайта

Вот код, который ее выводит:

Код
if( !$pagePermissionsOK && defined('_VM_PAGE_NOT_AUTH') ) {
  $page = 'checkout.login_form';
  echo '<br/><br/>'.$VM_LANG->_('DO_LOGIN').'<br/><br/>';
}

Чтобы она не выводилась, строчку с echo тупо комментируем

Ну а чтобы пользователю дать хоть какое-то понятие о том, зачем перед ним появилась форма авторизации, я использовал сессии:

Код
$ses = &JFactory::getSession();
  $ses->set('DO_LOGIN', null);
 
if (( !$pagePermissionsOK || !$funcParams ) && $_REQUEST['page'] != 'checkout.index') {

if( !$pagePermissionsOK && defined('_VM_PAGE_NOT_AUTH') ) {
$page = 'checkout.login_form';
$ses->set('DO_LOGIN', 'Для доступа к данной странице необходимо авторизоваться');
}

Соответственно, нужно внести и изменения в страницу checkout.login_form
Там мы читаем данные из сессии, выводим в нужном нам виде и обязательно затираем....

Код
  //В нужном месте выводим пользователю сообщение
  $ses = &JFactory::getSession();
  $error = $ses->get('DO_LOGIN', null);
  if($error) {
    echo '<p class="error">'.$error.'</p>';
  }
  $ses->set('DO_LOGIN', null);
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Дополнительная страница при оформлении заказов (бланк заказа)

Автор Serpent19

Ответов: 27
Просмотров: 2442
Последний ответ 18.12.2012, 17:39:06
от Serpent19
Сделать так чтобы не открывалась страница flypage

Автор Vasil-jim

Ответов: 2
Просмотров: 1937
Последний ответ 09.08.2012, 21:29:16
от Vasil-jim
Страница полного описания товара в лайтбоксе как ?

Автор Арчик

Ответов: 12
Просмотров: 3505
Последний ответ 30.04.2011, 08:41:45
от Infosakh
Нужно чтобы открывалась страница внешнего сайта при нажатии на изображении товара

Автор kamilchik

Ответов: 7
Просмотров: 1628
Последний ответ 20.01.2011, 21:35:41
от varX
Страница "Производитель товара"

Автор myreg12345

Ответов: 0
Просмотров: 1504
Последний ответ 16.11.2010, 20:05:20
от myreg12345