Automatyczne tworzenie segmentów (nodes)
Robert, czw., 2008-05-08 14:57
Witam wszystkich, Chciałbym automatycznie tworzyć sobie nody z pliku xml, problem w tym, że funkcja, która powinna je wrzucać do bazy nie działa. Sam moduł działa jednak wyśmienicie. Samemu, przez formularz, mogę tworzyć nowe nody. Poniżej wklejam funkcję, która docelowo ma przetwarzać xml i wrzucać to do bazy danych. Póki co próbuję z pojedynczymi danymi, ale bez efektów.
/**
* Making nodes from xml
*/
function assets_make_nodes() {
$form_state = array();
module_load_include('inc', 'node', 'node.pages');
$node = array('type' => 'assets');
$form_state['values']['title'] = 'Sample title';
$form_state['values']['body'] = 'Nothing here.';
$form_state['values']['name'] = 'admin';
$form_state['values']['op'] = t('Save');
$form_state['values']['cord_x'] = '1';
$form_state['values']['cord_y'] = '2';
drupal_execute('assets_form', $form_state, $node);
} // function assets_make_nodes()

wydaje mi się, że
Anonim, pt., 2008-05-09 07:44wydaje mi się, że zamiast:
powinno być
a jeśli chodzi o pola cck, które sam dodawałeś to sprawdź w źródle strony html formularza dodawania node'a jak drupal je nazwał. Ja np. dodałem pole ulica, drupal nadał mu nazwę field_ulica, a w wynikowym formularzu w html ma nazwę:
więc w kodzie php odwołuje się do niego przez:
i programowe dodawanie node'ów z pliku działa dobrze
pozdrawiam Tomek
Dzięki za
Robert, pt., 2008-05-09 11:10Dzięki za zainteresowanie.
Pola nie dodaję przez cck, a dopisuję w formularzu, więc mam tylko nazwy, bez przedrostków.
$zmienna[‚values’][‚nazwa_pola’] to zapis jak znalazłem w dokumentacji dla D6. Zresztą bez tego też próbowałem i nic.
Całość wydaje mi się dobrze napisana, problem chyba leży gdzieś w obsłudze tego formularza. Przypuszczam, że brakuje/działa źle jakaś funkcja.
Nie chcę tu wklejać całego kodu, ale gdyby ktoś był zainteresowany w przejrzeniu go pod względem błędów to chętnie wyślę.
Robert