Плагин Joomla: как получить заголовок статьи и идентификатор статьи

Я разработал простой плагин в Joomla 1.6, на котором остановился: Как получить заголовок статьи и URL-адрес статьи.

Я не получаю вывода, если пытаюсь напечатать ниже заявление:

echo $article->title;
echo $article->id;

Я написал это в файле php, не используя архитектуру MVC. Есть ли какие-либо другие настройки, которые необходимо выполнить в административной части Joomla?

Пожалуйста, предложите свои указатели для извлечения заголовка статьи и URL-адреса статьи.

Заранее спасибо!

Правин


person pravin    schedule 19.05.2011    source источник
comment
Чтобы проверить, отображает ли код в данный момент статью, убедитесь, что JRequest::getCmd('view', '') возвращает "article".   -  person Flimm    schedule 21.04.2016


Ответы (5)


я пытался :

public function onContentPrepare($context,&$article, &$params, $limitstart) {
 echo JRequest::getVar('id');
}

Я все еще не получаю идентификатор. Это правильно?

Статья загружается во второй аргумент ($article). Находясь на этом мероприятии (onContentPrepare), вы можете получить доступ только к $article->text.

Для достижения вашей цели (получение идентификатора и названия статьи) вы захотите использовать другое событие, называемое "onContentBeforeDisplay".

public function onContentBeforeDisplay($context, &$article, &$params, $limitstart)

Здесь у вас (снова) статья прошла через второй аргумент, но теперь у вас есть доступ к таким свойствам, как $article->id, $article->title и многим другим.

Для будущих ссылок на события контента загляните в файл "plugins\content\example\example.php"

person h_45h    schedule 20.05.2011

Чтобы получить ID статьи, вам нужно написать следующее:

echo JRequest::getVar('id');

Для заголовка вы просто берете полученный идентификатор, загружаете объект статьи

$blabla = $article->load(ID);
echo $blabla->get('title');
person Asaf    schedule 19.05.2011
comment
я пробовал: публичная функция onContentPrepare($context,&$article, &$params, $limitstart) {echo JRequest::getVar('id'); } Тем не менее, я не получаю идентификатор... это запись? - person pravin; 19.05.2011

Похоже, что JRequest устарел в 2.5 и 3.x, как указано в Устаревшие элементы список.

Я бы предпочел использовать следующее:

$article_id = JFactory::getApplication()->input->get('id');
person Anriëtte Myburgh    schedule 09.09.2014

Вы можете использовать для получения активного заголовка статьи, как это

$menu =& Jsite::getMenu(); echo $menu->getActive()->title;

может это поможет.

person Jigar Patel    schedule 05.06.2013
comment
Это получает текущий заголовок меню. - person computrius; 19.12.2013

Чтобы получить идентификатор статьи Joomla, используйте этот...

<?php echo JRequest::getVar('Itemid'); ?>

В предыдущем ответе кто-то использовал id вместо Itemid. Надеюсь это поможет!

person ybi    schedule 08.08.2012
comment
Itemid используется для меню, а не для статьи. - person Irfan; 05.10.2012