Полезная информация


----

Начать новую тему Ответить на тему
АвторСообщение

 Сообщение Условие распределения подгрузки скриптов phpbb3 2013-03-05

Аватар пользователя

Всем доброго времени суток. Пришло время поделиться еще одной прописной истиной, имя темы может и не корректное, ничего в голову не приходит. Поразмышляем над следующим....

У каждого наверняка на форуме поставлено порядочно модов и скриптов, это хорошо, но есть одно НО. Все скрипты подрублены в шапку форума и грузятся всегда и на всех страницах, независимо от того нужны ли они для этой страницы или нет. Лично я верю в то, что скрипт должен подгружаться лишь в на тех страницах, на которых нужна его работа. Остальное - пустая трата времени на загрузку страниц. Согласны ? Тогда читаем далее...

Итак, смотрим в шаблон overall_header.html, смотрим код до закрывающего тега </head>. Видим кучу скриптов, которые не ограничены условиями. Теперь я хочу представить вам замечательное условие
<!-- IF SCRIPT_NAME == "N" -->
содержимое
<!-- ENDIF -->
 

Как его использовать ? Допустим поставили вы скрипт слайдера, работает он только на главной странице. Так зачем же нам подгружать этот скрипт на прочих страницах ?? Оборачиваем подключение скрипта условием
<!-- IF SCRIPT_NAME == "index" -->
тут строка подключения скрипта
<!-- ENDIF -->
 

И вуаля, скрипт подгружается только на главной странице. Удобно, полезно ? Тогда читаем далее ...

В самом условии вы видите буквочку N, ее следует заменить на имя страницы, на которой надо подгружать скрипт. Вот список основных страниц
index - главная страница форума
mcp - все страницы модераторского раздела
memberlist - все страницы, связанные с просмотром профиля и списка пользователей
posting - страница написания нового сообщения (либо редактирования старого)
search - все страницы, связанные с поиском, активные темы, ваши сообщения и тд
ucp - все страницы, связанные с центром пользователя
viewforum - страница просмотра подфорума\раздела
viewtopic - страница просмотра тем

Все очень доступно и просто, так же можно использовать такое условие сразу для нескольких типов страниц, условие будет выглядеть так
<!-- IF SCRIPT_NAME == "viewtopic" or SCRIPT_NAME == "posting" or SCRIPT_NAME == "memberlist" -->
содержимое
<!-- ENDIF -->
 

Хотелось бы отметить то, что данное условие можно применять для любого кода, не обязательно только для строк подключения скрипта. Обычно это условие используют в шаблонах overall_header.html и overall_footer.html для показа определенной информации на определенных страницах. К примеру хотим вывести только на главной странице какой либо блок информации, пользуемся условием
<!-- IF SCRIPT_NAME == "index" -->
любой HTML код будет показываться только на главной странице форума
<!-- ENDIF -->
 


На этом все, надеюсь это было комунибудь полезно, успехов :ya_hoo_oo:


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Аватар пользователя

DeaDRoMeO писал(а):

index - главная страница форума
Увы, некорректно работает. Возвращает true на главной странице не только форума, но и любой приблуды (например, правил форума), где имеется страница с названием index.php. Как видите, линк "Прочтено!", взятый в это условие (он работает только на "морде" форума) показан на совсем другой странице:



Есть средство побороть эту беду?


          Вернуться наверх  
 


Аватар пользователя

Эмм наверное, надо привязывать все к переменной времени

Сообщение добавлено... спустя 3 минуты 26 секунд:
Михаил, блин, решал я как то эту беду, возможно переименованием прочих индексов в другие имена


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Аватар пользователя

DeaDRoMeO писал(а):

Эмм наверное, надо привязывать все к переменной времени


А как это воплотить?


          Вернуться наверх  
 


Аватар пользователя

Ну так, на главной же выводится время, через переменную, ее превращаете в условие. Если переменная {X}, то условие будет <!--- IF X == 'значение переменной' ---> код <--- ENDIF ---!>
Компа под рукой нету, более предметно не скажу


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Аватар пользователя

DeaDRoMeO писал(а):

Ну так, на главной же выводится время

Спасибо, сам не дотумкал...
Мало ли кому надо
<!-- IF $current_time > '22:00'  --> код <--- ENDIF ---!> //если больше 10 вечера - будет виден код  
 


не получилось....


          Вернуться наверх  
 


Аватар пользователя

Не сработало?


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Аватар пользователя

DeaDRoMeO писал(а):

У каждого наверняка на форуме поставлено порядочно модов и скриптов, это хорошо


Немного не соглашусь с тем что Вы пишете. Множество модов открывают дырки на форуме, так как моды по большей степени пишутся интузиастами, которые только только поняли как работает phpbb, и чуть чуть хтмл и пихапе. Поэтому множество модов, и дырявый форум, это уже не есть хорошо. Да если честно то и сам phpbb мягко сказать хорошо бы переписать...


          Вернуться наверх  
 


Аватар пользователя

DeaDRoMeO писал(а):

Не сработало?

Отчасти. Не срабатывает если ставлю условие к примеру - если больше 10:00 и меньше 22:00


          Вернуться наверх  
 


Аватар пользователя

