Forums / National / Russian / Тех. поддержка / Запросы документации

<<<1...5...10...21222324252627>>>

Принимаем вопросы от населения

webitproff
#346 2023-04-04 09:54
#46357 Kabak:

Какой TPL должен высветиться ?

Добавлено 44 секунды спустя:

форма для поиска от плагина SEARCH ?

/plugins/search/tpl/search.tpl

аккаунт удален - не срослось с разработчиками
ушел на другой движок
Alex300
#347 2023-04-04 12:11

короче написал  я три слова в строке поиска и после он то нашел мне нужную тему, но выдал вот такое
    
Deprecated: Implicit conversion from float 71.75 to int loses precision in /plugins/search/inc/search.functions.php on line 64

Исправлено

Есть миры, не здесь, там, где небеса горят, и моря засыпают, и реки дремлют; люди сделаны из дыма, а города – из песен. Где-то опасность, где-то несправедливость, даже где-то остыл чай. Идем Эйс, у нас много работы!...
...Sorry for my english...
Бесплатные расширения для Cotonti: https://lily-software.com/free-scripts/
Kabak
#348 2023-04-04 16:46

1) движок сам генерит такие теги для плагинов ?

{PHP.cot_plugins_active.search}

2) нужно самому придумывать имена для таких кусков в TPL

    <!-- BEGIN: SUBSECTION -->

    <!-- END: SUBSECTION -->

есть ли какая-нибудь методика или всё на усмотрение автора плагина ?

webitproff
#349 2023-04-04 17:38
#46362 Kabak:

1) движок сам генерит такие теги для плагинов ?

{PHP.cot_plugins_active.search}

2) нужно самому придумывать имена для таких кусков в TPL

    <!-- BEGIN: SUBSECTION -->

    <!-- END: SUBSECTION -->

есть ли какая-нибудь методика или всё на усмотрение автора плагина ?

можно подробнее? я просто не очень понял вопрос и преследуемые цели

аккаунт удален - не срослось с разработчиками
ушел на другой движок
Kabak
#350 2023-04-04 17:41

в TPL полно таких тегов   они создаются по какой-то системе самим движком для нового плагина  или их придумывает автор плагина , модуля ?

webitproff
#351 2023-04-04 17:57
#46364 Kabak:

в TPL полно таких тегов   они создаются по какой-то системе самим движком для нового плагина  или их придумывает автор плагина , модуля ?

<!-- IF {PHP.cot_plugins_active.codeofplug} -->
ваш HTML
<!-- ENDIF -->

где codeofplug - код плагина, который условием подхватывается автоматически, если codeofplug - в этом условии точно соответствует коду

Code=codeofplug

в codeofplug.setup.php

<?php
/* ====================
[BEGIN_COT_EXT]
Code=codeofplug
Name=LandPage2Section
Category=administration-management
Description=Output in the block template, widgets, and other counters visits
Version=2.2.22
Date=26.03.2023
Author=
Copyright=Copyright (c) 2023 | https://github.com/webitproff
Notes=BSD License
SQL=
Auth_guests=R
Lock_guests=W12345A
Recommends_plugins=
[END_COT_EXT]

[BEGIN_COT_EXT_CONFIG]

landpage2section1=01:string:::

[END_COT_EXT_CONFIG]
==================== */

 

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

а для модулей немного по-другому проверка установленно(работает) ли расширение

 

			<!-- IF {PHP.cot_modules.pm} -->
			<li><a href="{PHP|cot_url('pm')}" title="{PHP.L.Private_messages}">{PHP.L.Private_Messages}</a></li>
			<!-- ENDIF -->
			<!-- IF {PHP.cot_modules.pfs} -->
			<li><a href="{PHP|cot_url('pfs')}" title="{PHP.L.PFS}">{PHP.L.PFS}</a></li>
			<!-- ENDIF -->

 

аккаунт удален - не срослось с разработчиками
ушел на другой движок

Dit bericht is bewerkt door webitproff (2023-04-04 18:13, 2 jaren ago)
Dayver
#352 2023-04-05 01:59

Стоит отметить так же что

[BEGIN_COT_EXT]
Code=codeofplug
...
[END_COT_EXT]

в .setup.php является не обязательной строчкой и её можно опускать и код плагина будет вычислятся на базе имени папки этого самого плагина.


Что же касается:

#46362 Kabak:

1) движок сам генерит такие теги для плагинов ?

{PHP.cot_plugins_active.search}

Ну по сути это не те класические локальные теги которые подготавливаются в php и потом доступны в tpl а глобальные теги (сам я их называю ссылками на переменные). Попытаюсь подтолкнуть к полному раскрытию вопроса.

