• Уважаемый Гость! Если вы зарегистрировались на нашем форуме, значит вам нужна помощь! Мы всегда рады вам помочь, еще ни один пользователь не получил отказа! Но мы так же нуждаемся в Вашей поддержке. Проект полностью бесплатный, мы не имеем права требовать от вас денег, нам это и не нужно! Но от любой финансовой поддержки не откажемся. Проект развивается, но иногда очень тяжело его поддерживать, особенно в финансовом отношении. Если у вас есть возможность поддержать нас финансово, мы будем вам очень благодарны! С уважением, команда Оскласс Россия!
  • Изменение в правилах форума! В связи с огромным количеством вопросов поступающих в адрес технической поддержки мы решили изменить правила форума! Просим всех пользователей обратить внимание на данные изменения и четко их соблюдать!
  • Ребята, нуждаемся в программистах! Если хотите зарабатывать и есть время, пишите администраторам сайта. Есть база и инструменты, нужен опыт и знания =)
  • Уважаемые пользователи! На форуме появились разделы по работе с системой Yclas. Yclas - это скрипт доски объявлений. Нужны разработчики.

ajax в теме osclass

dumopuh

Новичок
Всем привет )
Пытаюсь кастомизировать шаблон osclass.
Процес остановился на реализации ajax запросов. Т.е. я хочу сделать, чтобы данные приходили на главную страницу. Сами функции получения данных я реализовал и если использовать код на главной например, то все работает.
Однако я не могу сообразить, как пользоваться osc_add_route.

Например мой код получающий нужные данные лежит в папке темы /mytheme/myroute.php
в коде используются функции и классы osclass, т.е. если использовать напрямую например $.load, то получим - ничего, так как у нас сам osclass не подключен (может както можно подключить?)

Если сделать osc_add_route('myroute', 'myroute/(regexp)','myroute.php');
то файл не будет найден в контроллере custom.php
если переделать на osc_add_route('myroute', 'myroute/(regexp)', ИМЯ_ТЕКУЩЕЙ_ТЕМЫ.'myroute.php');
то файл будет найден в custom.php, но далее по коду он подхватывается с учетом пути на сервере к нему, плюс наше заданное ИМЯ_ТЕКУЩЕЙ_ТЕМЫ.'myroute.php'
т.е. опять найден не будет =(

Если у кого есть реальный рабочий пример ajax в теме osclass, поделитесь пожалуйста.


ПыСы.
Да, заданные роуты не работают, или я не понимаю их назначения, т.е. в моем случае mydomainname.eg/myroute/anything - выкидвыает на урл не найден, причем уже от самого сервера
 

administrator

Блудный сын.
Команда форума
Попробуйте так:
PHP:
osc_add_route('myroute', 'myroute/СКОБКИ_НЕ_ДОПУСТИМЫ', ИМЯ_ТЕКУЩЕЙ_ТЕМЫ.'myroute.php', true);
Отпишитесь!
 

dumopuh

Новичок
Спасибо за ответ. Версия 3.5.1

Не понял на счет скобок, там же регулярка для параметра.
Вот пример из плагина показывающего работу роута

// Dynamic route (with variables)
osc_add_route('dynamic-route', 'dynamic-route/([0-9]+)/(.+)', 'dynamic-route/{my-numeric-param}/{my-own-param}', osc_plugin_folder(__FILE__).'mydynamicroute.php');

причем если заглянуть в /oc-includes/osclass/controller/custom.php
то становится понятно, что не важно как я напишу путь к файлу, так:
osc_plugin_folder(__FILE__)."myroute.php"
или так
osc_plugin_folder(__FILE__)."mytheme/myroute.php"
или просто
"myroute.php"

все равно он не будет найден, так как в условии проверки на существование (строка 55) и в подхватывании самого файла myroute.php внутри /oc-includes/osclass/controller/custom.php (строка 79) используются разные функции для получения полного пути файла. Собственно так и происходит.
Статический роут тоже не работает.

Есть еще osc_route_ajax_url('myroute_id'); она формирует ссылку через /oc-includes/osclass/controller/ajax.php, но там вообще не находятся файлы в темах, а указание ajaxfile в ссылке отмечено как неподдерживаемое и будет удалено (правда написано удалят в 3.4 а уже 3.5)

В общем если кратко, я не могу реализовать ajax запрос к скрипту внутри темы, в котором используются функции osclass. Как решение, я могу забить на это и получать данные из бд прямыми sql запросами, но хочется все-таки узнать как правильно.
 

dumopuh

Новичок
....
причем если заглянуть в /oc-includes/osclass/controller/custom.php
то становится понятно, что не важно как я напишу путь к файлу, так:
osc_plugin_folder(__FILE__)."myroute.php"
или так
osc_plugin_folder(__FILE__)."mytheme/myroute.php"
или просто
"myroute.php"
....

тут я ступил, уже разобрался.
Но вопрос как реализоввать ajax внутри темы так и остается.
 
Верх