cotonti.com : Скины: делаем грамотно https://www.cotonti.com Son konu mesajları Cotonti en Thu, 27 Nov 2025 12:09:07 -0000 Killer Не катит.

Добавлено 102 дня спустя:

С этой проблемой я разобрался давно, может кому-то пригодится. Так вот надо было.
<!-- IF {PHP.usr.id} == '2' or {PHP.usr.id} == '3' or {PHP.usr.id} == '4' or {PHP.usr.id} == '5' -->
<a href=https://www.cotonti.com/"plug.php?e=comedit&m=edit&pid=p{PHP.pag.page_id}&cid={COMMENTS_ROW_ID}">Править</a>
<!-- ENDIF -->
<!-- IF {PHP.usr.isadmin} -->
<a href=https://www.cotonti.com/"admin/tools/ipsearch?a=search&id={PHP.usr.ip}&x={PHP.sys.xk}">IP: {PHP.usr.ip}</a>
<a href=https://www.cotonti.com/"{PHP.pag.page_cat}/{PHP.pag.page_id}?ina=delete&ind={COMMENTS_ROW_ID}&x={PHP.sys.xk}">Удалить</a>
<a href=https://www.cotonti.com/"plug.php?e=comedit&m=edit&pid=p{PHP.pag.page_id}&cid={COMMENTS_ROW_ID}">Править</a>
<!-- ENDIF -->
А сегодня захотел ещё сделать, чтоб юзер видел ссылку только своих комментов, а не всех. Какое правило для этого нужно?

Добавлено 1 день спустя:

Никто не знает что ли? :)]]>
Cum, 20 Kas 2009 19:14:43 -0000
Ratibor # Killer : Первые ссылки видит только админ, вторые видят остальные, кроме гостей и админа.
Но вот с группами всё не выходит.
Я ж сказал замени все || на OR]]>
Cum, 20 Kas 2009 19:12:59 -0000
Killer Ковыряю скины другие, смотрю примеры. Не получается что-то никак.

Добавлено 10 Минут спустя:


Пля. Немного перемудрили. Вот так пашет.
<!-- IF {PHP.usr.isadmin} -->
<a href=https://www.cotonti.com/"admin/tools/ipsearch?a=search&id={PHP.usr.ip}&x={PHP.sys.xk}">IP: {PHP.usr.ip}</a>
<a href=https://www.cotonti.com/"{PHP.pag.page_cat}/{PHP.pag.page_id}?ina=delete&ind={COMMENTS_ROW_ID}&x={PHP.sys.xk}" >Удалить</a>
<a href=https://www.cotonti.com/"plug.php?e=comedit&m=edit&pid=p{PHP.id}&cid={COMMENTS_ROW_ID}">Править</a>
<!-- ENDIF -->
<!-- IF  {PHP.usr.user_maingrp} == "2" || {PHP.usr.user_maingrp} == "3" || {PHP.usr.user_maingrp} == "4" -->
<a href=https://www.cotonti.com/"plug.php?e=comedit&m=edit&pid=p{PHP.id}&cid={COMMENTS_ROW_ID}">Править</a>
<!-- ENDIF -->
Спасибо, Ratibor

Добавлено 26 Минут спустя:

Немного поторопился, не проверил как надо всё. Этот вариант тоже не катит. Но мне подошел этот вариант.
<!-- IF {PHP.usr.isadmin} -->
<a href=https://www.cotonti.com/"admin/tools/ipsearch?a=search&id={PHP.usr.ip}&x={PHP.sys.xk}">IP: {PHP.usr.ip}</a>
<a href=https://www.cotonti.com/"{PHP.pag.page_cat}/{PHP.pag.page_id}?ina=delete&ind={COMMENTS_ROW_ID}&x={PHP.sys.xk}" >Удалить</a>
<a href=https://www.cotonti.com/"plug.php?e=comedit&m=edit&pid=p{PHP.id}&cid={COMMENTS_ROW_ID}">Править</a>
<!-- ENDIF -->
<!-- IF  {PHP.usr.id} > 1 -->
<a href=https://www.cotonti.com/"plug.php?e=comedit&m=edit&pid=p{PHP.id}&cid={COMMENTS_ROW_ID}">Править</a>
<!-- ENDIF -->
Первые ссылки видит только админ, вторые видят остальные, кроме гостей и админа.
Но вот с группами всё не выходит.]]>
Cum, 20 Kas 2009 18:19:13 -0000
Ratibor Нет. Так ничего не изменяется. Первые ссылки видят только админы, а исключение видят все. Неправильно.
Попробуй замени все || на OR]]>
Cum, 20 Kas 2009 18:16:46 -0000
Killer

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

