Действия при просмотре фото

#1 15 марта 2012 в 21:45
Итак задача при просмотре фотографии сделать дополнительные действия имею сделующий код:
  1. <?php
  2. class p_usermaps_photo extends cmsPlugin
  3. {
  4. public function __construct()
  5. {
  6.  
  7. parent::__construct();
  8.  
  9. $this->info['plugin'] = 'p_usermaps_photo';
  10. $this->info['title'] = 'Фото на карте';
  11. $this->info['description'] = 'Позволяет привязать фотографию к точке на карте';
  12. $this->info['author'] = 'NeoChapay';
  13. $this->info['version'] = '0.6';
  14. $this->events[] = 'GET_PHOTO';
  15. }
  16.  
  17. public function execute($event, $item)
  18. {
  19. parent::execute();
  20.  
  21. switch ($event)
  22. {
  23. case 'GET_PHOTO':
  24. $this->photomap($item);
  25. break;
  26. }
  27. return;
  28. }
  29.  
  30. public function photomap($photo)
  31. {
  32. echo 'HELLO';
  33. }
  34. }
Увы ни чего не выводиться… где глюк?
#2 15 марта 2012 в 22:43

Увы ни чего не выводиться

Сергей Игоревич
фото не выводится или эхо не выводит HELLO?
попробую угадать, может так лучше было бы?

  1. public function photomap($photo){
  2. echo 'HELLO';
  3. return $photo;
  4. }
#3 16 марта 2012 в 07:35


Увы ни чего не выводиться

Сергей Игоревич
фото не выводится или эхо не выводит HELLO?
попробую угадать, может так лучше было бы?

  1. public function photomap($photo){
  2. echo 'HELLO';
  3. return $photo;
  4. }

Fuze
эхо не выводится
#4 16 марта 2012 в 08:16
27 строка
  1. return;
пожалуй, надо
  1. return $item;
#5 16 марта 2012 в 08:21


27 строка

  1. return;
пожалуй, надо
  1. return $item;

Марат

неа… ошибка тут в другом там даже die() не обрабатывается...

в фронтенде в 290 строчке есть
  1.  
  2. $photo = cmsCore::callEvent('GET_PHOTO', $photo);
  3.  
и я же правильно понял что это именно тот эвент который нужен?
#6 16 марта 2012 в 08:48
Сергей Игоревич, Марат правильно подсказал, я не заметил вчера.

и я же правильно понял что это именно тот эвент который нужен?

Сергей Игоревич
да. вы сам плагин то установили?
#7 16 марта 2012 в 09:46


Сергей Игоревич, Марат правильно подсказал, я не заметил вчера.

и я же правильно понял что это именно тот эвент который нужен?

Сергей Игоревич
да. вы сам плагин то установили?

