0 Пользователей и 1 Гость просматривают эту тему.
  • 9 Ответов
  • 1082 Просмотров
*

Karyuudo

  • Захожу иногда
  • 354
  • 0 / 0
После сохранения материала (public function onContentAfterSave( $context, $article, $isNew ))

нужно занести в базу адрес сохраненной страницы.
как это сделать понятно, не понятно где взять адрес

*

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
SEF ссылку с административной части не очень просто получить, если об этом идет речь
можно так попробовать http://stackoverflow.com/questions/6746568/using-jroute-in-joomla-administrator
Код
	    require_once JPATH_ROOT.'/components/com_content/helpers/route.php';
    $app    = JApplicationCms::getInstance('site');
    $router = $app->getRouter();
    $Url = ContentHelperRoute::getArticleRoute($article->id.':'.$article->alias, $article->catid);
    $Url = $router->build($Url);
    $parsed_url = $Url->toString();
    $parsed_url = str_replace('/administrator', '', $parsed_url);

*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Вам лучше сохранять не адрес, а ид, алиас статьи, ид, алиас категории. При выдаче вы сможете построить корректную ссылку методом, предложенным смокером.
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Солидарен с выше сказанным, лучше хранить чисто id. Все остальное можно сделать потом. Ибо ссылка может меняться в зависмотси от пунктов меню, смены алиасов и прочих велений левой пятки. а id не изменно (ну кроме как через базу)
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
Вам лучше сохранять не адрес, а ид, алиас статьи, ид, алиас категории. При выдаче вы сможете построить корректную ссылку методом, предложенным смокером.
ну ситуации разные бывают, мне не интересно зачем ему ссылка и что он там делать дальше с ней собирается
ну, например, надо ссылку отправить на почту
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
нужно занести в базу адрес сохраненной страницы.
, по этому лучше сохранять идентификаторы т.к. ссылка может измениться со временем.
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
ну, например, надо ссылку отправить на почту
Удобнее в конролере или моделе пред оправкой сформировать линк.
Твой способ сверху абсолютно верен, с этим ни ко не спорит. Просто советуем ТС применять его не на вводе в базу а на выводе
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
можно так попробовать http://stackoverflow.com/questions/6746568/using-jroute-in-joomla-administrator
Код
	    require_once JPATH_ROOT.'/components/com_content/helpers/route.php';
   $app    = JApplicationCms::getInstance('site');
   $router = $app->getRouter();
   $Url = ContentHelperRoute::getArticleRoute($article->id.':'.$article->alias, $article->catid);
   $Url = $router->build($Url);
   $parsed_url = $Url->toString();
   $parsed_url = str_replace('/administrator', '', $parsed_url);

Интересный способ. В свое время мне как раз требовалось отправлять ссылки на почту из админки. Я это делал таким способом:

Код: php
$link = 'index.php?option=com_content&view=article&id=' . $id . ':' . $alias .'&catid=' . $category_id;
$router = JRouter::getInstance('site');
$router->setMode(JROUTER_MODE_SEF);
$uri = $router->build($link);
$uri->setPath( str_replace(JURI::base(true), JURI::root(), $uri->getPath() ));
echo $uri;

Если материал не привязан к пункту меню то ваш вариант почему то добавляет ?Itemid=ид_homepage
Мой вариант правда не учитывает привязку материала к пунктам меню. Но это несложно сделать впринципе. Найти пункт меню с этим материалом и добавить Itemid параметр к исходной ссылке
« Последнее редактирование: 23.09.2016, 18:06:29 от zomby6888 »
интернет-блог: http://websiteprog.ru
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Интересный способ.
Кстати подобные хелперы существуют почти у всех крупных компонентов, очень удобно, хоть и не всегда корректно работают.
« Последнее редактирование: 23.09.2016, 18:31:50 от Septdir »
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
Я такую функцию использую для генерации из админки:
Код: php
public function getAdminRoute($url)
{
$app    = JApplicationCms::getInstance('site');
$router = $app->getRouter();
$route  = $router->build($url);

return rtrim(JUri::root(), '/'). preg_replace('/administrator\//', '', $route, 1);
}

Тогда для com_content:
Код: php
require_once JPATH_ROOT.'/components/com_content/helpers/route.php';
$articleUrl = $this->getAdminRoute(ContentHelperRoute::getArticleRoute($article->id.':'.$article->alias, $article->catid));
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как достать правильно путь картинки для статьи из БД?

Автор SimonovSergey

Ответов: 2
Просмотров: 993
Последний ответ 25.01.2016, 14:11:57
от SimonovSergey
Что значит поле fulltext таблицы content и из какого поля брать содержимое статьи?

Автор warobushek

Ответов: 2
Просмотров: 1388
Последний ответ 12.12.2012, 09:10:04
от art-apple
Адрес страницы с которой пришел

Автор kadr

Ответов: 6
Просмотров: 2445
Последний ответ 07.12.2012, 14:21:40
от kadr
Статьи по оптимизации PHP-кода

Автор smart

Ответов: 0
Просмотров: 19413
Последний ответ 23.10.2007, 20:06:47
от smart