Перейти к содержимому


Фотография
- - - - -

Не Могу Подключить Чпу


Лучший Ответ fiction13 , 20 December 2019 - 18:35

  1. $link   = $this->app->route->item($item);
  2. $link   = str_replace('/administrator/', '/', $link);
  3. $uri    = JApplication::getInstance('site')->getRouter()->build($link);
  4. $link   = $uri->toString();

Ваши переменные в код мне вставлять лень, разберетесь, я думаю.

Перейти к сообщению


Сообщений в теме: 6

#1 axeld

axeld

Отправлено 20 December 2019 - 09:34

Добрый день. Столкнулся с проблемой.

Пишу плагин, и в стороннем файле плагина подключаю JBZOO. Все подключилось, материалы можно получать по API, но почему-то не срабатывает получения url страниц.
 

  1. $url_page[$i] = $app->route->item($item_model);
  2. //Выдает строку
  3. '/administrator/index.php?option=com_zoo&view=item&layout=item&Itemid=597'
  4.  
  5. // Ну ладно, добавляю htmlspecialchars_decode()
  6. $url_page[$i] = htmlspecialchars_decode($app->route->item($item_model));
  7. // Уже лучше
  8. '/administrator/index.php?option=com_zoo&view=item&layout=item&Itemid=597'
  9.  
  10. // Если добавить JRoute::_, то NULL
  11. JRoute::_($url_page[$i]);
  12. NULL
  13.  
  14. // Но даже если убрать 'administrator' и в ручную написать
  15. JRoute::_('/index.php?option=com_zoo&view=item&layout=item&Itemid=597');
  16. // Все равно не отрабатывается
  17. '/index.php?option=com_zoo&view=item&layout=item&Itemid=597' 

  В чем может быть проблема ?


  • 0

#2 usersJbzoo

usersJbzoo

Отправлено 20 December 2019 - 09:52

axeld сказал(а) 20 Дек 2019 - 08:34:

Добрый день. Столкнулся с проблемой.

Пишу плагин, и в стороннем файле плагина подключаю JBZOO. Все подключилось, материалы можно получать по API, но почему-то не срабатывает получения url страниц.
 

  1. $url_page[$i] = $app->route->item($item_model);
  2. //Выдает строку
  3. '/administrator/index.php?option=com_zoo&view=item&layout=item&Itemid=597'
  4.  
  5. // Ну ладно, добавляю htmlspecialchars_decode()
  6. $url_page[$i] = htmlspecialchars_decode($app->route->item($item_model));
  7. // Уже лучше
  8. '/administrator/index.php?option=com_zoo&view=item&layout=item&Itemid=597'
  9.  
  10. // Если добавить JRoute::_, то NULL
  11. JRoute::_($url_page[$i]);
  12. NULL
  13.  
  14. // Но даже если убрать 'administrator' и в ручную написать
  15. JRoute::_('/index.php?option=com_zoo&view=item&layout=item&Itemid=597');
  16. // Все равно не отрабатывается
  17. '/index.php?option=com_zoo&view=item&layout=item&Itemid=597' 

  В чем может быть проблема ?

если вы из админки то , поищите как в zoo работает link(

  1. $this->app->link(array('controller' => $this->controller, 'changeapp' => $this->application->id, 'task' => 'edit', 'cid[]' => $row->id))

Сообщение отредактировал usersJbzoo: 20 December 2019 - 09:53

  • 1

#3 axeld

axeld

Отправлено 20 December 2019 - 10:14

Да, из админки.
 

  1. require_once(JPATH_SITE.'/includes/defines.php');
  2. require_once(JPATH_SITE.'/includes/framework.php');
  3.  
  4. require_once JPATH_BASE . '/components/com_zoo/config.php';
  5. require_once JPATH_BASE . '/components/com_zoo/helpers/route.php';
  6. require_once JPATH_SITE . '/media/zoo/applications/jbuniversal/framework/jbzoo.php';
  7.  
  8. JBZoo::init();
  9. $app = App::getInstance('zoo'); // точка входа в API ZOO/JBZoo
  10. $app->link(array('controller' => 'item', 'changeapp' => 5, 'task' => 'edit', 'cid[]' => 5626));

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

  1. '/administrator/index.php?option=com_zoo&controller=item&changeapp=5&task=edit&cid%5B%5D=5626'

  • 0

#4 fiction13

fiction13

Отправлено 20 December 2019 - 18:35   Лучший Ответ

  1. $link   = $this->app->route->item($item);
  2. $link   = str_replace('/administrator/', '/', $link);
  3. $uri    = JApplication::getInstance('site')->getRouter()->build($link);
  4. $link   = $uri->toString();

Ваши переменные в код мне вставлять лень, разберетесь, я думаю.


Сообщение отредактировал fiction13: 20 December 2019 - 18:36

  • 1

#5 axeld

axeld

Отправлено 21 December 2019 - 06:58

Огромное спасибо. НЕ знал, что получение url адресов из админки, так отличается. :)


  • 0

#6 CB9TOIIIA

CB9TOIIIA

Отправлено 21 December 2019 - 16:52

  1. App::getInstance('zoo')->jbrouter->externalItem($item);

  • 1

#7 axeld

axeld

Отправлено 22 December 2019 - 08:06

CB9TOIIIA сказал(а) 21 Дек 2019 - 15:52:

  1. App::getInstance('zoo')->jbrouter->externalItem($item);

СПАСИБО


  • 0




Click to return to top of page in style!