Форумы / National / Russian / Тех. поддержка / Определение локации сайта в TPL

123>>>

Kabak
#1 23.11.2023 10:10

 Как проверить в TPL, просматривает ли пользователь любую страницу ?

 

Добавлено 3 часа спустя:

иными словами, находится ли пользователь в локации 

/index.php?e=page&c=news&id=1

где id=  любому номеру страницы

Добавлено 1 день спустя:

есть ли аналоги тегов

{PAGE_ADMIN_EDIT} , {PAGE_ADMIN_UNVALIDATE} , {PAGE_ADMIN_CLONE} , {PAGE_ADMIN_DELETE}

для header ?

Отредактировано: Kabak (24.11.2023 23:35, 5 месяцев назад)
Argont
#2 25.11.2023 08:38
#47439 Kabak:

 Как проверить в TPL, просматривает ли пользователь любую страницу ?

 

Добавлено 3 часа спустя:

иными словами, находится ли пользователь в локации 

/index.php?e=page&c=news&id=1

где id=  любому номеру страницы

Добавлено 1 день спустя:

есть ли аналоги тегов

{PAGE_ADMIN_EDIT} , {PAGE_ADMIN_UNVALIDATE} , {PAGE_ADMIN_CLONE} , {PAGE_ADMIN_DELETE}

для header ?

таких аналогов для хедера нет и работать они там не будут однозначно/

потому что в хедере, в ссылке, для страницы "id=$this" находится (я своими словами) вне области видимости модуля page

иногда поржать над задравшим подбородок разработчиком
Отредактировано: Argont (25.11.2023 08:43, 5 месяцев назад)
Kort
#3 25.11.2023 08:40

Конечно, таких тегов нет. Но собрать ссылки несложно:

<!-- IF {PHP.id} -->
  <a href="{PHP|cot_url('page', 'm=edit&id={PHP.id}')}">{PHP.L.Edit}</a>
  <a href="{PHP|cot_url('page', 'm=page&a=unvalidate&id={PHP.id}&x={PHP.sys.xk}')}">Unvalidate</a>
  <a href="{PHP|cot_url('page', 'm=add&c={PHP.c}&clone={PHP.id}')}">Clone</a>
  <a href="{PHP|cot_url('page', 'm=edit&a=update&delete=1&id={PHP.id}&x={PHP.sys.xk}')}">{PHP.L.Delete}</a>
<!-- ENDIF -->

Если делать это только для себя (суперадмина), сойдет и так. А если вообще, то надо делать проверки. Например, правку страницы может делать только ее владелец, а клонирование -- пользователь с правом записи в данный раздел. Validate/unvalidate и delete должны быть доступны только при наличии прав администрирования.

Работать будут однозначно.

SED.by - создание сайтов, разработка плагинов и тем для Котонти
Argont
#4 25.11.2023 08:44
#47460 Kort:

Работать будут однозначно.

я говорил за теги, в которые помещается ссылка

иногда поржать над задравшим подбородок разработчиком
Kort
#5 25.11.2023 09:00

И $id / $pag['page_id'] и $pag['page_alias'] в хедере доступны.

SED.by - создание сайтов, разработка плагинов и тем для Котонти
Argont
#6 25.11.2023 10:10
#47463 Kort:

И $id / $pag['page_id'] и $pag['page_alias'] в хедере доступны.

а чего же он гад {PHP.id} через {PHP|dump} не "светится" ? )))laugh

иногда поржать над задравшим подбородок разработчиком
Kabak
#7 25.11.2023 15:12

Я хочу перенести меню админа в динамическое меню в хедере  чтобы оно всегда болталось вверху сайта. и чтобы в нужной локации в этом меню появлялись опции доступные админу или пользователю - владельцу страницы.

Добавлено 9 минут спустя:

 

<a href="{PHP|cot_url('page', 'm=page&a=unvalidate&id={PHP.id}&x={PHP.sys.xk}')}">Unvalidate</a>

unvalidate в таком виде не работает

при unvalidate идёт вопрос подтверждения в запросе {PAGE_ADMIN_UNVALIDATE}

Отредактировано: Kabak (25.11.2023 15:27, 5 месяцев назад)
Kort
#8 25.11.2023 16:04
#47465 Kabak:

Я хочу перенести меню админа в динамическое меню в хедере  чтобы оно всегда болталось вверху сайта. и чтобы в нужной локации в этом меню появлялись опции доступные админу или пользователю - владельцу страницы.

