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

<<<123>>>

Kabak
#16 26.11.2023 09:07
#47474 Kort:

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

Всё работает кроме  {PAGE_ADMIN_UNVALIDATE}

этот вариант

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

не работает

Argont
#17 26.11.2023 09:26
#47476 Kabak:

не работает

сам проверял - работает как нужно, с диалогом "да" / "нет" если в ссылку добавить класс

class="confirmLink

 

иногда поржать над задравшим подбородок разработчиком
Kort
#18 26.11.2023 09:30
<a href="{PHP|cot_url('admin', 'm=page&a=unvalidate&id={PHP.id}&x={PHP.sys.xk}')}">Unvalidate</a>

А если по-джедайски, то

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

И еще раз повторю: перед формированием ссылки надо проверить состояние поля page_state. Если там 0, значит страница опубликована, и надо генерить ссылку unvalidate. Иначе генерим ссылку validate.

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

#2:

<a href="{PHP|cot_url('admin', 'm=page&a=validate&id={PHP.id}&x={PHP.sys.xk}')|cot_confirm_url($this, 'page', 'page_confirm_validate')}" class="confirmLink">Validate</a>

Чтобы работало подтверждение, убедись что включен $cfg['confirmlinks']

SED.by - создание сайтов, разработка плагинов и тем для Котонти
Отредактировано: Kort (26.11.2023 09:46, 5 месяцев назад)
Kabak
#19 26.11.2023 11:52

Чтобы работало подтверждение, убедись что включен $cfg['confirmlinks']

Где это включается ?

Kort
#20 26.11.2023 12:15

Админка - Конфигурация - Настройки сайта

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

у меня включено, но не работает.

 

 

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

Вот так вот заработало

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

А как для удаления сделать подтвержнение ?

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

Где можно со всеми этими примудростами ознакомиться ?

{PHP.sys.xk} 

{PHP.id}

 

и как class="confirmLink" влияет на работу этого запроса ?

 

Отредактировано: Kabak (26.11.2023 12:33, 5 месяцев назад)
Kort
#22 26.11.2023 12:35
<a href="{PHP|cot_url('page', 'm=edit&a=update&delete=1&id={PHP.id}&x={PHP.sys.xk}')|cot_confirm_url($this, 'page', 'page_confirm_delete')}" class="confirmLink">{PHP.L.Delete}</a>
SED.by - создание сайтов, разработка плагинов и тем для Котонти
Kabak
#23 26.11.2023 15:51
<li><a href="index.php?e=page&amp;m=add&amp;c=news" rel="nofollow">{PHP.L.Submitnew}</a></li>

Как здесь подставить название раздела в котором нахожусь в данный момент, а не NEWS ?

 

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

Отредактировано: Kabak (26.11.2023 15:57, 5 месяцев назад)
Kort
#24 26.11.2023 20:41
#47487 Kabak:
<li><a href="index.php?e=page&amp;m=add&amp;c=news" rel="nofollow">{PHP.L.Submitnew}</a></li>

Как здесь подставить название раздела в котором нахожусь в данный момент, а не NEWS ?

Так:

<a href="{PHP.c|cot_url('page', 'm=add&c=$this')}">{PHP.L.Submitnew}</a>

 

SED.by - создание сайтов, разработка плагинов и тем для Котонти
Kabak
#25 27.11.2023 07:03
По итогу стандартный блок для работы администратора со страницами выглядит так. Его можно использовать в header и он автоматически отображает доступные опции в зависимости от вашего местоположения на сайте.
<ul>
	<li><a href="{PHP.c|cot_url('page', 'm=add&c=$this')}" rel="nofollow">{PHP.L.Submitnew}</a></li>
	<!-- IF {PHP._GET.id} -->
	<li><a href="{PHP._GET.id|cot_url('page','m=edit&id=$this')}">{PHP.L.Edit}</a></li>
	<li><a href="{PHP._GET.id|cot_url('page','m=add&clone=1&id=$this')}">{PHP.L.page_clone}</a></li>
	<li><a href="{PHP._GET.id|cot_url('admin', 'm=page&a=unvalidate&id=$this&x={PHP.sys.xk}')|cot_confirm_url($this, 'page', 'page_confirm_unvalidate')}" class="confirmLink">{PHP.L.Putinvalidationqueue}</a></li>
	<li><a href="{PHP._GET.id|cot_url('page', 'm=edit&a=update&delete=1&id=$this&x={PHP.sys.xk}')|cot_confirm_url($this, 'page', 'page_confirm_delete')}" class="confirmLink">{PHP.L.Delete}</a></li>
	<!-- ENDIF -->
</ul>

 

Kort
#26 27.11.2023 09:07

Перенесли стандартный блок управления страницей в хедер, но не более того.

  1. А что насчет форумов, комментариев, других модулей и standalone-плагинов? Биржевые модули? Если реализация останется через шаблонизатор, то в шапке будет постоянно выполняться сразу несколько вложенных условий. Иначе получим неработающие ссылки в не-модуль-Page-локациях. Например, на главной странице ни одна из твоих ссылок вообще не будет актуальной.
  2. Твердил я про статусы страницы, но так и осталась жесткая ссылка на снятие с публикации. Напомню, что в стандартном блоке это тумблер, который принимает значение unvalidate для опубликованной страницы и validate для неопубликованной.
  3. При использовании page_alias
    {PHP._GET.id}

    не будет определен. Соответственно, [un]validate, edit и delete работать не будут. А

    {PHP.id}

    -- как было в моем варианте, вернет-таки id страницы.

