Потребность в эвентах

#1 26 декабря 2012 в 22:02
Здравствуйте, друзья!

Просьба в большей степени к разработчикам на базе InstantCMS:

Ваши пожелания в так называемых эвентах (cmsCore::callEvent()).
Укажите, где и каких не хватает.
Или же, где хотелось бы сделать плагин, но система этого не предусматривает.

На днях будет релиз InstantCMS 1.10.1, хотелось бы сразу добавить.

p.s. просьба не флудить
#2 27 декабря 2012 в 10:47
Ну например эвенты редактирования профиля и чтобы сохранялись в базу элементы массива, как при регистрации, а не чёткие переменные.
#3 27 декабря 2012 в 11:41
Ага предложение вообще убрать профиль лишние только JOIN'ы в запросах.
#4 27 декабря 2012 в 11:50
maxisoft, чаще всего это лишь ради получения аватарки))
#5 27 декабря 2012 в 12:24
Не знаю насколько целесообразно, можно было бы в основном индексном файле /index.php вставить эвент. Даже без передачи туда каких либо данных. Мало ли кому по статистике или ещё для чего понадобится.
Можно конечно сделать эвентами cmsPage. В общем, вопрос на рассмотрение.
#6 27 декабря 2012 в 13:27
Марат, уже добавил, см. трак.
lokanaft, не нужно делать оптимизацию параноидальной.

Ага предложение вообще убрать профиль лишние только JOIN'ы в запросах.

maxisoft
ничего не понял

Ну например эвенты редактирования профиля и чтобы сохранялись в базу элементы массива, как при регистрации, а не чёткие переменные.

lokanaft
как при регистрации это как? вернее в чем отличие? поясните, я же не телепат.
#7 27 декабря 2012 в 13:34
Сделать в эвентах возможность прерывать события.
#8 27 декабря 2012 в 13:59

Сделать в эвентах возможность прерывать события.

Димитриус

поясните, я же не телепат.

Fuze
smile
#9 27 декабря 2012 в 14:24
Fuze, можно оффтопный вопрос с целью повышения личного образования?

в компоненте регистрации на эвентах до регистрации и после регистрации висит
$item['password'] = md5($pass);

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

просто я не могу уловить логику зачем нужен на стороне для какого либо плагина уже зашифрованный пароль, по идее эти эвенты сделаны именно для регистраций в других приложениях/сервисах.

для себя добавляю просто строчку
$item['password2'] = $pass;
и проблема решена, но просто интересно стало, а повода спросить до этого не было.

А еще не хватает эвента на авторизацию пользователя, чтобы можно было при авторизации в стороннем скрипте передать id пользователя или его e-mail и авторизовать автоматом в инстанте.
#10 27 декабря 2012 в 14:48

Сделать в эвентах возможность прерывать события.

Димитриус
Ааа))) я просто напомнил)) мы говориле на эту тему уже))))
Возможность эвентам прерывать выполения скрипта, выводя разные сообщения, типа. "Нет доступа". "Контент успешно перемещен в корзину" ну или ничего не выводя)))
Компонент клуб.
Евент вступления в клуб
Евент подачи заявки на вступление в клуб
#12 27 декабря 2012 в 16:56

Евент вступления в клуб Евент подачи заявки на вступление в клуб

Димитриус
все есть и сейчас)

Возможность эвентам прерывать выполения скрипта

Димитриус
что мешает сейчас в плагинах делать
  1. cmsPage::includeTemplateFile('special/accessdenied.php');
  2. cmsCore::halt();
или же
  1.  
  2. cmsCore::addSessionMessage('Действие выполнено', 'success');
  3. cmsCore::redirect('/куда_то_там');

А еще не хватает эвента на авторизацию пользователя

picaboo
см. класс юзерс
  1. $user = cmsCore::callEvent('SIGNIN_USER', array('login'=>$login,'pass'=>$passw));

почему он шифрованный отправляется в эвент?

picaboo
не могу ответить однозначно, со старых времен это идет. сделаю передачу чистого пароля.
#13 27 декабря 2012 в 17:04


Ну например эвенты редактирования профиля и чтобы сохранялись в базу элементы массива, как при регистрации, а не чёткие переменные.

lokanaft
как при регистрации это как? вернее в чем отличие? поясните, я же не телепат.

Fuze
Вот регистрация:
  1. cmsCore::callEvent('USER_BEFORE_REGISTER', $item);
  2. $item['id'] = $item['user_id'] = $inDB->insert('cms_users', $item);
Добавил я новый столбец в таблицу — и его легко записать.

А вот настройки профиля:
  1. $sql = "UPDATE cms_user_profiles
  2. SET city = '$city',
  3. description = '$description',
  4. showmail='$showmail',
  5. showbirth='$showbirth',
  6. showicq='$showicq',
  7. allow_who='$allow_who',
  8. signature='$signature',
  9. signature_html='$signature_html',
  10. gender='$gender',
  11. formsdata='$formsdata',
  12. email_newmsg='$email_newmsg',
  13. cm_subscribe='$cm_subscribe'
  14. WHERE user_id = '$id'";
  15. $inDB->query($sql) ;
  16.  
  17. $sql = "UPDATE cms_users
  18. SET birthdate='$birthdate',
  19. email='$email',
  20. icq='$icq',
  21. nickname='$nickname'
  22. WHERE id = '$id'";
  23. $inDB->query($sql) ;
Решили записать новое значение в этом столбце — размечтались. Разве что дополнительным запросом.
Кстати вот как раз перед этим местом не хватает эвента.
И вот по поводу того, что максисофт говорил: кто решил icq и birthdate хранить в users, а аватарку например в user_profiles?

Ещё нужен эвент перед </body>, дабы на любой странице можно было потом яваскриптом что нибудь, куда нибудь поставить.
#14 27 декабря 2012 в 20:21
прошу прощения за офтоп, но оно как всегда понадобится когда начнешь писать)
#15 27 декабря 2012 в 21:38
lokanaft, благодарю за развернутый ответ, теперь гораздо яснее, сделаю.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.