We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 10424
    • 4 Posts
    Comment créer une catégorie et ses sous-catégories à l’aide d’un package?

    Dans mon exemple, les catégories sont créées dans la BDD
    mais pas avec les identifiants que j’ai fourni.

    Paramètres système: Windows Vista, Modx Revolution 2.0.4, Php 5.2.8, Mysql 5.1,
    Apache 2.2, pdo_mysql installé.

    Voici la portion de mon code relative à ce problème:

    
    $fields = array( 'id' => 1,'parent' => 0,'category' => 'Parent category');
    $category1 = $modx->newObject('modCategory',$fields);
    
    $fields = array( 'id' => 2,'parent' => 1,'category' => 'Subcategory 1');
    $category11 = $modx->newObject('modCategory',$fields);
                    
    $fields = array('id' => 3,'parent' => 1,'category' => ' Subcategory 2');
    $category12 = $modx->newObject('modCategory',$fields);
                    
    $fields = array('id' => 4,'parent' => 1,'category' => ' Subcategory 3');
    $category13 = $modx->newObject('modCategory',$fields);
    
    $categoryVehicleAttr = array(
        xPDOTransport::UNIQUE_KEY => 'category',
        xPDOTransport::PRESERVE_KEYS => false,
        xPDOTransport::UPDATE_OBJECT => true,
        xPDOTransport::RELATED_OBJECTS => true,
        xPDOTransport::RELATED_OBJECT_ATTRIBUTES => array (
            'Children' => array(
                xPDOTransport::PRESERVE_KEYS => false,
                xPDOTransport::UPDATE_OBJECT => true,
                xPDOTransport::UNIQUE_KEY => 'category',
                xPDOTransport::RELATED_OBJECTS => true,
                xPDOTransport::RELATED_OBJECT_ATTRIBUTES => array (
                    'modTemplateVar' => array(
                        xPDOTransport::PRESERVE_KEYS => false,
                        xPDOTransport::UPDATE_OBJECT => true,
                        xPDOTransport::UNIQUE_KEY => 'name',
                    )
                ),
            ),
            'modTemplateVar' => array(
                 xPDOTransport::PRESERVE_KEYS => false,
                 xPDOTransport::UPDATE_OBJECT => true,
                 xPDOTransport::UNIQUE_KEY => 'name',
            )
        )
    );
    
    $vehicle2 = $builder->createVehicle($category11,$categoryVehicleAttr);
    $builder->putVehicle($vehicle2);
    
    $vehicle2 = $builder->createVehicle($category12,$categoryVehicleAttr);
    $builder->putVehicle($vehicle2);
    
    $vehicle2 = $builder->createVehicle($category13,$categoryVehicleAttr);
    $builder->putVehicle($vehicle2);
    
    $vehicle2 = $builder->createVehicle($category1,array(  
                          xPDOTransport::PRESERVE_KEYS => false,
                          xPDOTransport::UPDATE_OBJECT => true,
                          xPDOTransport::UNIQUE_KEY => 'category'
                    ));
    
    $builder->putVehicle($vehicle2);
    
    

    • Bonjour gamer2010,

      Si tu regardes dans build.transport.php de modxExtra (documentation), tu trouvera que l’ajout de catégories est géré de la façon suivante :
      $category= $modx->newObject('modCategory');
      $category->set('id',1);
      $category->set('category',PKG_NAME); // ou PKG_NAME = le nom de la catégorie
      


      C’est un début qui j’espère te mettra sur la voix. Bon courage et n’hésites pas à faire un retour sur tes trouvailles/difficultés