Forums / National / Russian / Модули и плагины / User Manager Plugin

User Manager Plugin для Siena

Denisbox
#1 2014-02-04 08:10

Здравствуйте!

Для Генуи был очень удобный плагин "User Manager Plugin", есть ли что-то подобное для Siena?

Спасибо!

contact: fonts (at) otlab . ru
esclkm
#2 2014-02-04 12:03

скорее всего, что нет
 

littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты
Kort
#3 2014-02-04 13:41

Скорее всего, что есть. А какие требования к плагину?
 

SED.by - создание сайтов, разработка плагинов и тем для Котонти
Kabak
#4 2014-02-05 09:31

Демо версия плагина http://dfiles.ru/files/f34zjva04

Dayver
#5 2014-02-05 13:49
#39154 Kabak:

Демо версия плагина http://dfiles.ru/files/f34zjva04

- в чем демность плагина? в том что имена некоторых фунций зашифрованы в другой системе счисления и код превращен в трудночитаемую кашу? Если это демо то сразу огласили бы стоимость полной версии

- Зачем используется отдельная таблица?

- перенос строки после ?> - плохо

Pavlo Tkachenko aka Dayver
Kabak
#6 2014-02-05 14:02

- в чем демность плагина? - Плагин будет работать 1-н день.  потом его нужно будет переустанавливать. 

рабочая версия стоит 20$ с пожизненной поддержкой.

о какой таблице речь ?   там встроенная помощь.  читайте

 

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

Ладно, вижу вам тут всем не до шуток...

Вот: https://bitbucket.org/bykabak/userman полностью рабочий плагин со всеми плюшками. :)

Предложения по модернизации принимаются в полном объёме, равно как и тухлые яйца и прочая домашняя утварь... :)


Dit bericht is bewerkt door Kabak (2014-02-05 16:45, 10 jaren ago)
Dayver
#7 2014-02-05 17:17

Об отдельной таблице в БД- только для обеспечения функционалаTGA ? 

Последняя авторизация: 01.01.1970 00:00

Вот такую глупость отображает если пользователь ни разу не авторизировался.

Order=10

Можно не указывать в секциях COT_EXT если не нужны особые значения (10 итак по умолчанию)

Не все ссылки генерятся через функцию cot_url и соотв. не вся html разметка вынесена из php - функция cot_rc

Pavlo Tkachenko aka Dayver
Kabak
#8 2014-02-05 17:26

Да. в отдельной таблице хранится база с временным доступом и параметры.
 

Да, глупость...  это чем грозит ?  Это значение по умолчанию в Cotonti.  Вы создали пользователя в самом плагине  и под его ником ни разу не заходили на сайт. Зайдите на сайт под его ником и будет писать время последнего посещения сайта.

Про Order=10  ясно.

Не все ссылки генерятся через функцию cot_url и соотв. не вся html разметка вынесена из php - функция cot_rc

это чем грозит ?


Dit bericht is bewerkt door Kabak (2014-02-05 18:49, 10 jaren ago)
Dayver
#9 2014-02-05 21:30
#39159 Kabak:

Да, глупость...  это чем грозит ?

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

это чем грозит ?

Тем что ссылки которые прописаны жестко в коде, не смогу быть обработанны url менеджером который превращает ссылки в ЧПУшные, ничего от этого не сломается конечно но если кто то захочет прописать ЧПУшные правила и с учетом вашего плагина то спотыкнется об эту жесткую привязку. А то что html в пхп коде, а не в отдельном ресурсом файле просто усложнит изменение если кто то что то захочет поменять в плане html разметки (просто нарушается концепция, а так ничего страшного).

Pavlo Tkachenko aka Dayver
Kabak
#10 2014-02-06 06:53

Я вообще-то новичёк в Cotonti и многое мне недоступно по причине отсутствия документации и большого количества времени на анализ плагинов других людей.

Для меня тёмный лес - "ЧПУшные". и некоторые термины которые очевидны для команды Cotonti. Было бы здорово, если бы, команда изъяснялась доступнее для новичков и потенциальных писателей плагинов для Cotonti.

Но в любом случае спасибо за советы и замечания. Плагин ещё будет неоднократно "шлифоваться" , так что учту.

