Forums / National / Russian / Tips & Tricks

Только ответы и решения, никаких вопросов.

Sergeich
#1 2024-03-22 11:48

Собираем здесь типовые решения простых задач. Один ответ, одно решение.

 

Пример:

............................................................................................................

Как настроить отображение даты и времени в шаблоне?

 

Для решения этой проблемы в Cotonti есть функция «обёртка» cot_date(). Пример:

{PAGE_ROW_DATE_STAMP|cot_date('date_full', $this)}

Подробнее читайте в статье документации.

 

This post was edited by Sergeich (2024-03-22 12:53, 1 month ago)
Kabak
#2 2024-03-22 14:42

Как проверить авторство топика на форуме ?

( Например, для того, чтобы вывести рядом с автором темы какое-то обозначение, указывающее, что - это автор темы. )

 

используем такую конструкцию :

	<!-- IF {PHP.rowt.ft_firstpostername}  ==  {PHP.row.user_name} -->
            <div class="topic_starter"><img src="{PHP.cfg.themes_dir}/{PHP.theme}/img/author.png"></div>
	<!-- ENDIF -->
.topic_starter
{
  margin-left: 90px;
}

.topic_starter img
{
  width: 35px;
  height: 35px;
  -webkit-filter: drop-shadow(3px 3px 3px #0000007f);
}

Как выглядит можно посмотреть на нашем форуме рядом с аватаркой автора темы.

 

Как проверить наличие плагина toplastseen в системе ?

( Аналогично по имени проверяется наличие и активность любого плагина. )

<!-- IF {PHP.cot_plugins_active.toplastseen} -->
  <li><a href="{PHP|cot_url('plug','e=toplastseen')}">{PHP.L.Top_Last_Seen}</a></li>
<!-- ENDIF -->

 

Как проверить наличие модуля PM в системе ?

( Аналогично по имени проверяется наличие и активность любого модуля. )

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

 

Как проверить есть ли личные сообщения у пользователя ?

<!-- IF {PHP.usr.messages} -->

 

Как проверить  является ли админом пользователь ?

<!-- IF {PHP.usr.isadmin} -->

 

Как проверить является ли пользователь гостем ?

<!-- BEGIN: GUEST -->

 

Как проверить уровень пользователя ?

<!-- IF {PHP.usr.maingrp} > 1 -->

 

Как проверить как давно опубликован пост на форуме ?

<!-- IF {PHP|time()} - {PAGE_ROW_UPDATED_STAMP} > 1000000 -->

<!-- или вариант с отображением прошедшего времени с момента публикации -->

{PHP|cot_build_timegap({FORUMS_POSTS_ROW_CREATION_STAMP})}

 

Как проверить как давно опубликован комментарий ?

<!-- IF {PHP|time()} - {PAGE_ROW_DATE_STAMP} > 259200 -->  
<div class="card_body">
<!-- ELSE -->
<div class="card_body1">
<!-- ENDIF -->

 

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

<a href="{PAGE_ROW_URL}">{PAGE_ROW_TITLE|htmlspecialchars_decode($this)}</a>

 

Проверка статей и запрос перед удалением для администратора

<!-- IF {PHP._GET.id} -->
    <li><a href="{PHP._GET.id|cot_url('page','m=edit&id=$this')}">Редактировать</a></li>
    <li><a href="{PHP._GET.id|cot_url('page','m=add&clone=1&id=$this')}">Клонировать</a></li>
    <li><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">{PHP.L.Putinvalidationqueue}</a></li>
    <li><a href="{PHP|cot_url('page', 'm=edit&a=update&delete=1&id={PHP.id}&x={PHP.sys.xk}')}">{PHP.L.Delete}</a></li>
    <li><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></li>
<!-- ENDIF -->

// или 

<!-- 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 -->

 

Как проверить сколько времени прошло с момента публикации поста на форуме или статьи( плагин forman & pagelist ) ?

<!-- IF {PHP|time()} - {PAGE_ROW_UPDATED_STAMP} > 259200 -->

 

Kopusha
#3 2024-03-22 21:23

To find where you are try

Extention?

{PHP.env.ext} or {PHP.e}

Module?

{PHP.m}

Zone?

{PHP.z}

Added 17 seconds later:

Or use {PHP|dump}

$env['ext']; // содержит название текущего расширения $env['location']; // условное название раздела сайта

// примеры... // для админки $env['location'] = 'administration'; $env['ext'] = 'admin';

// для плагинов $env['location'] = 'plugins';

//для любых расширений $env['ext'] = 'имя_расширения';

//страница логина $env['location'] = 'users'; $env['ext'] = 'users';

// для главной страницы $env['location'] = 'home'; $env['ext'] = 'index';

Added 2 minutes later:

Sometimes we need redirect user entered a page immediately

{PRD_ID|cot_url('folio', 'id=$this','', 1)|cot_redirect()}

Added 1 minute later:

Link to users profile page

By user ID

{COMMENTS_POSTER_ID|cot_url('users', 'm=details&id=$this')}
{PRJ_OWNER_ID|cot_url('users', 'm=details&id=$this')}

By user name (bad habit)

{COMMENTS_POSTER_NAME|cot_url('users', 'm=details&u='$this)}
{PRJ_OWNER_NAME|cot_url('users', 'm=details&u='$this)}

Added 49 seconds later:

Modify any tag in TPL on the fly

{ANY_TAG|cot_rc_modify($this, 'class="" style="" placeholder=""')}

Added 26 seconds later:

If can admin some area

For example all pages

<!-- IF {PHP|cot_auth('page', 'any', 'A')} -->

Only that category in pages or folio

<!-- IF {PHP.c|cot_auth('page', '$this', 'A')} -->
{PHP.c|cot_auth('folio', $this, 'A')}

If can write in that category

<!-- IF {PHP.c|cot_auth('page', '$this', 'W')} -→

Added 45 seconds later:

If user is owner

If user is in his own profile details

<!-- IF {PHP.usr.id} == {USERS_DETAILS_ID} -->

If this comment is yours

<!-- IF {PHP.usr.id} == {COMMENTS_ROW_AUTHOR_ID} -->

Added 2 minutes later:

If plugin config TPL + PHP

<!-- IF {PHP.cfg.plugin.placemarks.enable_radius} -→

if ($cfg['plugin']['placemarks']['enable_radius'])

Существует ли функция?

if (function_exists("uk_com")) { uk_com("notify", "com"); }

Sergeich
#4 2024-03-24 16:41

Как правильно оформлять пути при создании новых категорий любой вложенности?

Используйте пути следующего вида:

001 - категория первого уровня,

001.001 - подкатегория второго уровня.

Далее по аналогии.

 

This post was edited by Sergeich (2024-03-24 17:15, 1 month ago)