PmWikiRu /
ПожалуйÑта ÑкÑпериментируйте в пеÑочнице!УÑÐ»Ð¾Ð²Ð½Ð°Ñ Ñ€Ð°Ð·Ð¼ÐµÑ‚ÐºÐ°

авторам, админиÑтраторам (продвинутый)

ИÑпользование директивы (:if:)

Директива (:if:) позволÑет включать или выключать обработку чаÑти Ñтраницы.

ÐžÐ±Ñ‰Ð°Ñ Ñ„Ð¾Ñ€Ð¼Ð° Ñтой директивы такаÑ:

 (:if уÑловие параметр:) текÑÑ‚ (:ifend:)

где "уÑловие" - Ñто проверÑемое уÑловие (опиÑано ниже), а "параметр" - Ñто параметр или аргумент уÑловиÑ. ЕÑли уÑловие "иÑтинно"(TRUE), то текÑÑ‚ будет включен, а еÑли "ложно"(FALSE) - иÑключен из обработки Ñтраницы.

Ð’Ñтроеные уÑÐ»Ð¾Ð²Ð¸Ñ Ð²ÐºÐ»ÑŽÑ‡Ð°ÑŽÑ‚:

 

(:if name ИМЯСТРÐÐИЦЫ:)  -  Ñ‚ÐµÐºÑƒÑ‰Ð°Ñ Ñтраница называетÑÑ "ИМЯСТРÐÐИЦЫ"
(:if group ИМЯГРУППЫ:)  -  Ñ‚ÐµÐºÑƒÑ‰Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð° называетÑÑ "ИМЯГРУППЫ"
(:if auth УРОВЕÐЬ:)  -  пользователь имеет авторизационный "УРОВЕÐЬ", где УРОВЕÐЬ может быть: read, edit, upload, attr или admin
(:if authid:)  -  пользователь авторизован
(:if true:)  -  вÑегда включает обработку текÑта
(:if false:)  -  вÑегда выключает текÑÑ‚ (тоже что и коментарий)
(:if attachments:)  -  у текущей Ñтраницы еÑÑ‚ÑŒ приÑоеденённые файлы
(:if date ДÐТÐ:)  -  наÑтоÑÑ‰Ð°Ñ Ð´Ð°Ñ‚Ð° Ñовпадает Ñ Ð”ÐТÐ
(:if date ДÐТÐ..:)  -  наÑтоÑÑ‰Ð°Ñ Ð´Ð°Ñ‚Ð° Ñовпадает Ñ Ð”ÐТРили позднее (неограничено)
(:if date ДÐТÐ1..ДÐТÐ2:)  -  нынешнÑÑ Ð´Ð°Ñ‚Ð° в диапазоне между ДÐТÐ1 и ДÐТÐ2 (включительно)

вÑе даты в формате гггг-мм-чч или ггггммчч

(:if enabled VAR:)  -  PHP Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ VAR иÑтинна (==true)
(:if equal СТРОКÐ1 СТРОКÐ2:)  -  СТРОКÐ1 Ñовпадает Ñ Ð¡Ð¢Ð ÐžÐšÐ2
(:if match РЕГВЫР:)  -  Ð¸Ð¼Ñ Ñ‚ÐµÐºÑƒÑ‰ÐµÐ¹ Ñтраницы подходит под регулÑрное выражение РЕГВЫР
(:if exists ИмÑСтраницы:)  -  Ñтраница ИмÑСтраницы ÑущеÑтвует

Также работают обратные формы уÑловий:

 

(:if !attachments:)  -  у Ñтраницы нет добавленых файлов
 
(:if ! name ИмÑСтраницы:) Ñ‚ÐµÐºÑƒÑ‰Ð°Ñ Ñтраница не называетÑÑ "ИмÑСтраницы"
(:if name -ИмÑСтраницы :)
(:if name !ИмÑСтраницы :)

Ð›ÑŽÐ±Ð°Ñ Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¸Ð²Ð° (:if:) автоматичеÑки прерывает предыдущую, так что можно легко Ñделать выбор варианта(без вложеноÑти):

 