SED.by - создание сайтов, разработка плагинов и тем для Котонти
Kabak
#27 27.11.2023 09:26

Я не всё знаю, но всё пока что работает. 

А что насчет форумов, комментариев, других модулей и standalone-плагинов? Биржевые модули? Если реализация останется через шаблонизатор, то в шапке будет постоянно выполняться сразу несколько вложенных условий. Иначе получим неработающие ссылки в не-модуль-Page-локациях. Например, на главной странице ни одна из твоих ссылок вообще не будет актуальной.

Добавляются в меню и работают. 

		<div>
			<ul class="">
				<li class="admin_pagop"><a href="{PHP.c|cot_url('page', 'm=add&c=$this')}" rel="nofollow">{PHP.L.Submitnew}</a></li>
			<!-- IF {PHP._GET.id} -->
			<li class="admin_pagop"><a href="{PHP._GET.id|cot_url('page','m=edit&id=$this')}">{PHP.L.Edit}</a></li>
			<li class="admin_pagop"><a href="{PHP._GET.id|cot_url('page','m=add&clone=1&id=$this')}">{PHP.L.page_clone}</a></li>
			<li class="admin_pagop"><a href="{PHP._GET.id|cot_url('admin', 'm=page&a=unvalidate&id=$this&x={PHP.sys.xk}')|cot_confirm_url($this, 'page', 'page_confirm_unvalidate')}" class="confirmLink">{PHP.L.Putinvalidationqueue}</a></li>
			<li class="admin_pagop"><a href="{PHP._GET.id|cot_url('page', 'm=edit&a=update&delete=1&id=$this&x={PHP.sys.xk}')|cot_confirm_url($this, 'page', 'page_confirm_delete')}" class="confirmLink">{PHP.L.Delete}</a></li>
			<!-- ENDIF -->
			</ul>
			<br>
			<ul class="">				
			<!-- IF {PHP.usr.isadmin} -->
				<li class="admin_op"><a href="{PHP|cot_url('admin')}">{PHP.L.Adminpanel}</a></li>
				<li class="admin_op"><a href="{PHP|cot_url('admin','m=polls')}">{PHP.L.Polls}</a></li>
				<!-- IF {PHP.cot_plugins_active.toplastseen} -->
				<li class="admin_op"><a href="{PHP|cot_url('plug','e=toplastseen')}">{PHP.L.Top_Last_Seen}</a></li>
				<!-- ENDIF -->
			<!-- ENDIF -->
				<li class="admin_op"><a href="{PHP|cot_url('users','s=regdate&w=desc&f=all')}">{PHP.L.Users}</a></li>
				<li class="admin_op"><a href="{PHP|cot_url('users','m=profile')}">{PHP.L.Profile}</a></li>

			<!-- IF {PHP.cot_modules.pm} -->
			<!-- IF {PHP.usr.messages} -->
				<li class="admin_op"><a class="glowing" href="{PHP|cot_url('pm')}" title="{PHP.L.Private_messages}">{PHP.L.Private_Messages}</a></li>
			<!-- ELSE -->
				<li class="admin_op"><a class="" href="{PHP|cot_url('pm')}" title="{PHP.L.Private_messages}">{PHP.L.Private_Messages}</a></li>
			<!-- ENDIF -->
			<!-- ENDIF -->

			<!-- IF {PHP.cot_modules.pfs} -->
				<li class="admin_op"><a href="{PHP|cot_url('pfs')}" title="{PHP.L.PFS}">{PHP.L.PFS}</a></li>
			<!-- ENDIF -->
				<li class="admin_op"><a href="{PHP|cot_url('plug','e=whosonline')}">{PHP.themelang.index.Online}</a></li>
				<br>
				<li class="admin_op">{PHP.out.loginout}</li>
			</ul>
		</div>

 

 

Напомню, что в стандартном блоке это тумблер, который принимает значение unvalidate для опубликованной страницы и validate для неопубликованной.

Страницы требующие валидации не видны на сайте.  Они видны в админке у меня для подтверждения и публикации.  Я может что-то не вижу на базовом сайте.

 

page_alias - это что ?

 

Создание новых ответов на форуме или комментариев не переносил в админку, потому что всё равно на форме кнопки опубликовать.  Идея была убрать блок админа с главной  страницы и страниц.

Отредактировано: Kabak (27.11.2023 10:38, 5 месяцев назад)
Argont
#28 27.11.2023 10:37
#47494 Kabak:

page_alias - это что ?

  `page_alias`  varchar(255) NOT NULL DEFAULT '',
https://www.cotonti.com/ru/docs/admin/sef_urls

sef_urls это и есть алиас страницы

иногда поржать над задравшим подбородок разработчиком
Kabak
#29 27.11.2023 10:39

Благодарю, за ответ, но не понятно.
 

page_alias - это что ?

Argont
#30 27.11.2023 10:44
#47496 Kabak:

Благодарю, за ответ, но не понятно.
 

page_alias - это что ?

а так?

{PAGEEDIT_FORM_ALIAS}

посмотрите сюда, а потом в свою таблицу модуля page

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

алиас - это код самой страницы, который мы видим в конце полного URL статьи/страницы в строке браузера

выше ведь пример скинул с ссылкой

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

<<<123>>>