Программно добавить статью в Joomla - PullRequest
4 голосов
/ 12 августа 2011

Я очень новичок в Joomla (честно говоря, только начал изучать возможность использования Joomla) и мне нужна помощь с программным добавлением статей в бэкэнд-таблицы Joomla (см. Подробности ниже).Также в том же духе, я хотел бы понять, как должны значения для столбцов:

  • parent_id
  • lft
  • rgt
  • level

генерируется для таблицы jos_assets (#__assets) и какова их функциональная роль (например, являются ли они «указателями / индексами», аналогичными, скажем, inode os для уникальной идентификации файла илиявляются ли они более функциональными атрибутами, такими как идентификация категории, подкатегории и т. д.)

Может быть полезно использовать следующий упрощенный пример для иллюстрации того, что я пытаюсь сделать.Скажем, у нас есть программа, которая собирает различную ключевую информацию, такую ​​как имена авторов веб-статей, тип статей, даты статей, а также ссылки на статью.Я хочу иметь возможность расширить эту программу для программного хранения этой информации в Joomla.В настоящее время эта информация хранится в пользовательской таблице, и пользователь, используя пользовательскую веб-страницу php, может использовать критерии поиска, скажем, по имени автора, по определенному диапазону дат, чтобы найти интересующую статью (статьи).Результат этого поиска затем отображается вместе с гиперссылкой на фактическую статью.Статьи хранятся локально на веб-сервере и не являются внешними ссылками.Часть гиперссылки, хранящаяся в пользовательской таблице, включает относительный путь физического документа (относительно корня сети), например:

Author   date         type    html_file
Tom      08-14-2011   WEB     /tech/11200/ar_324.html
Jim      05-20-2010   IND     /tech/42350/ar_985.html

и т. Д.

Со всемиПреимущества, которые Joomla предлагает по сравнению с написанием пользовательских страниц поиска и презентаций php, а также трендов и т. д., мы бы очень хотели перейти на него.Кажется, что среди других таблиц, например, #__assets и #__content могут быть заполнены программно, чтобы заполнить Joomla из нашей существующей программы php (которая используется для компиляции данных), а затем использовать Joomla., предложения и помощь с благодарностью

С наилучшими пожеланиями Gar

Ответы [ 2 ]

5 голосов
/ 06 сентября 2011

Просто начальная нота: Joomla 1.6 / 1.7 очень похожа.1,5 не так много.Я буду считать 1.6 / 1.7, поскольку это то, что я бы порекомендовал в качестве основы для нового проекта.

Прежде всего, вам нужно будет работать с доступом к фреймворку Joomla.Вы можете сделать это через Компонент, или модуль, или cron, который загрузит его или что-то еще.Я не пойду, хотя, как это сделать.

Но как только вы это сделаете, создать статью достаточно просто.это (обязательные поля и т. д.), но вы должны получить вменяемые сообщения об ошибках и т. д. из среды Joomla, которые освещают это.

Итак, в заключение:

  • Загрузите среду Joomla, чтобыдоступ к БД, компонентам, моделям и т. д.
  • Включите класс статьи com_content, который будет обрабатывать проверку, сохранять в базе данных и т. д.
  • Создать экземпляр статьи с обязательными заполненными полямив зависимости от ситуации
  • Вызовите save ()

Теперь, когда я думаю об этом, это, вероятно, будет работать через 1,5 ...

2 голосов
/ 28 сентября 2012

Найден лучший способ сделать это без ошибок Создать Joomla!Статья программно

$table = JTable::getInstance('Content', 'JTable', array());

$data = array(
    'catid' => 1,
    'title' => 'SOME TITLE',
    'introtext' => 'SOME TEXT',
    'fulltext' => 'SOME TEXT',
    'state' => 1,
);

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

// Check the data.
if (!$table->check())
{
    $this->setError($table->getError());
    return false;
}

// Store the data.
if (!$table->store())
{
    $this->setError($table->getError());
    return false;
}
...