Если и делать такое, то точно не на шаблонизаторе. Да и польза сомнительная: как же посты, комменты и другой контент?

<a href="{PHP|cot_url('page', 'm=page&a=unvalidate&id={PHP.id}&x={PHP.sys.xk}')}">Unvalidate</a>

unvalidate в таком виде не работает

при unvalidate идёт вопрос подтверждения в запросе {PAGE_ADMIN_UNVALIDATE}

Не работает для страницы с каким статусом? Это должна быть ссылка-тумблер, и кроме прав надо проверять статус страницы.

SED.by - создание сайтов, разработка плагинов и тем для Котонти
Kabak
#9 25.11.2023 17:22

Если и делать такое, то точно не на шаблонизаторе. Да и польза сомнительная: как же посты, комменты и другой контент?

А как лучше делать и что не так с постами и комментами ?

про статус не понял.  Обычная новость созданная админом - мной.   Ну в TPL для новостей  локация page.tpl  есть тег {PAGE_ADMIN_UNVALIDATE}   он работает.

Kort
#10 25.11.2023 18:43

Зачем пытаться объять необъятное и все пихать в хедер? Стандартные блоки под контентом разделов и страниц прекрасно работают. Чтобы их унифицировать можно перенести их в отдельные шаблоны и подключать как:

<!-- IF {PHP.usr.isadmin} -->
{FILE "{PHP.cfg.themes_dir}/{PHP.theme}/inc/admin-page.tpl"}
<!-- ENDIF -->

и

<!-- IF {PHP.usr.isadmin} -->
{FILE "{PHP.cfg.themes_dir}/{PHP.theme}/inc/admin-list.tpl"}
<!-- ENDIF -->

А сэкономленное время лучше потратить на более полезные вещи.

SED.by - создание сайтов, разработка плагинов и тем для Котонти
Kabak
#11 25.11.2023 19:00

А если пользователь - не админ, но создал страницу и должен иметь права её изменять ?

 

#47468 Kort:

Зачем пытаться объять необъятное и все пихать в хедер? Стандартные блоки под контентом разделов и страниц прекрасно работают. Чтобы их унифицировать можно перенести их в отдельные шаблоны и подключать как:

<!-- IF {PHP.usr.isadmin} -->
{FILE "{PHP.cfg.themes_dir}/{PHP.theme}/inc/admin-page.tpl"}
<!-- ENDIF -->

и

<!-- IF {PHP.usr.isadmin} -->
{FILE "{PHP.cfg.themes_dir}/{PHP.theme}/inc/admin-list.tpl"}
<!-- ENDIF -->

А сэкономленное время лучше потратить на более полезные вещи.

Что этот вынос блоков в отдельный файл изменит ?  Пожалуйста, прошу популярно объяснить.

Отредактировано: Kabak (25.11.2023 19:05, 5 месяцев назад)
Kort
#12 25.11.2023 19:10

Права пользователя надо определять, исходя из того, как надо, а не кто чего создал. По умолчанию TPL-теги правки страницы формируются исходя из того, что автор имеет право на правку. Но как оно тебе надо -- уже другой вопрос.

По второму пункту: если у тебя 10 шаблонов страниц и 15 шаблонов разделов, то блоки управления разумнее вынести в отдельные шаблоны и подключать их конструкциями, которые я указал. Так, по крайней мере, проще будет их изменять.

SED.by - создание сайтов, разработка плагинов и тем для Котонти
Kabak
#13 26.11.2023 06:25

Ещё вопрос,

идея возможности выноса вот этого блока

до кучи к админ-возможностям движка в header или footer  чтобы всё это было в одном месте и можно было играться с темами для сайтов на Cotonti более просторно ?

Собственно проблема с выносом касается только с "В очередь на утверждение"   нужно писать плагин, чтобы это корректно работало их Header

Kort
#14 26.11.2023 08:28

А что мешает играться сейчас?

SED.by - создание сайтов, разработка плагинов и тем для Котонти
Отредактировано: Kort (26.11.2023 08:41, 5 месяцев назад)
Argont
#15 26.11.2023 08:28
#47473 Kabak:

Ещё вопрос,

Собственно проблема с выносом касается только с "В очередь на утверждение"   нужно писать плагин, чтобы это корректно работало их Header

<a class="confirmLink" href="{PHP|cot_url('page', 'm=page&a=unvalidate&id={PHP.id}&x={PHP.sys.xk}')}">Unvalidate</a>

 

иногда поржать над задравшим подбородок разработчиком

123>>>