HTML хелперы.

 
Посетитель
small user social cms
Сообщений: 65
В Двойке есть html-хелпер html_avatar_image , который возвращает img аватара пользователя или дефолт ели нет. Возникла необходимость получать ссылку. Не подскажете: можно ли дописать стандартный файл, или есть возможность определить хелпер только для шаблона?
InstantCMS Team
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 4363
Текущую функцию замените на

Код PHP:
  1. /**
  2.  * Возвращает ссылку на аватар пользователя
  3.  * @param array|yaml $avatars Все изображения аватара
  4.  * @param string $size_preset Название пресета
  5.  * @return string
  6.  */
  7. function html_avatar_image_src($avatars, $size_preset='small'){
  8.  
  9. $config = cmsConfig::getInstance();
  10.  
  11. $default = array(
  12. 'normal' => 'default/avatar.jpg',
  13. 'small' => 'default/avatar_small.jpg',
  14. 'micro' => 'default/avatar_micro.png'
  15. );
  16.  
  17. if (empty($avatars)){
  18. $avatars = $default;
  19. }
  20.  
  21. if (!is_array($avatars)){
  22. $avatars = cmsModel::yamlToArray($avatars);
  23. }
  24.  
  25. $src = $avatars[ $size_preset ];
  26.  
  27. if (strpos($src, $config->upload_host) === false){
  28. $src = $config->upload_host . '/' . $src;
  29. }
  30.  
  31. return $src;
  32.  
  33. }
  34.  
  35. /**
  36.  * Возвращает тег <img> аватара пользователя
  37.  * @param array|yaml $avatars Все изображения аватара
  38.  * @param string $size_preset Название пресета
  39.  * @param string $alt Замещающий текст изображения
  40.  * @return string
  41.  */
  42. function html_avatar_image($avatars, $size_preset='small', $alt=''){
  43.  
  44. $src = html_avatar_image_src($avatars, $size_preset);
  45.  
  46. $size = $size_preset == 'micro' ? 'width="32" height="32"' : '';
  47.  
  48. return '<img src="'.$src.'" '.$size.' alt="'.htmlspecialchars($alt).'" />';
  49.  
  50. }
Будет внесено в обновление.
Роман Волков:
есть возможность определить хелпер только для шаблона
Создаете свой хелпер и подключаете в шаблоне.
Видео каталог для InstantCMS | Аудио каталог для InstantCMS | Мы Вконтакте | Предложение для спонсоров
Реклама
cms
Посетитель
small user social cms
Сообщений: 65
Что функция будет так выглядеть я понимаю, вопрос лишь в том, как правильно подключить хелпер в щаблон. В файле main.tpl.php сделать include? Или как?
Посетитель
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1160
Роман Волков:
сделать include? Или как?
Код PHP:
  1. cmsCore::loadLib('ИМЯ_ХЕЛПЕРА.helper');
Дополнения для InstantCMS 2 | Готовый сайт Доска объявлений
Посетитель
small user social cms
Сообщений: 65
Evanescence:

Роман Волков:
сделать include? Или как?
Код PHP:
  1. cmsCore::loadLib('ИМЯ_ХЕЛПЕРА.helper');

Эта функция подключает из папки lib, а мне нужно подключить самописный хелпер
Посетитель
small user social cms
Сообщений: 65
Fuze:

Текущую функцию замените на

Код PHP:
  1. /**
  2.  * Возвращает ссылку на аватар пользователя
  3.  * @param array|yaml $avatars Все изображения аватара
  4.  * @param string $size_preset Название пресета
  5.  * @return string
  6.  */
  7. function html_avatar_image_src($avatars, $size_preset='small'){
  8.  
  9. $config = cmsConfig::getInstance();
  10.  
  11. $default = array(
  12. 'normal' => 'default/avatar.jpg',
  13. 'small' => 'default/avatar_small.jpg',
  14. 'micro' => 'default/avatar_micro.png'
  15. );
  16.  
  17. if (empty($avatars)){
  18. $avatars = $default;
  19. }
  20.  
  21. if (!is_array($avatars)){
  22. $avatars = cmsModel::yamlToArray($avatars);
  23. }
  24.  
  25. $src = $avatars[ $size_preset ];
  26.  
  27. if (strpos($src, $config->upload_host) === false){
  28. $src = $config->upload_host . '/' . $src;
  29. }
  30.  
  31. return $src;
  32.  
  33. }
  34.  
  35. /**
  36.  * Возвращает тег аватара пользователя
  37.  * @param array|yaml $avatars Все изображения аватара
  38.  * @param string $size_preset Название пресета
  39.  * @param string $alt Замещающий текст изображения
  40.  * @return string
  41.  */
  42. function html_avatar_image($avatars, $size_preset='small', $alt=''){
  43.  
  44. $src = html_avatar_image_src($avatars, $size_preset);
  45.  
  46. $size = $size_preset == 'micro' ? 'width="32" height="32"' : '';
  47.  
  48. return '';
  49.  
  50. }
Будет внесено в обновление.
Роман Волков:
есть возможность определить хелпер только для шаблона
Создаете свой хелпер и подключаете в шаблоне.

Как правильно подключить хелпер из шаблона на сайт?
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3549
Код PHP:
  1. includeFile('путь/до/вашего/файла');
или
Код PHP:
  1. requireFile('путь/до/вашего/файла');
или обычным
Код PHP:
  1. include_once
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.