Было бы здорово, если бы вы конкретные строки указали где вы видите косяки. Мне было бы проще ориентироваться и переделать.  Я бы и рад переделать плагин в стиле концепции кодинга команды Cotonti, но мне не хватает знаний которые приходится вытаскивать клещами из сообщества или сидеть анализировать плагины движка.

например: я написал вот такой код для создания ссылки

       $str = $prefix.'<a href="admin.php?m=other&p=userman&a=edit&id='.$userid.'&u='.$username.'">'.$username.'</a>'.$postfix;

Как лучше сгенерировать и записать эту строку кода учитывая концепцию кодинга Cotonti ?  Тут создаётся строка текста в которой средняя часть этой строки является ссылкой на профиль пользователя.

Спасибо за понимание.

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

Хорошая идея. Учту.

 


Dit bericht is bewerkt door Kabak (2014-02-06 12:07, 10 jaren ago)
Dayver
#11 2014-02-06 13:39

Если с английским дружите то почитайте документацию по вопросам использования ресурсов (там же и про то как правильно генерировать ссылки), ведь она есть. То что нет перевода - это да проблема.

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

В вашем случае:

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

Dit bericht is bewerkt door Dayver (2014-02-06 14:10, 10 jaren ago)
Kabak
#12 2014-02-06 15:05

Спасибо за ссылки по теме и помощь в поиске информации.
С английским дружу. проанализирую и переделаю код.
Если будут вопросы напишу.

Добавлено 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>'));

Как быть в таком случае ?


Dit bericht is bewerkt door Kabak (2014-02-06 20:56, 10 jaren ago)
Kort
#13 2014-02-06 22:55
#39163 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>'));

Как быть в таком случае ?

Файл ресурсов нужен компоновщику и верстальщику -- часто при верстке требуется использовать класс или id, либо свою иконку. Это удобнее, чем ковырять .php А еще удобнее просто отдавать в виде тега, например UM_ROW_SMTH_DELETE значение атрибута href, а ссылку собирать в шаблоне как этого требует конкретный проект.

rel="nofollow" -- это сеошный атрибут http://ru.wikipedia.org/wiki/Nofollow

SED.by - создание сайтов, разработка плагинов и тем для Котонти
Dayver
#14 2014-02-06 23:50
#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.  Вы создали пользователя в самом плагине  и под его ником ни разу не заходили на сайт. Зайдите на сайт под его ником и будет писать время последнего посещения сайта.

Тут дело не в том что это значение по умолчанию в 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 решение подобное тому что я привел здесь.

Вот: https://bitbucket.org/bykabak/userman полностью рабочий плагин со всеми плюшками. :)

Предложения по модернизации принимаются в полном объёме, равно как и тухлые яйца и прочая домашняя утварь... :)

...

Было бы здорово, если бы вы конкретные строки указали где вы видите косяки. Мне было бы проще ориентироваться и переделать.  Я бы и рад переделать плагин в стиле концепции кодинга команды Cotonti,

Некоторые советы конечно лучше если будут описаны здесь на форуме (и для развития потомков), но для мелких коментариев и репортов для вас будет лучше если в репе на битбукете включите трекер задач. 

Я вообще-то новичёк в Cotonti и многое мне недоступно по причине отсутствия документации и большого количества времени на анализ плагинов других людей.
Для меня тёмный лес - "ЧПУшные". и некоторые термины которые очевидны для команды Cotonti. Было бы здорово, если бы, команда изъяснялась доступнее для новичков и потенциальных писателей плагинов для Cotonti.

По возможности, команда, рада разьяснить и помочь в сфере плагинописания.

Pavlo Tkachenko aka Dayver

Dit bericht is bewerkt door Dayver (2014-02-07 00:32, 10 jaren ago)
Kabak
#15 2014-02-07 06:59

Пойду разбираться с cot_rc_link(); и параметрами... Мудрёно.

Спасибо за помощь.

 

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

Я извиняюсь, я немного неразобрался с GIT и пришлось снести репозиторий и создать заново. Все кто следил пропали из списков :(
Если кому-то ещё инетерсно участвовать, я буду рад вас видеть. https://bitbucket.org/bykabak/userman

Если есть идеи по улучшению или дополнению, я всегда готов идти навстречу.

Спасибо за ваше участие.


Dit bericht is bewerkt door Kabak (2014-02-10 07:41, 10 jaren ago)