User Manager Plugin для Siena
Denisbox |
|
---|---|
Здравствуйте! Для Генуи был очень удобный плагин "User Manager Plugin", есть ли что-то подобное для Siena? Спасибо! contact: fonts (at) otlab . ru
|
esclkm |
|
---|---|
скорее всего, что нет littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты |
Kort |
|
---|---|
Скорее всего, что есть. А какие требования к плагину? SED.by - создание сайтов, разработка плагинов и тем для Котонти
|
Kabak |
|
---|---|
Демо версия плагина http://dfiles.ru/files/f34zjva04 |
Dayver |
|
---|---|
#39154 Kabak: - в чем демность плагина? в том что имена некоторых фунций зашифрованы в другой системе счисления и код превращен в трудночитаемую кашу? Если это демо то сразу огласили бы стоимость полной версии - Зачем используется отдельная таблица? - перенос строки после ?> - плохо Pavlo Tkachenko aka Dayver
|
Kabak |
|
---|---|
- в чем демность плагина? - Плагин будет работать 1-н день. потом его нужно будет переустанавливать. рабочая версия стоит 20$ с пожизненной поддержкой. о какой таблице речь ? там встроенная помощь. читайте
Добавлено 3 часа спустя: Ладно, вижу вам тут всем не до шуток... Вот: https://bitbucket.org/bykabak/userman полностью рабочий плагин со всеми плюшками. :) Предложения по модернизации принимаются в полном объёме, равно как и тухлые яйца и прочая домашняя утварь... :) |
|
This post was edited by Kabak (2014-02-05 16:45, 10 years ago) |
Dayver |
|
||
---|---|---|---|
Об отдельной таблице в БД- только для обеспечения функционалаTGA ?
Вот такую глупость отображает если пользователь ни разу не авторизировался.
Можно не указывать в секциях COT_EXT если не нужны особые значения (10 итак по умолчанию) Не все ссылки генерятся через функцию cot_url и соотв. не вся html разметка вынесена из php - функция cot_rc Pavlo Tkachenko aka Dayver
|
Kabak |
|
---|---|
Да. в отдельной таблице хранится база с временным доступом и параметры. Да, глупость... это чем грозит ? Это значение по умолчанию в Cotonti. Вы создали пользователя в самом плагине и под его ником ни разу не заходили на сайт. Зайдите на сайт под его ником и будет писать время последнего посещения сайта. Про Order=10 ясно.
это чем грозит ? |
|
This post was edited by Kabak (2014-02-05 18:49, 10 years ago) |
Dayver |
|
---|---|
#39159 Kabak: Мне кажется это не нужное усложнение - использовать отдельную таблицу когда можно обойтись 4-мя доп. полями. Потому судя по всему вам иногда приходится делать выборку из вашей таблицы в то время когда достаточно было бы использовать данные из стандартной таблицы пользователя. Ничего критического но на будущее как разработчику наверное стоит учесть.
Тем что ссылки которые прописаны жестко в коде, не смогу быть обработанны url менеджером который превращает ссылки в ЧПУшные, ничего от этого не сломается конечно но если кто то захочет прописать ЧПУшные правила и с учетом вашего плагина то спотыкнется об эту жесткую привязку. А то что html в пхп коде, а не в отдельном ресурсом файле просто усложнит изменение если кто то что то захочет поменять в плане html разметки (просто нарушается концепция, а так ничего страшного). Pavlo Tkachenko aka Dayver
|
Kabak |
|
---|---|
Я вообще-то новичёк в Cotonti и многое мне недоступно по причине отсутствия документации и большого количества времени на анализ плагинов других людей. Было бы здорово, если бы вы конкретные строки указали где вы видите косяки. Мне было бы проще ориентироваться и переделать. Я бы и рад переделать плагин в стиле концепции кодинга команды Cotonti, но мне не хватает знаний которые приходится вытаскивать клещами из сообщества или сидеть анализировать плагины движка. например: я написал вот такой код для создания ссылки $str = $prefix.'<a href="admin.php?m=other&p=userman&a=edit&id='.$userid.'&u='.$username.'">'.$username.'</a>'.$postfix; Как лучше сгенерировать и записать эту строку кода учитывая концепцию кодинга Cotonti ? Тут создаётся строка текста в которой средняя часть этой строки является ссылкой на профиль пользователя. Спасибо за понимание.
Хорошая идея. Учту.
|
|
This post was edited by Kabak (2014-02-06 12:07, 10 years ago) |
Dayver |
|
---|---|
Если с английским дружите то почитайте документацию по вопросам использования ресурсов (там же и про то как правильно генерировать ссылки), ведь она есть. То что нет перевода - это да проблема. Добавлено мульён минуты спустя: В вашем случае: require_once cot_incfile('userman', 'plug', 'resources');//Подключаем файл с ресурсами ... //Определяем адрес урла на выбор либо относительный либо абсолютный, если нужно. $href_absolute_profile = $cfg['mainurl'].'/'.cot_url('admin', 'm=other&p=userman&a=edit&id='.$userid.'&u='.$username);//Абсолютный путь $href_profile = cot_url('admin', 'm=other&p=userman&a=edit&id='.$userid.'&u='.$username);//Относительный ... $str = cot_rc('userman_link_profile', array('href' => $href_profile, 'usr_name_ankor' => $username));//В строке получим правильнооформленную по всем концепциям ссылку а в отдельном файле ресурсов /userman/inc/userman.resources.php прописать $R['userman_link_profile'] = '<a href="{$href}" class="my-class" rel="nofolow">{$usr_name_ankor}</a>'; И все. Но этот способ показал общий принцып и его лучше использовать для других тегов, для ссылок есть конкретная функция (все то же самое но с прицелом что оформляем именно ссылку): $str = cot_rc_link(cot_url('admin', 'm=other&p=userman&a=edit&id='.$userid.'&u='.$username), $username, array('title' => $username, 'class' => 'my-class', 'rel' => 'nofolow'));
Pavlo Tkachenko aka Dayver
|
|
This post was edited by Dayver (2014-02-06 14:10, 10 years ago) |
Kabak |
|
---|---|
Спасибо за ссылки по теме и помощь в поиске информации. Добавлено 4 часа спустя: $str = cot_rc_link(cot_url('admin', 'm=other&p=userman&a=edit&id='.$userid.'&u='.$username), $username, array('title' => $username, 'class' => 'my-class', 'rel' => 'nofolow')); Удобнее. Не нужно файл ресурсов создавать. 'class' => 'my-class', 'rel' => 'nofolow' Зачем это указывать ? Добавлено 23 минуты спустя: $temp->assign(array('UM_ROW_DELETE' => '<a class ="confirmLink" href="'.$url_del.'">'.'<img class="icon" src="images/icons/default/stop.png" alt="'.$L['delete'].'" title="'.$L['delete'].'" /></a>')); Как быть в таком случае ? |
|
This post was edited by Kabak (2014-02-06 20:56, 10 years ago) |
Kort |
|
---|---|
#39163 Kabak: Файл ресурсов нужен компоновщику и верстальщику -- часто при верстке требуется использовать класс или id, либо свою иконку. Это удобнее, чем ковырять .php А еще удобнее просто отдавать в виде тега, например UM_ROW_SMTH_DELETE значение атрибута href, а ссылку собирать в шаблоне как этого требует конкретный проект. rel="nofollow" -- это сеошный атрибут http://ru.wikipedia.org/wiki/Nofollow SED.by - создание сайтов, разработка плагинов и тем для Котонти
|
Dayver |
|
---|---|
#39163 Kabak:'class' => 'my-class', 'rel' => 'nofolow' Я для примера указал чтоб было понятно что через функцию cot_rc_link можно собрать тег ссылки с любым набором аттрибутов которые вы только пожелаете - хотите ноуфолов, пожалуйста, хотите класс указать, без проблем, да все что угодно (ну а суть ноуфолова вам Kort уже пояснил). $temp->assign(array('UM_ROW_DELETE' => '<a class ="confirmLink" href="'.$url_del.'">'.'<img class="icon" src="images/icons/default/stop.png" alt="'.$L['delete'].'" title="'.$L['delete'].'" /></a>')); Легко! Делаем файл ресурсов(или вставляем в существующий) /userman/inc/userman.resources.php : R['userman_link_del_img'] = '<img class="icon" src="images/icons/default/stop.png" alt="{$alt}" title="{$title}" />'; а потом у себя в коде плуга: require_once cot_incfile('userman', 'plug', 'resources');//Подключаем файл с ресурсами ... $temp->assign('UM_ROW_DELETE', cot_rc_link($url_del, cot_rc('userman_link_del_img', array('alt' => $L['delete'], 'title' => $L['delete'])), array('class' => 'confirmLink'))); Это пример для понимания ибо в коте еще для большей простоты еще и существует функция cot_confirm_url - думаю уже поняв логику и прицыпы использования вышеуказанных функций и посмотрев описание функции cot_confirm_url можно уже самому разобратся как её применить в этом случае. Это что касается использования возможностей движка, а от себя еще хотел бы добавить (хоть я и не верстальщик) что ИМХО более логичнее аттрибут title вставлять в тег ссылки, а не пичкать в тег картинки, хотя конечно это уже личное дело каждого, да и валидность не нарушается ибо данный аттрибут универсален но я бы всетаки этот аттрибут переместил из картинки в ссылку как раз в таких случаях когда анкор является сама картинка. Другое дело когда картинка без ссылки то там уже пусть будет alt с titl'ом. Тут пусть уже выскажутся верстальщики прав ли я. Добавлено капец как много минут спустя:
Тут дело не в том что это значение по умолчанию в Cotonti, а в том что в MySQL базе это поле при создании имеет нулевое значение, а уже движек интерпретирует это число как timestamp метку времени по правилам которой числу 0 (число секунд тобишь) равна дата и время 01.01.1970 00:00. Потому как разработчику в подобных ситуациях посоветовал бы поступать вот так (вашу строчку кода преобразовал): $L['usr_not_yet_login'] = 'Пользователь еще ни разу не авторизировался'; ... 'UM_EDIT_LASTLOG' => $urr['user_lastlog'] ? cot_date('datetime_medium', $urr['user_lastlog']) : $L['usr_not_yet_login'], ... Если эта недоработка, в этом плане, попала к вам в код копированием из кода движка то это лишь повод разобратся и по необходимости создать тикет с информацией где и почему этот недочет существует в движке\расширениях, а по возможность еще и самому исправить и закоммитить в https://github.com/Cotonti/Cotonti решение подобное тому что я привел здесь.
Некоторые советы конечно лучше если будут описаны здесь на форуме (и для развития потомков), но для мелких коментариев и репортов для вас будет лучше если в репе на битбукете включите трекер задач.
По возможности, команда, рада разьяснить и помочь в сфере плагинописания. Pavlo Tkachenko aka Dayver
|
|
This post was edited by Dayver (2014-02-07 00:32, 10 years ago) |
Kabak |
|
---|---|
Пойду разбираться с Спасибо за помощь.
Добавлено 3 дня спустя: Я извиняюсь, я немного неразобрался с GIT и пришлось снести репозиторий и создать заново. Все кто следил пропали из списков :( Если есть идеи по улучшению или дополнению, я всегда готов идти навстречу. Спасибо за ваше участие. |
|
This post was edited by Kabak (2014-02-10 07:41, 10 years ago) |