HTML хелперы.

#1 12 сентября 2015 в 12:12
В Двойке есть html-хелпер html_avatar_image, который возвращает img аватара пользователя или дефолт ели нет. Возникла необходимость получать ссылку. Не подскажете: можно ли дописать стандартный файл, или есть возможность определить хелпер только для шаблона?
#2 12 сентября 2015 в 12:24
Текущую функцию замените на

  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. }
Будет внесено в обновление.

есть возможность определить хелпер только для шаблона

Роман Волков
Создаете свой хелпер и подключаете в шаблоне.
#3 12 сентября 2015 в 15:08
Что функция будет так выглядеть я понимаю, вопрос лишь в том, как правильно подключить хелпер в щаблон. В файле main.tpl.php сделать include? Или как?
#4 12 сентября 2015 в 17:48

сделать include? Или как?

Роман Волков
  1. cmsCore::loadLib('ИМЯ_ХЕЛПЕРА.helper');
#5 21 сентября 2015 в 09:57


сделать include? Или как?

Роман Волков
  1. cmsCore::loadLib('ИМЯ_ХЕЛПЕРА.helper');

Evanescence

Эта функция подключает из папки lib, а мне нужно подключить самописный хелпер
#6 21 сентября 2015 в 09:57


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

  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. }
Будет внесено в обновление.

есть возможность определить хелпер только для шаблона

Роман Волков
Создаете свой хелпер и подключаете в шаблоне.

Fuze

Как правильно подключить хелпер из шаблона на сайт?
#7 21 сентября 2015 в 10:32
  1. includeFile('путь/до/вашего/файла');
или
  1. requireFile('путь/до/вашего/файла');
или обычным
  1. include_once
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.