Здравствуйте я новичок, возникла задача автоматической публикации статей на джумле. т.е. плагин получает текст и затем должен опубликовать его в новости. подскажите пожалуйста где можно почитать или посмотреть примеры как публиковать статьи, указывать title , категории, разделы и прочее. заранее спасибо.
Все просто Код (PHP): $myContent = & JTable::getInstance('content'); // для нового элемента ID = 0 $myContent->id = 0; //название материала $myContent->title = "Название !!!"; //алиас должен быть уникальным, для этого добавляем время $myContent->alias = 'tour_' . date('Y-m-d-H-i-s', time()); // Интро-текст $myContent->introtext = "Краткий обхор материала"; // Полный текст $myContent->fulltext = "Полный текст материала"; // state = 1 - материал опубликован $myContent->state = 1; // Дата, когда материал перестанет быть активным $myContent->publish_down = date('Y-m-d', strtotime('2011-12-31')); // Дата, когда материал бы создан $myContent->created = date('Y-m-d H:i:s', time()); // теперь, нам нужен ID пользователя, который довил материал $user =& JFactory::getUser(); $myContent->created_by = $user->id; // кем создан $myContent->modified_by = $user->id; // кем изменен // обнуляем счетчик кликов $myContent->hits = 1; $myContent->parentid = 0; // уровень доступа к материалу. 0 - для всех. $myContent->access = 0; if(!$myContent->store()) { // если вдруг добавление материала не увеначалось успехом ))) return false; } $db = & JFactory::getDBO(); if ($db) { // обновляем позицию всех текущих материалов на главной странице. $query = "UPDATE #__content_frontpage SET ordering = ordering + 1"; $db->setQuery( $query ); $db->query(); // "публикуем" наш материал на главной в самом начале $query = "INSERT INTO #__content_frontpage (content_id, ordering) VALUES (" . $myContent->id . ", 1)"; $db->setQuery( $query ); $db->query(); }
а можно еще спросить? я просто первый раз пишу плагин под джумлу. я сделал установочный xml , установил его в систему в content а как теперь его запустить на выполнение? т.е. что б он выполнил то что должен. спасибо.
в админке Расширения -> Плагины там ищи свой плагин и в колонке Включен напротив него должна стоять галочка, а не белый крестек в красном кргляшке
большое спасибо, всё получилось. вот только, никак нельзя сделать что бы отправлять статьи в определенные разделы и категории? вот в этом прекрасном листинге они просто не определяются. это возможно? Код (PHP): $myContent = & JTable::getInstance('content'); // для нового элемента ID = 0 $myContent->id = 0; //название материала $myContent->title = "Название !!!"; //алиас должен быть уникальным, для этого добавляем время $myContent->alias = 'tour_' . date('Y-m-d-H-i-s', time()); // Интро-текст $myContent->introtext = "Краткий обхор материала"; // Полный текст $myContent->fulltext = "Полный текст материала"; // state = 1 - материал опубликован $myContent->state = 1; // Дата, когда материал перестанет быть активным $myContent->publish_down = date('Y-m-d', strtotime('2011-12-31')); // Дата, когда материал бы создан $myContent->created = date('Y-m-d H:i:s', time()); // теперь, нам нужен ID пользователя, который довил материал $user =& JFactory::getUser(); $myContent->created_by = $user->id; // кем создан $myContent->modified_by = $user->id; // кем изменен // обнуляем счетчик кликов $myContent->hits = 1; $myContent->parentid = 0; // уровень доступа к материалу. 0 - для всех. $myContent->access = 0; if(!$myContent->store()) { // если вдруг добавление материала не увеначалось успехом ))) return false; } $db = & JFactory::getDBO(); if ($db) { // обновляем позицию всех текущих материалов на главной странице. $query = "UPDATE #__content_frontpage SET ordering = ordering + 1"; $db->setQuery( $query ); $db->query(); // "публикуем" наш материал на главной в самом начале $query = "INSERT INTO #__content_frontpage (content_id, ordering) VALUES (" . $myContent->id . ", 1)"; $db->setQuery( $query ); $db->query(); }