<<<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 -->
аккаунт удален - не срослось с разработчиками
ушел на другой движок |
|
Dit bericht is bewerkt door webitproff (2023-04-04 18:13, 2 jaren ago) |
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
|
|
Dit bericht is bewerkt door Dayver (2023-04-05 02:11, 2 jaren ago) |
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" видны оба где я туплю ? |
|
Dit bericht is bewerkt door Kabak (2023-04-08 08:23, 2 jaren ago) |