Как получить ID статьи отправить публикацию статьи в Joomla

Я умею создавать статьи на Joomla программно. Благодаря сообщению ниже. Создайте Joomla! Статья программно

Статья создана успешно, но теперь я хочу зафиксировать идентификатор статьи или URL-адрес только что созданной статьи Joomla.

Идея состоит в том, что после того, как зарегистрированный пользователь создаст статью, пользователь получит электронное письмо с полным URL-адресом статьи, которую он создал.

-Если можно получить идентификатор статьи, я могу использовать index.php? Option = com_content & view = article & id = XXX ИЛИ - Если можно получить полный URL-адрес SEF, тогда это будет здорово

фрагмент кода выглядит следующим образом

else {
        $table = JTable::getInstance('Content', 'JTable', array());
        $data = array(
            'catid' => $category,
            'title' => $msgbody,
            'fulltext' => $button,
            'publish_down' => $sixdate,
            'state' => 1,
            'metakey' => $meta,
            'metadesc' => $msgbody,
            'ips' => $ip,
        );

        if (!$table->bind($data))
        {
            $this->setError($table->getError());
            return false;
        }

        if (!$table->check())
        {
            $this->setError($table->getError());
            return false;
        }

        if (!$table->store())
        {
            $this->setError($table->getError());
            return false;
        }

        $mailer = JFactory::getMailer();
        $config = JFactory::getConfig();
        $sender = array( 
            $config->getValue( 'config.mailfrom' ),
            $config->getValue( 'config.fromname' ) );

        $mailer->setSender($sender);

        $user = JFactory::getUser();
        $urecipient = $user->email;

        $mailer->addRecipient($urecipient);

person user2549928    schedule 10.03.2014    source источник
comment
Попробуйте $ table- ›id после сохранения таблицы с помощью $ table-› store ();   -  person di3sel    schedule 10.03.2014
comment
if (! $ table- ›store ()) {$ this-› setError ($ table- ›getError ()); вернуть ложь; Это возвращает JTableContent. Я новичок в программировании. Я знаю, что это неправильный путь. $ table- ›id; echo $ table;   -  person user2549928    schedule 10.03.2014
comment
Оно работает. Большой. Спасибо.   -  person user2549928    schedule 10.03.2014
comment
Счастлив, что смог помочь, не забудьте проголосовать за мой ответ и проверить его, как указано ниже :)   -  person di3sel    schedule 10.03.2014


Ответы (1)


Из того, что я вижу в коде, вы можете получить доступ к идентификатору статьи после сохранения с помощью $table->id (после использования метода $table->store(););

Самый простой способ создать sef URL - использовать собственный построитель маршрута статьи:

require_once(JPATH_ROOT . '/components/com_content/helpers/route.php');
$link = JRoute::_(ContentHelperRoute::getArticleRoute($table->id, $table->catid);

($ table-> catid параметр не обязателен)

person di3sel    schedule 10.03.2014