Как подключить свой html.helper файл

#1 17 ноября 2015 в 11:27
Здравствуйте. Некоторые функции html.helper мне приходится изменять под себя для определенного шаблона, так же мне это необходимо для шаблона который я продаю, как правильно подключить свои функции которые будут заменять стандартные функции не трогая html.helper?
#2 17 ноября 2015 в 11:33
  1.  
  2. cmsCore::loadLib('MY_HELPER');
  3.  
Правда это из папки libs подключает.
А в случае с шаблоном наверное только include или require
#3 17 ноября 2015 в 11:49

  1. cmsCore::loadLib('MY_HELPER');

Rossoman
подключает везде и всюду одинаково, другой вопрос использовать в этом файле названия функций совпадающие с названием функций из файла html.helper не получится. Мне видится использование своего хелпера так:
подключаем в конце файла html.helper через include_once или cmsCore::loadLib('MY_HELPER'); — это позволит хелперу грузится со всеми в куче
и в своём файле пишете свои функции с другими названиями (скажем добавив свой префикс), и потом их применяете в нужных местах.
#4 17 ноября 2015 в 11:51
Loadырь, так ему же в шаблоне нужно это сделать. Шаблон идет в паблик, и вариант прописать в html.хелпере подключение не катит

подключает везде и всюду одинаково

Loadырь
Так вопрос то не где, а откуда. Опять же в случае с шаблоном хелпер должен находиться я так понимаю внутри шаблона, и вариант с loadLib снова не прокатит
#5 17 ноября 2015 в 12:00
Rossoman, loadLib подключает файл с путём от корня диска, а не от файла где идёт вызов
  1. $config->root_path.'system/libs/'.$library.'.php';
Да можно в каждом файле шаблона вызывать свой хелпер, но имхо лучше подключить его или в индексном файле или в конце html.helper добавить его подключение, и сам файл тоже добавить в папку system/libs/ и я думаю не возникнет у пользователей проблема если в архиве с шаблоном будет ещё и системная папка с файлом этого хелпера.
#6 17 ноября 2015 в 12:17
Loadырь, так я про то и говорю, что loadLib ищет хелпер в папке libs smile

я думаю не возникнет у пользователей проблема если в архиве с шаблоном будет ещё и системная папка с файлом этого хелпера.

Loadырь
Конечно не возникнет, за исключением того, когда пользователь установит обновление системы, и возможно обновиться файл хелпера… Потом сложности могут возникнуть у ТС, отвечающего на кучу возмущенных писем)
#7 17 ноября 2015 в 12:31
Создать хелпер в папке libs и подключить в main.tpl.php smile
#8 17 ноября 2015 в 12:33
При обновлении в случае замены файла html.helper достаточно прописать одну строку в конце файла, но ТС всё равно будут приходить письма.
Можно вообще прописать в папке \system\core\my_супер_helper.php в нём класс с кучей статических методов и не думать обо всех обновлениях. Но это тот ещё велосипед.
#9 17 ноября 2015 в 12:35

Создать хелпер в папке libs и подключить в main.tpl.php

Evanescence
Он и отработает в main.tpl.php, а на всех других страницах, которые рендерятся до main.tpl.php возникнут сложности.
#10 17 ноября 2015 в 12:38

При обновлении в случае замены файла html.helper достаточно прописать одну строку в конце файла, но ТС всё равно будут приходить письма.

Loadырь
да я то все это знаю) Но ведь пользователям всем не объяснишь этого, и тем более не заставишь всех делать.
А в случае с обновлением вообще критически. Если файл обновился, а владелец сайта загорает на море, или уехал отдыхать в лес), то шаблон весь летит крахом, и сайт ждет возвращения владельца.
Поэтому все же мое мнение, что использование хелпера внутри шаблона в данном случае, более оправдано
#11 17 ноября 2015 в 12:47
Я поступил так. Создал свой bootstrap.helper, положил в папку libs.
Подключаю через loadLib.
В нем создал свои методы по аналогии, не html_button, а bootstrap_button.

Не вижу проблемы, если в установочном архиве с шаблоном будет идти еще папка с bootstrap.helper.php в папке libs
#12 17 ноября 2015 в 13:21
Zau4man, и я о том же, только своими словами smile
#13 17 ноября 2015 в 15:37
Zau4man, Loadырь, так я собственно и не спорю)) Я пытаюсь сказать о том, что подключать его все равно лучше в шаблоне. А где будет лежать сам хелпер, это уже не так важно
#14 17 ноября 2015 в 16:16
Atid — Gorec, как видите все разработчики пришли к общему консенсусу, так что смело можете пользоваться.
1. Создаёте файл в папке system\libs\ с названием "название_шаболна_html.helper.php".
2. В нём прописываете свои функции с названием отличным от тех что уже есть в html.helper.php например

не html_button, а bootstrap_button

Zau4man
3. В каждом файле шаблона где будут использоваться вызовы этих функций, в самом начале прописываете
  1. <?php cmsCore::loadLib('название_шаболна_html.helper');?>
.
4. В коробочку с шаблоном не забудьте приложить этот файл.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.