Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

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

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

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

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

Сообщение kreator »

Друзья, подскажите поржалуйста как правильно проставить теги "условия" для страниц:
например, необходимо, чтобы на
главной странице 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
Стаж: 15 лет
Откуда: 56°20′02″ с. ш. 36°42′45″ в. д.
Благодарил (а): 4 раза
Поблагодарили: 352 раза
Контактная информация:

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

Сообщение MIT »

SCRIPT_NAME
Аватара пользователя
Айдар
Former team member
Сообщения: 1687
Стаж: 13 лет 3 месяца
Откуда: KZN
Благодарил (а): 93 раза
Поблагодарили: 189 раз
Контактная информация:

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

Сообщение Айдар »

kreator,

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

<!-- IF SCRIPT_NAME == "index" --> картинка 1 <!-- ELSEIF SCRIPT_NAME == "VIEWFORUM" --> картинка 2 <!-- ELSE --> картинка 3 <!-- ENDIF -->
In Web We Trust
Аватара пользователя
kreator
phpBB 1.4.4
Сообщения: 135
Стаж: 13 лет 4 месяца
Откуда: Новочебоксарск
Благодарил (а): 23 раза
Поблагодарили: 8 раз
Контактная информация:

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

Сообщение kreator »

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

<!-- IF SCRIPT_NAME == 'faq' --> - означает, что отображаться будет на странице "Часто задаваемые вопросы"?
Чеченские хакеры уже третий день активно пытаются зарегистрироваться в одноклассниках (TheJokes.ru)
Аватара пользователя
Айдар
Former team member
Сообщения: 1687
Стаж: 13 лет 3 месяца
Откуда: KZN
Благодарил (а): 93 раза
Поблагодарили: 189 раз
Контактная информация:

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

Сообщение Айдар »

kreator писал(а):означает, что отображаться будет на странице
Будет. Любая страница, оканчивающаяся на XXX.php, будет срабатывать. Другое дело, что, к примеру, конкретные форумы нужно по-другому указывать немного.
In Web We Trust
Аватара пользователя
MIT
Former team member
Сообщения: 2500
Стаж: 15 лет
Откуда: 56°20′02″ с. ш. 36°42′45″ в. д.
Благодарил (а): 4 раза
Поблагодарили: 352 раза
Контактная информация:

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

Сообщение MIT »

kreator писал(а):означает?
Означает.
kreator писал(а):где в данном случае определяется SCRIPT_NAME?
includes/functions.php
SandQuattro
phpBB 1.0.0
Сообщения: 3
Стаж: 12 лет 11 месяцев
Благодарил (а): 3 раза

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

Сообщение SandQuattro »

Айдар писал(а):
kreator писал(а):означает, что отображаться будет на странице
Будет. Любая страница, оканчивающаяся на XXX.php, будет срабатывать. Другое дело, что, к примеру, конкретные форумы нужно по-другому указывать немного.
== 'index' Не совсем корректно срабатывает, т. к. есть такой путь, например /adm/index.php, здесь условие тоже срабатывает, а не хотелось бы, есть вариант отсеить такие пути?
Аватара пользователя
Айдар
Former team member
Сообщения: 1687
Стаж: 13 лет 3 месяца
Откуда: KZN
Благодарил (а): 93 раза
Поблагодарили: 189 раз
Контактная информация:

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

Сообщение Айдар »

SandQuattro, нет.
In Web We Trust
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3335
Стаж: 15 лет
Благодарил (а): 35 раз
Поблагодарили: 1434 раза

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

Сообщение Nekstati »

Есть вариант с правкой 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
Сообщения: 1096
Стаж: 15 лет 2 месяца
Откуда: root/world/russia/
Благодарил (а): 126 раз
Поблагодарили: 206 раз
Контактная информация:

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

Сообщение Garret_Dark »

А есть ли в 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
Former team member
Сообщения: 12113
Стаж: 17 лет 1 месяц
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2752 раза
Контактная информация:

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

Сообщение Sheer »

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

<?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) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
MIT
Former team member
Сообщения: 2500
Стаж: 15 лет
Откуда: 56°20′02″ с. ш. 36°42′45″ в. д.
Благодарил (а): 4 раза
Поблагодарили: 352 раза
Контактная информация:

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

Сообщение MIT »

Согласно документации к шаблонизатору phpBB, которую, как и любую другую документацию, никто никогда не читает, phpBB спокойно понимает простейшие и не очень арифметические операции, в том числе и деление, а также объявление и изменение переменных...
http://www.phpbbguru.net/kb/styling/tem ... -tutorial/
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 1 месяц
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2752 раза
Контактная информация:

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

Сообщение Sheer »

Ну да
<!-- IF (row.S_ROW_COUNT % 10) eq 9 -->
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
Garret_Dark
phpBB 2.0.16
Сообщения: 1096
Стаж: 15 лет 2 месяца
Откуда: root/world/russia/
Благодарил (а): 126 раз
Поблагодарили: 206 раз
Контактная информация:

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

Сообщение Garret_Dark »

MIT писал(а):Согласно документации к шаблонизатору phpBB, которую, как и любую другую документацию, никто никогда не читает
Читает читает, прежде чем писать я прочитал вышеупомянутую статью "от корки до корки", в частности список "условий сравнений".
Знание PHP у меня чисто интуитивное, потому понять что значит % [mod] было просто нереально, о чем я и писал выше. Мне нужно было увидеть пример использования.
Sheer, спасибо, попробую.
В частности такой метод просится тут Разноцветные полосы опроса
Аватара пользователя
MIT
Former team member
Сообщения: 2500
Стаж: 15 лет
Откуда: 56°20′02″ с. ш. 36°42′45″ в. д.
Благодарил (а): 4 раза
Поблагодарили: 352 раза
Контактная информация:

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

Сообщение MIT »

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

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