Условия <!-- IF --> для определенных страниц

Форум для авторов модов для phpBB 3.0.x. Здесь можно попросить помощи в разработке у коллег.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
kreator
phpBB 1.4.4
Сообщения: 135
Зарегистрирован: 05.11.2010 18:36
Откуда: Новочебоксарск
Благодарил (а): 23 раза
Поблагодарили: 8 раз
Контактная информация:

Условия <!-- IF --> для определенных страниц

Сообщение kreator » 21.02.2011 19:36

Друзья, подскажите поржалуйста как правильно проставить теги "условия" для страниц:
например, необходимо, чтобы на
главной странице http://sait.ru/ - отображалась одна картинка (она же http://sait.ru/portal.php)
на странице форума http://sait.ry/index.php - отображалась другая картинка
а на всех остальных страницах - третья картинка
----------------------
что то, поиском я накопал конечно: <!-- IF $S_IN_PORTAL --> картика 1 будет отбражаться <!-- ENDIF -->
а как польностью правильно расставить:

<!-- если страница портала --> картинка 1 <!-- или если страница форума --> картинка 2 <!-- иначе --> картинка 3 <!-- конец условия -->
Чеченские хакеры уже третий день активно пытаются зарегистрироваться в одноклассниках (TheJokes.ru)

Аватара пользователя
MIT
Former team member
Сообщения: 2500
Зарегистрирован: 14.03.2009 17:52
Откуда: 56°20′02″ с. ш. 36°42′45″ в. д.
Благодарил (а): 4 раза
Поблагодарили: 351 раз
Контактная информация:

Re: Условия <!-- IF --> для определенных страниц

Сообщение MIT » 21.02.2011 19:38

SCRIPT_NAME

Аватара пользователя
Айдар
Former team member
Сообщения: 1687
Зарегистрирован: 14.12.2010 16:15
Откуда: KZN
Благодарил (а): 94 раза
Поблагодарили: 189 раз
Контактная информация:

Re: Условия <!-- IF --> для определенных страниц

Сообщение Айдар » 21.02.2011 19:46

kreator,

Код: Выделить всё

<!-- IF SCRIPT_NAME == "index" --> картинка 1 <!-- ELSEIF SCRIPT_NAME == "VIEWFORUM" --> картинка 2 <!-- ELSE --> картинка 3 <!-- ENDIF -->
In Web We Trust

Аватара пользователя
kreator
phpBB 1.4.4
Сообщения: 135
Зарегистрирован: 05.11.2010 18:36
Откуда: Новочебоксарск
Благодарил (а): 23 раза
Поблагодарили: 8 раз
Контактная информация:

Re: Условия <!-- IF --> для определенных страниц

Сообщение kreator » 21.02.2011 19:49

где в данном случае определяется SCRIPT_NAME?

<!-- IF SCRIPT_NAME == 'faq' --> - означает, что отображаться будет на странице "Часто задаваемые вопросы"?
Чеченские хакеры уже третий день активно пытаются зарегистрироваться в одноклассниках (TheJokes.ru)

Аватара пользователя
Айдар
Former team member
Сообщения: 1687
Зарегистрирован: 14.12.2010 16:15
Откуда: KZN
Благодарил (а): 94 раза
Поблагодарили: 189 раз
Контактная информация:

Re: Условия <!-- IF --> для определенных страниц

Сообщение Айдар » 21.02.2011 19:53

kreator писал(а):означает, что отображаться будет на странице
Будет. Любая страница, оканчивающаяся на XXX.php, будет срабатывать. Другое дело, что, к примеру, конкретные форумы нужно по-другому указывать немного.
In Web We Trust

Аватара пользователя
MIT
Former team member
Сообщения: 2500
Зарегистрирован: 14.03.2009 17:52
Откуда: 56°20′02″ с. ш. 36°42′45″ в. д.
Благодарил (а): 4 раза
Поблагодарили: 351 раз
Контактная информация:

Re: Условия <!-- IF --> для определенных страниц

Сообщение MIT » 21.02.2011 19:54

kreator писал(а):означает?
Означает.
kreator писал(а):где в данном случае определяется SCRIPT_NAME?
includes/functions.php

SandQuattro
phpBB 1.0.0
Сообщения: 3
Зарегистрирован: 21.04.2011 22:33
Благодарил (а): 3 раза

Re: Условия <!-- IF --> для определенных страниц

Сообщение SandQuattro » 11.05.2011 22:47

Айдар писал(а):
kreator писал(а):означает, что отображаться будет на странице
Будет. Любая страница, оканчивающаяся на XXX.php, будет срабатывать. Другое дело, что, к примеру, конкретные форумы нужно по-другому указывать немного.
== 'index' Не совсем корректно срабатывает, т. к. есть такой путь, например /adm/index.php, здесь условие тоже срабатывает, а не хотелось бы, есть вариант отсеить такие пути?

Аватара пользователя
Айдар
Former team member
Сообщения: 1687
Зарегистрирован: 14.12.2010 16:15
Откуда: KZN
Благодарил (а): 94 раза
Поблагодарили: 189 раз
Контактная информация:

Re: Условия <!-- IF --> для определенных страниц

Сообщение Айдар » 12.05.2011 16:56

SandQuattro, нет.
In Web We Trust

Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 2637
Зарегистрирован: 19.03.2009 17:43
Благодарил (а): 11 раз
Поблагодарили: 904 раза

Re: Условия <!-- IF --> для определенных страниц

Сообщение Nekstati » 12.05.2011 17:08

Есть вариант с правкой PHP. Найдите в includes/functions.php

Код: Выделить всё

		'SCRIPT_NAME'					=> str_replace('.' . $phpEx, '', $user->page['page_name']),
