Forumlar / 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 полностью рабочий плагин со всеми плюшками. :)

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


Bu konu Kabak tarafından düzenlendi(2014-02-05 16:45, 10 yıllar önce)
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

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


Bu konu Kabak tarafından düzenlendi(2014-02-05 18:49, 10 yıllar önce)
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-мя доп. полями. Потому судя по всему вам иногда приходится делать выборку из вашей таблицы в то время когда достаточно было бы использовать данные из стандартной таблицы пользователя. Ничего критического но на будущее как разработчику наверное стоит учесть.

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

 


Bu konu Kabak tarafından düzenlendi(2014-02-06 12:07, 10 yıllar önce)
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

Bu konu Dayver tarafından düzenlendi(2014-02-06 14:10, 10 yıllar önce)
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>'));

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


Bu konu Kabak tarafından düzenlendi(2014-02-06 20:56, 10 yıllar önce)
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

Bu konu Dayver tarafından düzenlendi(2014-02-07 00:32, 10 yıllar önce)
Kabak
#15 2014-02-07 06:59

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

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

 

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

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

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

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


Bu konu Kabak tarafından düzenlendi(2014-02-10 07:41, 10 yıllar önce)