# Ratibor : Примерно так:

 <!-- IF {PHP.usr.isadmin} || {PHP.usr.user_maingrp} == "2" || {PHP.usr.user_maingrp} == "3" || {PHP.usr.user_maingrp} == "4" -->
 <a href=https://www.cotonti.com/"admin/tools/ipsearch?a=search&id={PHP.usr.ip}&x={PHP.sys.xk}">IP: {PHP.usr.ip}</a>
 <a href=https://www.cotonti.com/"{PHP.pag.page_cat}/{PHP.pag.page_id}?ina=delete&ind={COMMENTS_ROW_ID}&x={PHP.sys.xk}">Удалить</a>
 <!-- ELSE -->
 <a href=https://www.cotonti.com/"plug.php?e=comedit&m=edit&pid=p{PHP.id}&cid={COMMENTS_ROW_ID}">Править</a>
 <!-- ENDIF -->

Нет. Так ничего не изменяется. Первые ссылки видят только админы, а исключение видят все. Неправильно.]]>
Cum, 20 Kas 2009 16:43:26 -0000
Ratibor # Killer : ну например 2,3,4 группе.
Примерно так:

 <!-- IF {PHP.usr.isadmin} || {PHP.usr.user_maingrp} == "2" || {PHP.usr.user_maingrp} == "3" || {PHP.usr.user_maingrp} == "4" -->
 <a href=https://www.cotonti.com/"admin/tools/ipsearch?a=search&id={PHP.usr.ip}&x={PHP.sys.xk}">IP: {PHP.usr.ip}</a>
 <a href=https://www.cotonti.com/"{PHP.pag.page_cat}/{PHP.pag.page_id}?ina=delete&ind={COMMENTS_ROW_ID}&x={PHP.sys.xk}">Удалить</a>
 <!-- ELSE -->
 <a href=https://www.cotonti.com/"plug.php?e=comedit&m=edit&pid=p{PHP.id}&cid={COMMENTS_ROW_ID}">Править</a>
 <!-- ENDIF -->
]]>
Per, 19 Kas 2009 02:03:24 -0000
Kort
<a href=https://www.cotonti.com/"{PHP.pag.page_cat}/
<!-- IF {PHP.pag.page_alias} -->
{PHP.pag.page_alias}
<!-- ELSE -->
{PHP.pag.page_id}
<!-- ENDIF -->
#comments">{PHP.skinlang.comments.comments} {PHP.pag.page_comcount}</a>
(в строку html-вывод будет красивее)]]>
Per, 19 Kas 2009 01:57:46 -0000
Ratibor # Killer : И почему бред? Я делал по аналогии ссылки для комментариев.
<!-- IF {PHP.pag.page_id} > {PHP.pag.page_alias} -->
<a href=https://www.cotonti.com/"{PHP.pag.page_cat}/{PHP.pag.page_id}#comments">{PHP.skinlang.comments.comments} {PHP.pag.page_comcount}</a>
<!-- ELSE -->
<a href=https://www.cotonti.com/"{PHP.pag.page_cat}/{PHP.pag.page_alias}#comments">{PHP.skinlang.comments.comments} {PHP.pag.page_comcount}</a>
<!-- ENDIF -->
Если у нас страница не имеет алиаса, то и ссылка генерируется по id страницы, и наоборот.
Так же решил сделать для групп. Разве нельзя так?
Потому и бред :)

