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 : Sélectionner tout - Visualiser dans une fenêtre à part
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