Помогите отключить мототулс плиз

D
На сайте с 28.06.2008
Offline
1114
533

Нужно отключить вывод скрипта мототулс в Джумле на 10 страницах, вот пример рабочего варианта, который отключает на одной странице:

<?php
$user =& JFactory::getUser();
if ($_SERVER['REQUEST_URI']=='/map'){
$headerstuff = $this->getHeadData();
$key1 = JURI::base(true). '/media/system/js/mootools.js';
$key2 = JURI::base(true). '/media/system/js/caption.js';
unset($headerstuff['scripts'][$key1], $headerstuff['scripts'][$key2]);
$this->setHeadData($headerstuff);
}
?>

Как сюда добавить еще условие, чтобы эти скрипты не выводились на страницах, где в урле есть

слово-
?
Ragnarok
На сайте с 25.06.2010
Offline
239
#1
Dram:
Нужно отключить вывод скрипта момтотулс в Дужмел на 10 страницах, вот пример рабочего варианта, который отключает на одной странице:

Это ты так исковеркал mootols и Joomla? o_O

Dram:
Как сюда добавить еще условие, чтобы эти скрипты не выводились на страницах, где в урле есть ?

<?php
$user =& JFactory::getUser();
if ($_SERVER['REQUEST_URI']=='/map' && stristr($_SERVER['REQUEST_URI'],"слово-"){
$headerstuff = $this->getHeadData();
$key1 = JURI::base(true). '/media/system/js/mootools.js';
$key2 = JURI::base(true). '/media/system/js/caption.js';
unset($headerstuff['scripts'][$key1], $headerstuff['scripts'][$key2]);
$this->setHeadData($headerstuff);
}
?>
//TODO: перестать откладывать на потом
D
На сайте с 28.06.2008
Offline
1114
#2

забыл уточнить - что "слово-" это часть урла и после тире тоже идут символы, тут наверное нужно как то так

(preg_match("/слово-@smi", $_SERVER["REQUEST_URI"]))

только вот как правильно это соединить не знаю..

maldivec
На сайте с 04.11.2008
Offline
160
#3
Dram:
забыл уточнить - что "слово-" это часть урла и после тире тоже идут символы, тут наверное нужно как то так

Вам все правильно написали, stristr проверит наличие вашего "слово-" в адресе и не важно, что там до и после него. Не усложняйте.

Но я бы использовал strpos();

Только вот условие неверное. В вашем варианте наоборот, скрипты подгружаются только на странице '/map', если нужно, чтобы они НЕ подгружались на этих страницах, то условие должно быть

if ($_SERVER['REQUEST_URI']!='/map' && !strpos($_SERVER['REQUEST_URI'],"слово-"){

мототулс, момтотулс и Джумел убили :D

D
На сайте с 28.06.2008
Offline
1114
#4

В итоге белая страница

---------- Добавлено в 16:05 ---------- Предыдущее сообщение было в 15:56 ----------

maldivec:
Только вот условие неверное. В вашем варианте наоборот, скрипты подгружаются только на странице '/map',

Тот код что в первом посте полностью рабочий и при нем скрипты НЕ подгружаются на страницу /map

Ragnarok
На сайте с 25.06.2010
Offline
239
#5
Dram:
В итоге белая страница

пардон, скобку забыл

<?php

$user =& JFactory::getUser();
if ($_SERVER['REQUEST_URI']=='/map' && stristr($_SERVER['REQUEST_URI'],"слово-")){
$headerstuff = $this->getHeadData();
$key1 = JURI::base(true). '/media/system/js/mootools.js';
$key2 = JURI::base(true). '/media/system/js/caption.js';
unset($headerstuff['scripts'][$key1], $headerstuff['scripts'][$key2]);
$this->setHeadData($headerstuff);
}
?>
D
На сайте с 28.06.2008
Offline
1114
#6

При Вашем варианте скрипты выводятся на всех страницах, даже на /map

---------- Добавлено в 17:07 ---------- Предыдущее сообщение было в 16:52 ----------

Как обычно помог Леонид :), вот правильный вариант:

<?php
$user =& JFactory::getUser();
if ($_SERVER['REQUEST_URI']=='/map' || preg_match("@/слово-@smi", $_SERVER["REQUEST_URI"])){
$headerstuff = $this->getHeadData();
$key1 = JURI::base(true). '/media/system/js/mootools.js';
$key2 = JURI::base(true). '/media/system/js/caption.js';
unset($headerstuff['scripts'][$key1], $headerstuff['scripts'][$key2]);
$this->setHeadData($headerstuff);
}
?>

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий