Creazione automatizzata nuovi nodi

10 contenuti / 0 new
Ultimo contenuto
Creazione automatizzata nuovi nodi

Ciao a tutti,
sto cercando di implementare una paginetta php che estrae informazioni da un'altro database per pubblicarla su Drupal. L'idea era di far creare il nodo nuovo alla pagina esterna. Ho frugato su internet cercando informazioni ed ho trovato un documento che tratta delle funzioni relative all'oggetto node(). Ho creato la pagina per creare il nodo ma nulla si muove non dando nemmeno indicazioni.
Ho seguito alcuni pezzi di questi link che ho trovato Link 1 e Link 2.

Forse sbaglio qualcosa.. Devo creare un nodo e inserire il mio script php lì?

Io ho prodotto come test questa pagina php che si trova nella home di drupal:

<?php
error_reporting
(E_ALL);
require_once
'./includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
// Construct the new node object.
$node = new stdClass();
// Your script will probably pull this information from a database.
$node->title = "My imported node";
$node->body = "The body of my imported node.\n\nAdditional Information";
$node->type = 'page';   // Your specified content type
$node->created = time();
$node->changed = $node->created;
$node->status = 1;
$node->promote = 1;
$node->sticky = 0;
$node->format = 2;       // Full HTML
$node->uid = 1;          // UID of content owner
$node->language = 'it';
node->moderate = 0;
$node->comment = 0;
node_save($node);
?>

puntandoci contro il browser non compare nulla. Dove sbaglio?

Provato a mettere un

<?php
echo pippo
 
?>

(senza i tag di php)

dopo il node_save ?

--
Michel 'ZioBudda' Morelli -- [email protected]
Sviluppo applicazioni CMS DRUPAL e web dinamiche -- Corsi Drupal -- Amministrazione Drupal -- Hosting Drupal

.. e vedrai "pippo". Non hai sbagliato, solo che è un script da command line (riga di comando) quindi non restituisce testo per il browser - simile a quello che fa Drush. Il nodo l'ha creato o no?

Più imparo, più dubito.

Purtroppo mettendo

<?php
echo pippo
?>

Non mi visualizza nulla e ovviamente non crea il nuovo nodo.
Sto iniziando a sospettare che sia un problema dell'ambiente di test su cui sto lavorando. In questo momento sono su Windows e uso spikewamp. Ora sto installando una macchina virtuale con un server LAMP fatto a manella da distro in modo da verificare il sospetto.

Se il codice riportato sopra dovesse essere corretto, mi sorge una domanda. Ma se io faccio una pagina su un server LAMP locale che mi carica le environment di un'installazione Drupal remota, posso fare tutte le stesse operazioni (aggiunta, modifica ed eliminazione di un nodo per esempio)? Non è un problema di sicurezza a questo punto?

Mi chiedo se quest'ultimo commento ha che fare con la data di oggi...

pargilo wrote:
Purtroppo mettendo
<?php
echo pippo
?>

Non mi visualizza nulla e ovviamente non crea il nuovo nodo.

Perchè ovviamente? Hai messo quel file nel root di Drupal?

pargilo wrote:
...Se il codice riportato sopra dovesse essere corretto, mi sorge una domanda. Ma se io faccio una pagina su un server LAMP locale che mi carica le environment di un'installazione Drupal remota, posso fare tutte le stesse operazioni (aggiunta, modifica ed eliminazione di un nodo per esempio)? Non è un problema di sicurezza a questo punto?

Per Diana, hai ragione. Basta scrivere
<?php
 
require_once '<a href="http://www.drupalitalia.org/includes/bootstrap.inc';" rel="nofollow">http://www.drupalitalia.org/includes/bootstrap.inc';</a>
?>
per manipolare tutti i nodi di questo sito!
Eccetto che non puoi farlo. Provare http://www.drupalitalia.org/includes/bootstrap.inc per credere...

Buon primo aprile

John

Più imparo, più dubito.

Ciao, mi sono accorto solo ora che una delle tue ultime righe riporta:

node->moderate = 0;

Nota il $ mancante. E' un errore di copia ed incolla oppure manca realmente ?

M.

--
Michel 'ZioBudda' Morelli -- [email protected]
Sviluppo applicazioni CMS DRUPAL e web dinamiche -- Corsi Drupal -- Amministrazione Drupal -- Hosting Drupal

Perfetto. Sembra funzionare tutto!!

Grazie!!

Ciao a tutti,
sapreste dirmi come si può fare tutto questo con drupal 7 ?

grazie

Più o meno nello stesso modo ;)

Vedi node_save e NodeSaveTestCase come punti di partenza.

Ciao
Marco
--
My blog
Working at @agavee

Ciao mavimo sorry, ho letto solo ora li post
no ci speravo più ormai! :( …
si cmq gli avevo già dato un'occhiata su drupal.org ma non riesco a capire bene delle cose fondamentali delle api di drupal
in buona sostanza
da dove vanno richiamate queste funzioni?
se si vuol (se è possibile) creare un pagina php all'interno della cartella principale di drupal con delle funzioni che creano automaticamente un nuovo metodo get o post di un determinato tipo con all'interno dei valori passati tramite post tramite un form che mi costruisco io a parte.
cosa occorre inseire oltre alle funzioni node_save() e testImport() (sempre se è quest'ultima) necessaria ?
occorre chiamare altre classi oppure è necessario inserire il file all'interno di una determinata
cartella ?

thank you very much