Что так нельзя было ?
<!-- IF {PHP.pag.page_alias} -->
<a href=https://www.cotonti.com/"{PHP.pag.page_cat}/{PHP.pag.page_alias}#comments">{PHP.skinlang.comments.comments} {PHP.pag.page_comcount}</a>
<!-- ELSE -->
<a href=https://www.cotonti.com/"{PHP.pag.page_cat}/{PHP.pag.page_id}#comments">{PHP.skinlang.comments.comments} {PHP.pag.page_comcount}</a>
<!-- ENDIF -->
]]>
Per, 19 Kas 2009 01:57:13 -0000
Killer
Добавлено 10 Минут спустя:

И почему бред? Я делал по аналогии ссылки для комментариев.
<!-- IF {PHP.pag.page_id} > {PHP.pag.page_alias} -->
<a href=https://www.cotonti.com/"{PHP.pag.page_cat}/{PHP.pag.page_id}#comments">{PHP.skinlang.comments.comments} {PHP.pag.page_comcount}</a>
<!-- ELSE -->
<a href=https://www.cotonti.com/"{PHP.pag.page_cat}/{PHP.pag.page_alias}#comments">{PHP.skinlang.comments.comments} {PHP.pag.page_comcount}</a>
<!-- ENDIF -->
Если у нас страница не имеет алиаса, то и ссылка генерируется по id страницы, и наоборот.
Так же решил сделать для групп. Разве нельзя так?]]>
Per, 19 Kas 2009 00:49:51 -0000
Kort Per, 19 Kas 2009 00:16:53 -0000 Killer женщин то много есть, а прогеров нет. :)
Буду пробовать. :) Вчера вот с братом начали делать мини-плуг для автоалиаса, хотя хаком НАМНОГО проще получилось.
Чуть не забыл, спасибо Дейв. :)

Добавлено 3 дня спустя:

Возник ещё один вопросик, который тоже не могу понять, как выполнить.
Имеем мы ссылки ip, delete, edit
 <!-- IF {PHP.usr.isadmin} > {PHP.usr.user_maingrp} == "ЧТО НАДО ВЫПОЛНИТЬ ТУТ?" -->
 <a href=https://www.cotonti.com/"admin/tools/ipsearch?a=search&id={PHP.usr.ip}&x={PHP.sys.xk}">IP: {PHP.usr.ip}</a>
 <a href=https://www.cotonti.com/"{PHP.pag.page_cat}/{PHP.pag.page_id}?ina=delete&ind={COMMENTS_ROW_ID}&x={PHP.sys.xk}">Удалить</a>
 <!-- ELSE -->
 <a href=https://www.cotonti.com/"plug.php?e=comedit&m=edit&pid=p{PHP.id}&cid={COMMENTS_ROW_ID}">Править</a>
 <!-- ENDIF -->
Не знаю, как разрешить просмотр ссылки указанным группам. Подскажите пожалуйста.

Добавлено 1 день спустя:

Некому подсказать? :)]]>
Cmt, 14 Kas 2009 18:11:23 -0000
Dayver # Killer : ....
Назрел ещё вопрос. В паге есть тег {PAGE_ADMIN_UNVALIDATE}
Ссылка на него примерно выглядит так
<a href=https://www.cotonti.com/"admin/page?s=queue&a=unvalidate&id={PHP.pag.page_id}&x=51E208FB">В очередь на утверждение</a>
Не могу найти, где находится переменная(или хз че это такое) x, которая генерирует этот номер 51E208FB. Как я понял, это у нас редирект. Не могу найти его код, чтоб правильно построить ссылку.
Параметр x - это никакой не редирект это динамическая переменная для обеспечения безопасности (со времён Seditio называется xp/xg, защита от XSS и CSRF.) если тебе нужно вручную вписать действительное значение этого пареметра то в шаблоне можно прописать что то подобное
<a href=https://www.cotonti.com/"admin/page?s=queue&a=unvalidate&id={PHP.pag.page_id}&x={PHP.sys.xk}">В очередь на утверждение</a>

Добавлено 12 Минут спустя:

