web-dev-qa-db-fra.com

Comment créer des articles en vrac en utilisant un script php?

J'ai vu ce post et c'était vraiment utile

Créer des catégories, sous-catégories et articles en utilisant php

mais je ne suis pas capable de créer des articles en utilisant le même script.

J'ai modifié le script mais à chaque fois, cela me donne cette erreur

Appel à une méthode non définie CategoriesHelper :: validateCategoryId ()

Existe-t-il un autre moyen de créer des articles en vrac ou d’ajouter des données à la table joomla #__content ??

2
Joomler

J'ai également fait face au même problème une fois et j'ai modifié le code comme suit, ce qui a fonctionné pour moi. Vous devez également passer les paramètres access et metadata dans les paramètres de l'article.

$article_data = array(
    'id' => 0,
    'catid' => 2,
    'title' => 'My article title',
    'alias' => 'my-article-alias',
    'introtext' => 'My intro text',
    'fulltext' => 'My full text',
    'state' => 1, //if you want to keep the article published else 0
    'alias' => 'my-article-alias',
    'state'=>1,
    'language' => '*',
    'access' => 1,
    'metadata' => json_encode(array('author' => '', 'robots' => ''))
);

$article_id = createArticle($article_data);
if(!$article_id){
    echo "Article create failed!";
}
else{
    echo 'Article created';
}

function createArticle($data)
{
    $data['rules'] = array(
        'core.edit.delete' => array(),
        'core.edit.edit' => array(),
        'core.edit.state' => array(),
    );

    $basePath = JPATH_ADMINISTRATOR.'/components/com_content';
    require_once $basePath.'/models/article.php';
    $article_model =  JModelLegacy::getInstance('Article','ContentModel');
    // or  $config= array(); $article_model =  new ContentModelArticle($config);
    if(!$article_model->save($data)){
        $err_msg = $article_model->getError();
        return false;
    }else{
        $id = $article_model->getItem()->id;
        return $id;
    }

}

Remarque: Pour static, cela ne fonctionnera qu'une seule fois car l'alias de l'article doit être unique.

J'espère que cela t'aides.

3
Liz.

Vous pouvez importer des données dans le #__articles table dans phpMyAdmin à l'aide d'une importation CVS.

Notez que les entrées créées dans le #__assets Les tableaux ne sont pas nécessaires à la stabilité du site. Nous utilisons beaucoup de sites Web Joomla sur lesquels les articles n’ont pas d’entrée associée dans le #__assets table.

0
itoctopus