Дим писал(а):

Отчасти. Не срабатывает если ставлю условие к примеру - если больше 10:00 и меньше 22:00


Код в студию...


          Вернуться наверх  
 


Аватар пользователя

masik писал(а):

Код в студию...


Как то так
<!-- IF current_time '10:00' or current_time '22:00 -->
 


          Вернуться наверх  
 


Аватар пользователя

Дим писал(а):

Как то так


А закрывать кавычку кто будет?
<!-- IF current_time > '10:00' or current_time < '22:00' -->
 


Может поэтому и не работало?


          Вернуться наверх  
 


Аватар пользователя

masik писал(а):

Может поэтому и не работало?

Да нет, это я просто на коленке писал, по памяти... а так есть кавычка


          Вернуться наверх  
 


Аватар пользователя

Дим писал(а):

Да нет, это я просто на коленке писал, по памяти... а так есть кавычка


Ошибки есть какие то может быть??
Что вообще приходит в current_time?


          Вернуться наверх  
 


Аватар пользователя

Ничего и не приходит, это ж переменная php кода, которая в шаблонах и не обрабатывается)))
Тут надо иначе делать и глобально, прописывать переменную где то в functions_display.php. Вобщем я тока через пяток дней до компа доберусь, тогда можно более предметно поковырять

Сообщение добавлено... спустя 1 минуту 2 секунды:
Да и вообще поглядите на гуру, там было решение, связанное с временем,


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Аватар пользователя

DeaDRoMeO писал(а):

Ничего и не приходит, это ж переменная php кода, которая в шаблонах и не обрабатывается)))


Ну а тогда смысл проверку делать если ничего не приходит?


          Вернуться наверх  
 


Аватар пользователя

DeaDRoMeO писал(а):

Да и вообще поглядите на гуру,

Видел, но там больно мудрёно, я думал можно полегче сделать


          Вернуться наверх  
 


Аватар пользователя

masik, а я и не говорил о смысле, я указывал на ошибку.

Дим, покажите решение которое нашли на гуру


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Аватар пользователя

DeaDRoMeO писал(а):

решение которое нашли на гуру

Пожалуйста Зарегистрируйтесь чтобы увидеть ссылку


          Вернуться наверх  
 


Аватар пользователя

ursego писал(а):

DeaDRoMeO писал(а):

index - главная страница форума
Увы, некорректно работает. Возвращает true на главной странице не только форума, но и любой приблуды (например, правил форума), где имеется страница с названием index.php. Как видите, линк "Прочтено!", взятый в это условие (он работает только на "морде" форума) показан на совсем другой странице:



Есть средство побороть эту беду?
Вот, подсказали на гуру:
rxu писал(а):

В форумном index.php объявляете какую-нибудь переменную шаблона, например
'I_AM_FORUM_INDEX' => true,
 


и в шаблоне используете
<!-- IF I_AM_FORUM_INDEX -->
...HTML...
<!-- ENDIF -->
 


          Вернуться наверх  
 


Аватар пользователя

Ещё интересная наблюдашка:
Если Вы вызываете скрипт вложенный в другие папки, то всё равно пишите только имя скрипта, без пути.
Например:
Если условие пишите для вложенного скрипта по пути http://site.ru/dopolnenie/index.php
Условие будет всё равно таким, как и для пути http://site.ru/index.php
и сработает на всех вложенных страницах форума запускаемых файлом index.php:
<!-- IF SCRIPT_NAME == "index" -->
любой HTML код будет показываться не только на главной странице форума, но и на всех вложенных страницах форума запускаемых файлом index.php
<!-- ENDIF -->
 


          Вернуться наверх  
 
 
Начать новую тему Ответить на тему


Дополнительные возможности

  Похожие темы  Автор  Ответов  Просмотров  Последнее сообщение 
Аватар пользователя Установка скриптов.

Step

25

821

Аватар пользователя

27 фев 2013, 20:16

Lorem Ipsum

Случайный аватар. Пользователю рекомендуется загрузить свой аватар в Настройках профиля Указать условие IF для номера группы или id пользователя?

weerdsa

2

644

Аватар пользователя

19 мар 2013, 18:14

DeaDRoMeO

Аватар пользователя Сео-оптимизация phpbb3
Статья посвящена небольшой сео-оптимизации форума, эти правки нужно выполнить всем админам, заботящимся о хорошей выдаче

DeaDRoMeO

365

28229

Аватар пользователя

17 ноя 2017, 22:23

madam-ka

Аватар пользователя Трояны и phpbb3
Поговорим вообщем о заражениях форума

DeaDRoMeO

42

2818

Аватар пользователя

03 сен 2013, 20:43

DeaDRoMeO

Аватар пользователя phpBB3 для чайников ;)
Вводная статья для начинающих админов phpbb3, в ней будут рассмотрены основные положения и настройки phpbb3

DeaDRoMeO

531

21198

Аватар пользователя

01 май 2017, 20:26

DeaDRoMeO

Оставить свой комментарий

Поделиться темой с помощью

Ссылки на тему

Прямая ссылка:
BB-код для форумов, сайтов, блогов:
HTML ссылка:
 


Самая неформальная поддержка phpBB :P