# Killer : Второй день парюсь, пытаюсь самостоятельно, с помощью логики шаблона, вывести в news.tpl к тегу {PAGE_ROW_URL}#com title, в котором будет отображаться пару первых строк из комментария, по pid=p{PHP.id}&cid={COMMENTS_ROW_ID}, чтоб выводился текст com_text
Не получается нифига, пробовал уже всяко. Не отображает текст. Что делать? Как быть? Хак комментов? Логикой не обойтись?
Да нет логикой тут не обойтись ... где планируешь брать "пару первых строк из комментария" ? Да и отдельно com_text в news.tpl не доступен ... можно вставив одну строчку в пхп плуга новостей вывести шаблон comments.tpl но это явно не то что треубется ... хакать? не стоит! лучше уж написать мини плуг который поцепить на хук из плагина новостей ... ищи ... нет не женщину ... ищи пхп прогера :)]]>
Cmt, 14 Kas 2009 03:42:47 -0000
Killer {PAGE_ROW_URL}#com title, в котором будет отображаться пару первых строк из комментария, по pid=p{PHP.id}&cid={COMMENTS_ROW_ID}, чтоб выводился текст com_text
Не получается нифига, пробовал уже всяко. Не отображает текст. Что делать? Как быть? Хак комментов? Логикой не обойтись?

Добавлено 14 часов 28 Минут спустя:

Назрел ещё вопрос. В паге есть тег {PAGE_ADMIN_UNVALIDATE}
Ссылка на него примерно выглядит так
<a href=https://www.cotonti.com/"admin/page?s=queue&a=unvalidate&id={PHP.pag.page_id}&x=51E208FB">В очередь на утверждение</a>
Не могу найти, где находится переменная(или хз че это такое) x, которая генерирует этот номер 51E208FB. Как я понял, это у нас редирект. Не могу найти его код, чтоб правильно построить ссылку.]]>
Per, 12 Kas 2009 23:41:53 -0000
esclkm Cmt, 21 Şub 2009 19:23:04 -0000 Sergeich
Большинство изменений с различными кнопками и полями легко реализуются через ксс, нужно только прописать классы правильные всем элементам один раз.]]>
Cmt, 21 Şub 2009 16:53:02 -0000
esclkm Файл ресурсов полезено только когда строится таблица настроек в котонти. и то имхо это просто еще 1 tpl файл с 5-6 блоками: настройка с текстовыми полем. настройка с радоикнопкой настройка с выпадающим списком настройка с текстареа

====
а еще мне на данном этапе очень не хватает рабиения на форуме "цитата""править""удалить" на несколько тегов... а не все одной кащей]]>
Cmt, 21 Şub 2009 15:55:14 -0000
Ratibor # esclkm : и то применительно к аминке - в остальных частях сайта нет дублиующихся частей. Ну и что, можно и не дублирующие выносить.
Так же зделать разбитие на разделы как в ланг файлле в папке скина
и сразу будет понятно где используется конкретная запись.
Плюс основной раздел для универсальных записей.

# MeDBejoHok : Господа, а вам не кажется, что подобный разнос, напугает простого обывателя?
Но ланг файл же не испугал людей :-)
Причем его не обязательно юзерам менять.
К примеру создать в папке со скином папку inc и туда закинуть ланг файлы и файл ресурсов.
Кто не хочет или не может, тому и менять ничего не надо.
А кто разберется, тот настроит все как ему надо.

# medar : Попробуйте посмотреть html, который у нас выводит ядро, поискав например символ "<" в файлах system и прикиньте, где там можно применить файл ресурсов. Мне кажется, это будет одно-два места, в остальных случаях можно обойтись css.
В одном functions.php насчитал более 20 мест.]]>
Cmt, 21 Şub 2009 15:37:59 -0000
medar
Попробуйте посмотреть html, который у нас выводит ядро, поискав например символ "<" в файлах system и прикиньте, где там можно применить файл ресурсов. Мне кажется, это будет одно-два места, в остальных случаях можно обойтись css.
Походу файл ресурсов пригодится только в comments и pfs, но у нас до этих модулей еще руки не доходили, возможно, их вообще переписать придется.