Добавьте ниже

Код: Выделить всё

		'PAGE_DIR'						=> $user->page['page_dir'],
Переменная {PAGE_DIR} будет означать текущую папку, например, на странице /adm/index.php она примет значение adm, а на главной — пустое значение.

Аватара пользователя
Garret_Dark
phpBB 2.0.16
Сообщения: 1091
Зарегистрирован: 11.01.2009 15:18
Откуда: root/world/russia/
Благодарил (а): 126 раз
Поблагодарили: 203 раза
Контактная информация:

Re: Условия <!-- IF --> для определенных страниц

Сообщение Garret_Dark » 11.09.2011 13:12

А есть ли в phpbb такое условие IF, чтобы оно отрабатывалось каждые Х раз, тоесть например есть <!-- IF S_ROW_COUNT is even --> который будет выполняться для каждого четного элемента (Чаще всего используется для смены класса в шаблонах).
А если нужно выводить (менять класс) для строк в порядке: 0,10,20...40,50 (Каждый десятый элемент)
5,15,25...45,55 (Каждый 5 элемент)
Как я понимаю это решается $текущее_значение / 10 = целое число и аналогично для второго примера $текущее_значение / 5 = целое число

Так есть ли готовое условие вроде <!-- IF S_ROW_COUNT / 10 = 1 -->
Чтобы использовать его вместо повторяющихся
<!-- IF S_ROW_COUNT = 1 or S_ROW_COUNT = 10 or S_ROW_COUNT = 20 or S_ROW_COUNT = 30 .... -->

В базе знаний нашел is div (делится без остатка), возможно это как раз то что я ищу, но каков его правильный синтаксис?

Заранее спасибо.

Аватара пользователя
Sheer
phpBB Guru
phpBB Guru
Сообщения: 11222
Зарегистрирован: 18.02.2007 19:01
Откуда: Рига, Латвия (страна-недоразумение)
Благодарил (а): 47 раз
Поблагодарили: 2476 раз
Контактная информация:

Re: Условия <!-- IF --> для определенных страниц

Сообщение Sheer » 11.09.2011 14:32

Код: Выделить всё

<?php
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';

$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

// Start session management
$user->session_begin();

$user->setup();
for ($row=0; $row<100; $row++)
{
    $count = $row % 10;
    $template->assign_block_vars('row', array(
        'S_TEN_ROW_COUNT' => ($count == 9) ? true : false,
        'ROW'                => $row)
    );
}
$template->set_filenames(array('body' => 'ten.html'));
page_header();
page_footer();
?>
ten.html

Код: Выделить всё

<!-- INCLUDE simple_header.html -->
<!-- BEGIN row -->
	{row.ROW}
	<!-- IF row.S_TEN_ROW_COUNT --><br />----------------<br /><!-- ELSE --><br /><!-- ENDIF -->
	<!-- END row -->
<!-- INCLUDE simple_footer.html -->
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.

Аватара пользователя
MIT
Former team member
Сообщения: 2500
Зарегистрирован: 14.03.2009 17:52
Откуда: 56°20′02″ с. ш. 36°42′45″ в. д.
Благодарил (а): 4 раза
Поблагодарили: 351 раз
Контактная информация:

Re: Условия <!-- IF --> для определенных страниц

Сообщение MIT » 11.09.2011 18:46

Согласно документации к шаблонизатору phpBB, которую, как и любую другую документацию, никто никогда не читает, phpBB спокойно понимает простейшие и не очень арифметические операции, в том числе и деление, а также объявление и изменение переменных...
http://www.phpbbguru.net/kb/styling/tem ... -tutorial/

Аватара пользователя
Sheer
phpBB Guru
phpBB Guru
Сообщения: 11222
Зарегистрирован: 18.02.2007 19:01
Откуда: Рига, Латвия (страна-недоразумение)
Благодарил (а): 47 раз
Поблагодарили: 2476 раз
Контактная информация:

Re: Условия <!-- IF --> для определенных страниц

Сообщение Sheer » 11.09.2011 19:30

Ну да
<!-- IF (row.S_ROW_COUNT % 10) eq 9 -->
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.

Аватара пользователя
Garret_Dark
phpBB 2.0.16
Сообщения: 1091
Зарегистрирован: 11.01.2009 15:18
Откуда: root/world/russia/
Благодарил (а): 126 раз
Поблагодарили: 203 раза
Контактная информация:

Re: Условия <!-- IF --> для определенных страниц

Сообщение Garret_Dark » 11.09.2011 21:23

MIT писал(а):Согласно документации к шаблонизатору phpBB, которую, как и любую другую документацию, никто никогда не читает
Читает читает, прежде чем писать я прочитал вышеупомянутую статью "от корки до корки", в частности список "условий сравнений".
Знание PHP у меня чисто интуитивное, потому понять что значит % [mod] было просто нереально, о чем я и писал выше. Мне нужно было увидеть пример использования.
Sheer, спасибо, попробую.
В частности такой метод просится тут Разноцветные полосы опроса

Аватара пользователя
MIT
Former team member
Сообщения: 2500
Зарегистрирован: 14.03.2009 17:52
Откуда: 56°20′02″ с. ш. 36°42′45″ в. д.
Благодарил (а): 4 раза
Поблагодарили: 351 раз
Контактная информация:

Re: Условия <!-- IF --> для определенных страниц

Сообщение MIT » 12.09.2011 12:59

Garret_Dark писал(а):прежде чем писать я прочитал вышеупомянутую статью "от корки до корки"
Моя фраза относится не к тебе конкретно, она произнесена в пространство...

Закрыто

Вернуться в «Для авторов (phpBB 3.0.x)»