Допустим по классике еще с истоков движка всегда что б передать что то в шаблон то в php нужно было написать:

...
    $t->assign(array(
        'MY_DATA_PARAM' => $param_for_tpl
...

и потом в шаблоне tpl можно было применить так тег

<!-- BEGIN: MAIN -->
...
{MY_DATA_PARAM}
...
<!-- END: MAIN -->

А вообще читаем этот мануал про XTemplate. Но в процесе перерождения из Seditio в Cotonti и взрослении последнего шаблонизатор был переписан, и теперь это CoTemplate и два мануала по нему - один и два (я склоняюсь что этот приоритетнее). Из второго мануала видим что тегов теперь два вида - локальный (тот к которому привыкли еще с Седа) и глобальный (новое что уже появилось в переписанном шаблонизаторе).

Тоесть если упростить то любую php переменную можно как вывести в шаблон используя {PHP.paramName} так и обратится к ней в операторах IF и FOR с тем же синтаксисом. Обращение к PHP.cot_plugins_active.search это обращение к элементу массива. Опять же почитайте второй мануал. Реализован доступ из шаблона к php переменным сделан для упрощения для того что бы ради каждого чиха не приходилось делать вот эти телодвижения:

...
$t->assign(array(
'MY_DATA_PARAM' => $param_for_tpl
...

 

Что же касается конкретно cot_plugins_active то это глобальный массив который содержит список установленых плагинов (в будущем скорее всего эту роль будет выполнять только аналог - cot_plugins_enabled а cot_plugins_active будет ликвидирован). Эти массивы могут быть использованы для проверок установлености расширений в php коде. Для подобного использования в шаблонах они напрямую не очень подходят (могут вызывать предупреждения аля ошибки) и проверять установленость расширения стоит с помощью функций cot_plugin_active('plugCode') - для плагинов и cot_module_active('modCode') для модулей и уже с помощью них делать это безопасно в том числе и в шаблонах.

<!-- IF {PHP|cot_plugin_active('search')} -->
Разметка которая будет включена в вывод тоелько если плагин search установлен
<!-- ENDIF -->

Так же стоит упомянуть что в движке есть не явная особеность - перечисленные выше массивы и функции фиксируют "установленость" расширения, а не фактическое наличие самого расширения (что логично)  или его полноценной активности (что уже вызывает вопросы). Тоесть если в админке установить расширение то оно будет считатся установленным, а потом если через свойства расширения приостановить все его части (чем по факту он отключится полностью) но он не потеряет статус установленного в вышеупомянутых массивах и функциях. При необходимости определять такие тонкости в php коде можно использовать массив $cot_plugins.


#46362 Kabak:

2) нужно самому придумывать имена для таких кусков в TPL

    <!-- BEGIN: SUBSECTION -->

    <!-- END: SUBSECTION -->

есть ли какая-нибудь методика или всё на усмотрение автора плагина ?

Есть традиция но всё конечно же на усмотрение автора. 

Традиция именования такова что имена секций для системных шаблонов такие:

<!-- BEGIN: MAIN -->

    <!-- BEGIN: ROW -->
    Для циклов
    <!-- END: ROW -->

<!-- END: MAIN -->

Для плагинов и модулей иногда имя основной секции вместо MAIN используют имя расширения например 

<!-- BEGIN: MYPLUG -->

<!-- END: MYPLUG -->

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

Pavlo Tkachenko aka Dayver

Dit bericht is bewerkt door Dayver (2023-04-05 02:11, 2 jaren ago)
webitproff
#353 2023-04-05 04:11
#46368 Dayver:

Стоит отметить так же что

[BEGIN_COT_EXT]
Code=codeofplug
...
[END_COT_EXT]

в .setup.php является не обязательной строчкой и её можно опускать и код плагина будет вычислятся на базе имени папки этого самого плагина.


Что же касается:

#46362 Kabak:

1) движок сам генерит такие теги для плагинов ?

{PHP.cot_plugins_active.search}

Ну по сути это не те класические локальные теги которые подготавливаются в php и потом доступны в tpl а глобальные теги (сам я их называю ссылками на переменные). Попытаюсь подтолкнуть к полному раскрытию вопроса.

Допустим по классике еще с истоков движка всегда что б передать что то в шаблон то в php нужно было написать:

...
    $t->assign(array(
        'MY_DATA_PARAM' => $param_for_tpl
...

и потом в шаблоне tpl можно было применить так тег

<!-- BEGIN: MAIN -->
...
{MY_DATA_PARAM}
...
<!-- END: MAIN -->

А вообще читаем этот мануал про XTemplate. Но в процесе перерождения из Seditio в Cotonti и взрослении последнего шаблонизатор был переписан, и теперь это CoTemplate и два мануала по нему - один и два (я склоняюсь что этот приоритетнее). Из второго мануала видим что тегов теперь два вида - локальный (тот к которому привыкли еще с Седа)

Спасибо. по-больше бы таких шпаргалок! 

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

аккаунт удален - не срослось с разработчиками
ушел на другой движок
Kabak
#354 2023-04-05 06:54

Хочу узнать как заменить внешний вид элементов форм ?  Например, чекбокс на форме логина

webitproff
#355 2023-04-05 07:53
#46371 Kabak:

Хочу узнать как заменить внешний вид элементов форм ?  Например, чекбокс на форме логина

стилями ))

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

можно тут порыться

 

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

а потом в вафле myskin.php  переопредилть ресурсную строку типа на подобие

$R['input_check'] = '
<div class="form-check">
  <input class="form-check-input" type="checkbox" name="{$name}" value="{$value}"{$checked}{$attrs}>
  <label class="custom-control-label">{$title}</label>
</div>';

это для бута

аккаунт удален - не срослось с разработчиками
ушел на другой движок
Kabak
#356 2023-04-05 17:51

В Cotonti по умолчанию на форме регистрации имя чекбокса  $R['input_check']    ?

 

webitproff
#357 2023-04-05 18:07
#46384 Kabak:

В Cotonti по умолчанию на форме регистрации имя чекбокса  $R['input_check']    ?

 

тут

 

$R['form_guest_remember'] = '<input type="checkbox" name="rremember" />';
$R['form_guest_remember_forced'] = '<input type="checkbox" name="rremember" checked="checked" disabled="disabled" />';

и тут

	'USERS_AUTH_REMEMBER' => cot::$cfg['forcerememberme'] ? cot::$R['form_guest_remember_forced'] : cot::$R['form_guest_remember']

 

аккаунт удален - не срослось с разработчиками
ушел на другой движок
Kabak
#358 2023-04-08 06:38

Что-то не получатеся у меня переопределить чекбокс этот  без изменения кода движка.  есть конкретный пример как это сделать в CSS и TPL не ковыряя php движка ?

webitproff
#359 2023-04-08 06:51

киньте сюда код шаблона или файл в личную мою телегу

аккаунт удален - не срослось с разработчиками
ушел на другой движок
Kabak
#360 2023-04-08 08:09

вот этому тэгу нужно изменить внешний вид {USERS_AUTH_REMEMBER}   это чекбокс определённый в движке как $R['form_guest_remember'] = '<input type="checkbox" name="rremember" />';

можете здесь написать пример ? 

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

<div class="check_box_style">{USERS_AUTH_REMEMBER} 
<div class="checkmark"></div>
</div>

css

.check_box_style input {
 position: absolute; 
cursor: pointer;
 height: 0;
 width: 0;
 display: block;
 position: relative;
 cursor: pointer;
 font-size: 20px;
 user-select: none;
}

/* Create a custom checkbox */
.checkmark {
 position: relative;
 top: 0;
 left: 0;
 height: 1.3em;
 width: 1.3em;
 background: #606062;
 border-radius: 5px;
 box-shadow: 0px 0px 1px rgba(0, 0, 0, 0.30), 0px 1px 1px rgba(0,5);
}

/* When the checkbox is checked, add a blue background */
.check_box_style input:checked ~ .checkmark {
 background-image: linear-gradient(#b9e9b3,#a8e4a0)
}

/* Create the checkmark/indicator (hidden when not checked) */
.checkmark:after {
 content: "";
 position: absolute;
 display: none;
}

/* Show the checkmark when checked */
.check_box_style input:checked ~ .checkmark:after {
 display: block;
}

/* Style the checkmark/indicator */
.check_box_style .checkmark:after {
 left: 0.45em;
 top: 0.25em;
 width: 0.25em;
 height: 0.5em;
 border: solid white;
 border-width: 0 0.15em 0.15em 0;
 transform: rotate(45deg);
}

 

TPL

<div class="loging_checkbox">
{USERS_AUTH_REMEMBER} 
<div class="checkmark"></div>
</div>

понимаю что из-за  class="checkmark" видны оба 

где я туплю ?


Dit bericht is bewerkt door Kabak (2023-04-08 08:23, 2 jaren ago)

<<<1...5...10...21222324252627>>>