Не сможешь ты гибко только через css управлять.
Если понадобятся расширенные атрибуты к картинке,
типа альт, титле или еще что нибудь более экзотическое, типа жабы ?
А если ничего не понадобится, то зачем мне лишние спаны в скине ?
У нас 80% html, который рисует движок это бэкенд-админка, где такие фичи не нужны. А во фронтэнде ты все можешь делать как хочешь при помощи плагинов и скинов.]]>
Cmt, 21 Şub 2009 14:02:48 -0000
dervan Cmt, 21 Şub 2009 08:05:13 -0000 esclkm Cmt, 21 Şub 2009 08:03:26 -0000 dervan # esclkm : конфигурации плагинов кофигурации движка - имхо тут нужен больше грамммотный tpl файл
Я как раз про это - не представляю, как это вынести в общий для всех плагинов шаблон.]]>
Cmt, 21 Şub 2009 08:00:50 -0000
esclkm ваш способ хорош - для стандартизации скина это неоспаримо... но ее можнодостичь и "логическим" шаблонизатором.
конфигурации плагинов кофигурации движка - имхо тут нужен больше грамммотный tpl файл]]>
Cmt, 21 Şub 2009 07:55:14 -0000
dervan # esclkm : В плане удобства соглашусь... но не более))
Для примера: предложи другой способ выноса HTML из кода ядра - из того кода, что создаёт HTML формы конфигурации плагина.


# esclkm : ... в остальных частях сайта нет дублиующихся частей.
Как же нет, когда есть. :)

Специально приводил в пример кнопку удаления. Она есть в админке, профиле пользователя, ЛС, PFS, на форуме, в комментариях к страницам.]]>
Cmt, 21 Şub 2009 07:47:19 -0000
MeDBejoHok Cmt, 21 Şub 2009 07:31:21 -0000 esclkm Cmt, 21 Şub 2009 07:25:56 -0000 dervan
Не говоря об удобстве. Например, захотелось поменять вид кнопки удаления по всему движку - залез в файл ресурсов и поменял.]]>
Cmt, 21 Şub 2009 06:34:13 -0000
Ratibor # medar : Лучше тем, что мы уже отвязались от ядра. Ядро уже рисует не img, а метку - тут должна быть иконка. А дальше в css мы что хочешь можем сделать. Можем эту иконку не рисовать.
А спан это не код ?
А может мне он не нужен ?
А в файле ресурсов, хоть спан, хоть функцию, хоть саму картинку вставляй.
А если ничего не надо, то ничего и не вставляй :-)

# medar : А чем css - не файл ресурсов ? По-моему это как раз то, что нам надо. Если каждый элемент будет иметь свой уникальный css-класс (а не как сейчас, когда все инпуты = .text и половина имеют явные size=), то мы можем гибко задавать их отображение на страницах.
Не сможешь ты гибко только через css управлять.
Если понадобятся расширенные атрибуты к картинке,
типа альт, титле или еще что нибудь более экзотическое, типа жабы ?
А если ничего не понадобится, то зачем мне лишние спаны в скине ?

# Sergeich : По поводу структуры папок в скине. Я уже предлагал добавить две новых папки - admin (для всех админ-шаблонов) и plugins (шаблоны для плагинов). Всё, более никаких изменений в структуре скина не требуется.
Обоими рукками за, admin, plugins и img, остальное излишество.]]>
Cmt, 21 Şub 2009 06:14:37 -0000
Sergeich
По поводу структуры папок в скине. Я уже предлагал добавить две новых папки - admin (для всех админ-шаблонов) и plugins (шаблоны для плагинов). Всё, более никаких изменений в структуре скина не требуется.

Про логику я тоже уже говорил, на примитивном уровне оно конечно надо. Но я совсем не хочу увидеть монстуозные шаблоны типа-смарти.]]>
Cmt, 21 Şub 2009 05:50:43 -0000
dervan medar, ресурсом может быть не только инициализированная переменная, содержащая HTML примитива, но и функцища, генерирующая HTML примитива в соответствии с заданными параметрами.]]> Cmt, 21 Şub 2009 05:46:26 -0000 medar # Ratibor : Ну это тот же, только в профиль.
Может чем то лучше, чем то хуже, но все равно тот же.
Лучше тем, что мы уже отвязались от ядра. Ядро уже рисует не img, а метку - тут должна быть иконка. А дальше в css мы что хочешь можем сделать. Можем эту иконку не рисовать.