Fuze

  1. --
  2. -- Структура таблицы `cms_plugins`
  3. --
  4.  
  5. CREATE TABLE IF NOT EXISTS `cms_plugins` (
  6. `id` int(11) NOT NULL AUTO_INCREMENT,
  7. `plugin` varchar(30) NOT NULL,
  8. `title` varchar(255) NOT NULL,
  9. `description` text NOT NULL,
  10. `author` varchar(255) NOT NULL,
  11. `version` varchar(15) NOT NULL,
  12. `plugin_type` varchar(10) NOT NULL,
  13. `published` int(11) NOT NULL,
  14. `config` text NOT NULL,
  15. PRIMARY KEY (`id`)
  16. ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=25 ;
  17.  
  18. --
  19. -- Дамп данных таблицы `cms_plugins`
  20. --
  21.  
  22. INSERT INTO `cms_plugins` (`id`, `plugin`, `title`, `description`, `author`, `version`, `plugin_type`, `published`, `config`) VALUES
  23. (24, 'p_usermaps_photo', 'Фото на карте', 'Позволяет привязать фотографию к точке на карте', 'NeoChapay', '0.6', 'plugin', 1, '---\n');
  24.  
Вроде да…
#8 16 марта 2012 в 09:56
Сергей Игоревич, а вроде нет.
Установите в админке плагин.
#10 16 марта 2012 в 10:49
Сергей Игоревич,

Установите в админке плагин.

Fuze
удалите сначала существующий.
Для установки плагина нужно добавлять данные в две таблицы (cms_plugins и cms_event_hooks), вы добавили только в одну. Посмотрите установочный дамп icms и по примеру сделайте.
Так же можно установить плагин например так

  1.  
  2. if(!$inDB->rows_count('cms_plugins', "plugin='p_usermaps_photo'", 1)){
  3. $plugin = $inCore->loadPlugin('p_usermaps_photo');
  4. $plugin->install();
  5. $inCore->unloadPlugin($plugin);
  6. }
#11 16 марта 2012 в 10:58
SQL теперь:
  1.  
  2. CREATE TABLE IF NOT EXISTS `cms_event_hooks` (
  3. `id` int(11) NOT NULL AUTO_INCREMENT,
  4. `event` varchar(50) NOT NULL,
  5. `plugin_id` varchar(30) NOT NULL,
  6. PRIMARY KEY (`id`),
  7. KEY `event` (`event`,`plugin_id`)
  8. ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=49 ;
  9.  
  10. --
  11. -- Дамп данных таблицы `cms_event_hooks`
  12. --
  13.  
  14. INSERT INTO `cms_event_hooks` (`id`, `event`, `plugin_id`) VALUES
  15. (48, 'GET_PHOTO', '26');
  16.  
  17.  
  18.  
  19. CREATE TABLE IF NOT EXISTS `cms_plugins` (
  20. `id` int(11) NOT NULL AUTO_INCREMENT,
  21. `plugin` varchar(30) NOT NULL,
  22. `title` varchar(255) NOT NULL,
  23. `description` text NOT NULL,
  24. `author` varchar(255) NOT NULL,
  25. `version` varchar(15) NOT NULL,
  26. `plugin_type` varchar(10) NOT NULL,
  27. `published` int(11) NOT NULL,
  28. `config` text NOT NULL,
  29. PRIMARY KEY (`id`)
  30. ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=27 ;
  31.  
  32. --
  33. -- Дамп данных таблицы `cms_plugins`
  34. --
  35.  
  36. INSERT INTO `cms_plugins` (`id`, `plugin`, `title`, `description`, `author`, `version`, `plugin_type`, `published`, `config`) VALUES
  37. (26, 'p_usermaps_photo', 'Фото на карте', 'Позволяет привязать фотографию к точке на карте', 'NeoChapay', '0.6', 'plugin', 1, '---\n');
  38.  
Код теперь:
  1. <?php
  2. class p_usermaps_photo extends cmsPlugin
  3. {
  4. public function __construct()
  5. {
  6.  
  7. parent::__construct();
  8.  
  9. $this->info['plugin'] = 'p_usermaps_photo';
  10. $this->info['title'] = 'Фото на карте';
  11. $this->info['description'] = 'Позволяет привязать фотографию к точке на карте';
  12. $this->info['author'] = 'NeoChapay';
  13. $this->info['version'] = '0.6';
  14. $this->events[] = 'GET_PHOTO';
  15. }
  16.  
  17. public function install()
  18. {
  19. return parent::install();
  20. }
  21.  
  22. public function upgrade()
  23. {
  24. return parent::upgrade();
  25. }
  26.  
  27. public function execute($event, $item)
  28. {
  29. parent::execute();
  30. switch ($event)
  31. {
  32. case 'GET_PHOTO':
  33. $this->photomap($item);
  34. break;
  35. }
  36. return;
  37. }
  38.  
  39. public function photomap($photo)
  40. {
  41. print_r($photo);
  42. return 'HELLO';
  43. }
  44. }
Всё равно тупняк… и ни чего…
#12 16 марта 2012 в 11:25
  1.  
  2. public function execute($event, $item)
  3. 28 {
  4. 29 parent::execute();
  5. 30 switch ($event)
  6. 31 {
  7. 32 case 'GET_PHOTO':
  8. 33 $item = $this->photomap($item);
  9. 34 break;
  10. 35 }
  11. 36 return $item;
  12. 37 }
  13. 38
  14. 39 public function photomap($photo)
  15. 40 {
  16. 41
  17. 42 return print_r($photo);
  18. 43 }
  19.  
может так попробовать…
#13 16 марта 2012 в 11:33

return $item;

Марат

проверяйте внимательно все, удалите плагин в админке, установите заново.
И когда пишите "тупняк… и ни чего." пишите какие действия делали, догадываться то сложно.
#14 16 марта 2012 в 11:41


return $item;

Марат

проверяйте внимательно все, удалите плагин в админке, установите заново.
И когда пишите "тупняк… и ни чего." пишите какие действия делали, догадываться то сложно.

Fuze

Удалил плагин — прошерстил базу — следов нет — установил плагин. Захожу сюда yamolodoi.ru/users/1/photo9.html hello ни где не написанно и так далее…
#15 16 марта 2012 в 11:44
а галку включить ставили? я так один раз пол дня волосы на груди рвал почему не работает
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.