<<<1...5...10...21222324252627>>>
Принимаем вопросы от населения
| webitproff |
|
|---|---|
#46357 Kabak: /plugins/search/tpl/search.tpl аккаунт удален - не срослось с разработчиками
ушел на другой движок |
| Alex300 |
|
|---|---|
Есть миры, не здесь, там, где небеса горят, и моря засыпают, и реки дремлют; люди сделаны из дыма, а города – из песен. Где-то опасность, где-то несправедливость, даже где-то остыл чай. Идем Эйс, у нас много работы!...
...Sorry for my english... Бесплатные расширения для Cotonti: https://lily-software.com/free-scripts/ |
| Kabak |
|
|---|---|
|
1) движок сам генерит такие теги для плагинов ?
{PHP.cot_plugins_active.search}
2) нужно самому придумывать имена для таких кусков в TPL <!-- BEGIN: SUBSECTION --> <!-- END: SUBSECTION --> есть ли какая-нибудь методика или всё на усмотрение автора плагина ? |
| webitproff |
|
|---|---|
#46362 Kabak: можно подробнее? я просто не очень понял вопрос и преследуемые цели аккаунт удален - не срослось с разработчиками
ушел на другой движок |
| Kabak |
|
|---|---|
|
в TPL полно таких тегов они создаются по какой-то системе самим движком для нового плагина или их придумывает автор плагина , модуля ? |
| webitproff |
|
|---|---|
#46364 Kabak:
<!-- IF {PHP.cot_plugins_active.codeofplug} -->
ваш HTML
<!-- ENDIF -->
где codeofplug - код плагина, который условием подхватывается автоматически, если 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 -->
аккаунт удален - не срослось с разработчиками
ушел на другой движок
Отредактировано: webitproff (04.04.2023 18:13, 2 года назад)
|
| Dayver |
|
|---|---|
|
Стоит отметить так же что [BEGIN_COT_EXT] Code=codeofplug ... [END_COT_EXT] в .setup.php является не обязательной строчкой и её можно опускать и код плагина будет вычислятся на базе имени папки этого самого плагина. Что же касается: #46362 Kabak: Ну по сути это не те класические локальные теги которые подготавливаются в 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: Есть традиция но всё конечно же на усмотрение автора. Традиция именования такова что имена секций для системных шаблонов такие: <!-- BEGIN: MAIN --> <!-- BEGIN: ROW --> Для циклов <!-- END: ROW --> <!-- END: MAIN --> Для плагинов и модулей иногда имя основной секции вместо MAIN используют имя расширения например <!-- BEGIN: MYPLUG --> <!-- END: MYPLUG --> Но это всего лишь традиции и если отступать от неё то ничего не сломается и будет работать успешно. Просто стоить выбирать для такого именования логичные имена дабы ваш код или разметка были легко читаемыми для вас самих и другим разработчиками - это уже уже чисто правило хорошего тона внутри профессии. Pavlo Tkachenko aka Dayver
Отредактировано: Dayver (05.04.2023 02:11, 2 года назад)
|
| webitproff |
|
|---|---|
#46368 Dayver: Спасибо. по-больше бы таких шпаргалок! а насчет мануала выше по ссылкам в твоем посте, я несколько раз пытался вникнуть, - мне не к чему привязаться, нет нужной базы хоть на примерах... аккаунт удален - не срослось с разработчиками
ушел на другой движок |
| Kabak |
|
|---|---|
|
Хочу узнать как заменить внешний вид элементов форм ? Например, чекбокс на форме логина |
| webitproff |
|
|---|---|
#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 |
|
|---|---|
|
В Cotonti по умолчанию на форме регистрации имя чекбокса
|
| webitproff |
|
|---|---|
#46384 Kabak:
$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 |
|
|---|---|
|
Что-то не получатеся у меня переопределить чекбокс этот без изменения кода движка. есть конкретный пример как это сделать в CSS и TPL не ковыряя php движка ? |
| webitproff |
|
|---|---|
|
киньте сюда код шаблона или файл в личную мою телегу аккаунт удален - не срослось с разработчиками
ушел на другой движок |
| Kabak |
|
|---|---|
|
вот этому тэгу нужно изменить внешний вид {USERS_AUTH_REMEMBER} это чекбокс определённый в движке как можете здесь написать пример ? так вот почему-то видны и оригинальная версия чекбокса версия и новая
<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" видны оба
где я туплю ?
Отредактировано: Kabak (08.04.2023 08:23, 2 года назад)
|