(:if auth read:)* Вам дозволено читать
(:if auth edit:)* Вам дозволено редактировать
(:if auth upload:)* Вам дозволено закачивать файлы
(:ifend:)

ИÑпользование Ñимволов Ð¾Ð±Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ ('*' и '?')

Знак звезда (*) - Ñто обощение обозначающее любую поÑледовательноÑÑ‚ÑŒ Ñимволов, в том чиÑле и пуÑто, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð¼Ð¾Ð¶ÐµÑ‚ быть раÑположена на его меÑте.
Рзнак вопроÑа (?) - Ñто обобщение обозначаюÑ] и ?) иÑпользуютÑÑ Ð² уÑловной разметке:

 

(:if name PmCal.2005* :)  -  Ñ‚ÐµÐºÑƒÑ‰Ð°Ñ Ñтраница принадлежит группе PmCal и её Ð¸Ð¼Ñ Ð½Ð°Ñ‡Ð¸Ð½Ð°ÐµÑ‚ÑÑ Ñ 2005
(:if group PmWiki* :)  -  Ð¸Ð¼Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ñ‹ Ñтраницы начинаетÑÑ Ñ PmWiki
(:if name Profiles.*,-Profiles.Profiles :)  -  Ñтраница в группе Profiles, но не Profiles.Profiles

Смешаные уÑловиÑ

УÑÐ»Ð¾Ð²Ð¸Ñ (определённые ранее) можно комбинировать в более Ñложные выражениÑ. Ð”Ð»Ñ Ñтого иÑпользуетÑÑ Ð¾Ð´Ð½Ð° из трёх Ñквивалентных форм:

 

(:if expr ВЫРÐЖЕÐИЕ :)
(:if [ ВЫРÐЖЕÐИЕ ] :)
(:if ( ВЫРÐЖЕÐИЕ ) :)

УÑÐ»Ð¾Ð²Ð¸Ñ ÐºÐ¾Ð¼Ð±Ð¸Ð½Ð¸Ñ€ÑƒÑŽÑ‚ÑÑ Ð² Ð²Ñ‹Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ двоичных операторов и Ñкобок. Ð’ Ñледующей таблице, буквами Ри Б обозначаютÑÑ ÑƒÑÐ»Ð¾Ð²Ð¸Ñ Ð¸Ð»Ð¸ Ð¿Ð¾Ð´Ð²Ñ‹Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð²Ð·Ñтые в Ñкобки:

ВыражениеОператорРезультат "иÑтинно"
Ð and БAndЕÑли Ри Б иÑтинны
Ð or БOrЕÑли Рили Б иÑтинно
Ð xor БXorЕÑли Ри Б иÑтинны, или Ри Б ложны
! ANotЕÑли Рложно
Ð && БAndЕÑли Ри Б иÑтинны
Ð || БOrЕÑли Рили Б иÑтинно

Обратите внимание, что:

  • пробелы вокруг операторов и Ñкобок обÑзательны;
  • При ÑинтакÑичеÑких ошибках или непарных Ñкобках поведение уÑловий непредÑказуемо.

ОтÑюда запиÑÑŒ:

 

(:if expr auth admin || auth attr || auth edit :)
[[Logout -> {$Name}?action=logout]]
(:if:)

предлагает logout ÑÑылку только когда Ð°Ð²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ð¸Ñ Ñ Ð¿Ñ€Ð°Ð²Ð°Ð¼Ð¸ больше, чем 'read'(проÑмотр).

админиÑтраторам (продвинутый)

Добавление новых уÑловий

Смотри Cookbook:ConditionalMarkupSamples.

<< InterMap ÑÑылки | Ð”Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ | СпиÑки Ñтраниц >>

Перевод Ñтраницы PmWiki.ConditionalMarkup - Оригинал перевода PmWikiRu.ConditionalMarkup - Backlinks
PmWikiRu.ConditionalMarkup: Ñ€ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð¾Ñ‚ 21.03.2006 14:30 Uhr
PmWiki.ConditionalMarkup: Ñ€µÐ´Ð°ÐºÑ†Ð¸Ñ от 17.12.2022 10:49 Uhr

Seite zuletzt geändert am 21.03.2006 14:30 Uhr