А чем css - не файл ресурсов ? По-моему это как раз то, что нам надо. Если каждый элемент будет иметь свой уникальный css-класс (а не как сейчас, когда все инпуты = .text и половина имеют явные size=), то мы можем гибко задавать их отображение на страницах.

Насчет логики и производительности. Я уже писал на неокроме, что все новички обычно расчитывают на посещаемость не менее 10к в сутки, хотя практика показывает, что с тем функционалом, который дает седитио-из-коробки, трудно сделать сайт, котоый будет привлекать хотя бы 100 человек в сутки :)
В общем, все в порядке будет с производительностью, не волнуйтесь, до Друпала нам пока очень далеко.]]>
Cmt, 21 Şub 2009 05:37:02 -0000
dervan # Ratibor : К примеру можно в папке скина создать файлик, типа ланг файла,
а в нем все картинки вписать, т.е. одна переменная одна строка,
а в самом движке вместо html кода картинки вписывать переменную,
тогда каждый сможет издеваться над картинками как сможет.
Т.е. создать файл ресурсов. IMHO очень правильное решение, тем более что весь HTML вынести из движка не удастся. Пример - создание страницы конфигурации плагина по её метаописанию в (плагин).setup.php. Если код, создающий страницу конфигурации плагина, будет оперировать примитивами из файла ресурсов ("радиокнопка", "строка ввода", "кнопка удаления" и т.п.), это позволит легко менять дизайн сайта, не влезая в код движка.]]>
Cmt, 21 Şub 2009 05:11:49 -0000
Dayver Cmt, 21 Şub 2009 04:24:55 -0000 esclkm разы увеличит функциональность... и сможем воплотить трехволновую теорию целиком в практику : скин, двиг, база]]> Cmt, 21 Şub 2009 04:12:11 -0000 Aristei Cmt, 21 Şub 2009 03:59:59 -0000 Dayver Cmt, 21 Şub 2009 03:12:40 -0000 esclkm
===
ratibor - смотри сам - я тоже самое предложил только более рационально]]>
Cmt, 21 Şub 2009 02:26:55 -0000
Ratibor # esclkm : дальше же шаблонизатор проверит пуста ли это строка, если нет то сформирует все в лучших традициях. Вот только у каждого народа свои традиции :-)
Плюс того что я предложил в предыдущем посте,
в движке останутся тольк опеременные,
а html код этим переменным каждый напишет сам.]]>
Cmt, 21 Şub 2009 02:25:24 -0000
Aristei # esclkm : нет. не согласен.

imagine.
сейчас допустим наш движок при определенных условиях выдает такую строку только для зарегеных пользователей
<a href=https://www.cotonti.com/"http://weather.yandex.ru/26781/"><img src="http://img.yandex.net/i/12.gif"alt=""></a>
появляется логика... и движку будет достаточно отправить в шаблон такую строку
http://weather.yandex.ru/26781/
дальше же шаблонизатор проверит пуста ли это строка, если нет то сформирует все в лучших традициях.

Вопрос а не отразится ли это на скорости я не особо в программированиии разбираюсь но если мыслить логически что в перовм варианте чистый html из шаблона отдается браузеру, а тут дополнительная работа для шаблонизаьтора, или я гоню?]]>
Cmt, 21 Şub 2009 02:19:23 -0000
esclkm
imagine.
сейчас допустим наш движок при определенных условиях выдает такую строку только для зарегеных пользователей
<a href=https://www.cotonti.com/"http://weather.yandex.ru/26781/"><img src="http://img.yandex.net/i/12.gif"alt=""></a>
появляется логика... и движку будет достаточно отправить в шаблон такую строку
http://weather.yandex.ru/26781/
дальше же шаблонизатор проверит пуста ли это строка, если нет то сформирует все в лучших традициях.]]>
Cmt, 21 Şub 2009 02:05:52 -0000
Ratibor а в нем все картинки вписать, т.е. одна переменная одна строка,
а в самом движке вместо html кода картинки вписывать переменную,
тогда каждый сможет издеваться над картинками как сможет.]]>
Cmt, 21 Şub 2009 01:58:54 -0000