Script PHP qui n'a aucun effet
Bonjour,
Je ne comprends pas en quoi mon script ne fonctionne pas. Il permet de copier les attributs d'une bdd pour créer une page avec ces memes attributs dans une atre bdd ( un autre site drupal ) tout en testant si la page n'existe pas deja.
Voici le code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
use Drupal\Core\DrupalKernel;
use Symfony\Component\HttpFoundation\Request;
use Drupal\node\Entity\Node;
// base DANS laquelle on va copier les lignes
$requete2 = $bddCRNL->prepare("SELECT nid FROM node"); // on récupère les id (déjà copiés)
$res2 = $requete2->fetchAll();
$list_ids = array();
foreach($res2 as $row2){
$list_ids[] = $row2['id'];
}
$list_ids = ( !empty($list_ids) )? implode( ',', $list_ids) : ''; // les id (déjà copiés), séparés par des virgules
// base de départ : on ne prend que les lignes non-existantes
$requete3 = $bddDYCOG->prepare("SELECT * FROM node WHERE nid NOT IN (".$list_ids.")"); // (PAS dans les id déjà copiés)
$res3 = $requete3->fetchAll();
foreach($res3 as $row3){
$ajouter = "oui"; // FORCEMENT
// on ajoute .......
$autoloader = require_once 'autoload.php';
$kernel = new DrupalKernel('prod', $autoloader);
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$caracteristiques = $bddDYCOG->prepare("SELECT node.type, node__body.langcode, title, body_value, body_format FROM node, node__body, node_field_data WHERE node.nid=node__body.entity_id AND node_field_data.nid=nod.nid");
$carac = $caracteristiques->fetchAll();
$node = Node::create([
'type' => $carac['node.type'],
'langcode' => $carac['node__body.langcode'],
'created' => REQUEST_TIME,
'changed' => REQUEST_TIME,
'uid' => 1,
'title' => $carac['title'],
'body' => [
'summary' => '',
'value' => $carac['body_value'],
'format' => $carac['body_format'],
],
]);
$node->save();
} |
Je n'obtiens aucune erreur quand je l'execute dans ma console, mais rien ne se passe. J'ai utilisé l'error_log mais il ne m'affiche rien.
Des idées ? Merci