Aanmaak nieuwe nodes mbv mySQL

Ik wil op vraag van een collega een heleboel nieuwe nodes toevoegen aan mijn Drupal installatie (5.3, straks 5.5). Het gaat specifiek om items van de "news page"-vorm. Ik heb daaromtrent enkele vraagjes:

  1. Welke tabellen moet ik allemaal aanpassen als ik een node toevoeg? Ik heb al gevonden dat ik de tabellen "node" (en uiteraard "news page") moet aanpassen. Zijn er nog tabellen die dan aangepast moeten worden, bijv. voor de sitemap?
  2. Ik wens de verschillende nodes in te vullen met een bepaalde tekst die ik uit een andere databasetabel haal. Hoe kan ik dat best doen, er zijn namelijk meerdere velden die ik moet invullen?
Auteur: 
Rodeo
afbeelding van george@dynapres.nl
Door george@dynapres.nl op 8 december, 2007 - 14:13

1. Om nodes toe te voegen voor b.v. een import/conversie gebruik je het beste de Drupal API's door in PHP code een node object te construeren en deze op te slaan met de functie node_save() [1]. Directe manipulatie van de db tabellen is een minder goed idee.

2. Als je een custom node aanmaakt, b.v. met CCK, kun je de velden invullen door de respectievelijke velden in het PHP object te definiëren. Als je wilt weten welke structuur je specifieke CCK node object heeft gebruik je b.v.

<?php
$node = node_load(123); // 123 = node id
print_r($node);
?>

Kijk eens naar de devel module [2], die bevat voorbeeldcode hoe je programmatisch nodes kunt aanmaken. De module importexportapi [3] geeft je wellicht ook meer info.

[1] http://api.drupal.org/api/function/node_save/5
[2] http://drupal.org/project/devel
[3] http://drupal.org/project/importexportapi

Dynapres.nl

afbeelding van wmostrey
Door wmostrey op 8 december, 2007 - 15:20

Je kunt inderdaad beter de API gebruiken en niet zomaar in de database. Hier is nog een goede link voor als je met cck velden werkt:

http://www.civicactions.com/blog/cck_import_and_update

Door jpoesen op 9 december, 2007 - 11:18

Met http://drupal.org/project/node_import kan je aan de hand van een uitgebreide wizard ook content importeren uit een CSV-bestand, waarbij je de aanwezige velden mapt op velden in je content-type. Ook taxonomy terms en metadata als auteur, datum, published, etc kunnen geïmporteerd worden.

Dit is misschien geen oplossing voor jouw specifiek probleem (bv als je periodiek geautomiseerde imports wil doen), maar in veel gevallen is dit een snellere oplossing dat zelf een import te gaan schrijven.

Door Rodeo op 9 december, 2007 - 21:36

Ok, ik zie in http://drupal.org/project/importexportapi en http://drupal.org/project/node_import wel iets dat ik kan gebruiken. Dank!

~~~~

Bookmark and Share

Drupal is een geregistreerd merk van Dries Buytaert. | Powered by Pantheon.

Drupal.be/Drupal.nl is de website van de Nederlandstalige Drupalgemeenschap.