Drupal 6 programlama düğümleri oluşturma

4 Cevap php

Ben Drupal 6 düğümleri oluşturmak için nasıl arıyor. Burada stackoverflow bazı girdileri bulundu, ancak sorular eski sürümleri için olmak ya da çözümler benim için işe yaramadı görünüyordu. Tamam, bu yüzden burada oluşturmak için çalışıyor için benim geçerli işlemdir

$node = new stdClass();

$node->title = "test title";
$node->body = "test body";
$node->type= "story";
$node->created = time();
$node->changed = $node->created;
$node->status = 1;
$node->promote = 1;
$node->sticky = 0;
$node->format = 1;
$node->uid = 1;

node_save( $node );

Ben bu kodu çalıştırdığınızda, düğüm oluşturulur, ama yönetim sayfasını var, o aşağıdaki hataları atar:

Uyarı: C foreach () için sağlanan geçersiz argüman: \ wamp \ www \ steelylib \ hattında 258 \ menu.inc içerir.

Uyarı: C foreach () için sağlanan geçersiz argüman: \ wamp \ www \ steelylib \ hattında 258 \ menu.inc içerir.

kullanıcı uyarı: node_comment_statistics (nid, last_comment_timestamp, last_comment_name, last_comment_uid, COMMENT_COUNT) VALUES INSERT INTO (36, 1269980590, NULL, 1, 0) C: 1 tuşu sorgu için giriş '36 'çoğaltın \ wamp \ www \ steelylib siteler \ \ all \ modules \ nodecomment \ nodecomment.module hattında 409.

Uyarı: C foreach () için sağlanan geçersiz argüman: \ wamp \ www \ steelylib \ hattında 258 \ menu.inc içerir.

Uyarı: C foreach () için sağlanan geçersiz argüman: \ wamp \ www \ steelylib \ hattında 258 \ menu.inc içerir.

Ben farklı öğreticiler baktım ve hepsi aynı süreci takip etmek gibi görünüyor. Ben yanlış ne yapıyorum emin değilim. Ben Drupal 6.15 kullanıyorum. (Ben bir değişiklik yapmadan önce sağ) ben veritabanını geri geldiklerinde hataları gitti. Herhangi bir Yardım takdir!

Edit:

After playing around with it a bit, I did find that I had an error in my 'access arguments' in my hook_menu(), but as far as the duplicate entry goes, I was never able to figure it out. So, if you run into the same problem, good luck and post on here if you find the problem! :-)

4 Cevap

Ben sorun başka bir yerden kaynaklanıyor inanıyorum. Yukarıdaki kod parçası% 100 doğru. Ama bir yerde bir hata var eminim.

I have encountered warnings in line 258 of menu.inc. Origin of warning was wrong menu entries. check all hook_menus in your module.
One common mistake -like mine- is assigning wrong values to these menu entries: 'access callback', 'access arguments', 'page callback', 'page arguments'

Akılda bu öğeleri tutmak:

  • 'access arguments' ve 'page arguments' diziler olmalıdır.
  • Eğer bir menü girişinin sınırsız erişim izni vermek istiyorsanız yok böyle: 'access callback' => true

Yinelenen girişi ile ilgili olarak, ben hala hiçbir fikrim yok.

Ne programlama Drupal 6 düğümü oluşturmak için yapmış olduğu;

$node = new stdClass();

$node->name    = "test title";
$node->title   = $node->name;
$node->body    = "test body";
$node->type    = "story";
$node->created = time();
$node->changed = $node->created;
$node->status  = 1;
$node->promote = 1;
$node->sticky  = 0;
$node->format  = 1;
$node->uid     = 1;

if ($node = node_submit($node)) {
  node_save($node);
}
else {
  // Process error
}

Sen düğüm, düğüm revizyon ve düğüm açıklama istatistik tablosunu silmek gerekir.

Sorun zaten düğüm comment istatistik var bir kayıt eklemek için çalışıyor olmasıdır.

Ben tam, senin db ve diğer şeyler kontrol gerekir sitenize neler emin değilim, ama gördüğünüz hata bu hat ile nedenidir:

db_query('INSERT INTO {node_comment_statistics} (nid, last_comment_timestamp, last_comment_name, last_comment_uid, comment_count) VALUES (%d, %d, NULL, %d, %d)', $node->nid, $node->created, $node->uid, 0);

Bu bir düğüm kaydedildiğinde exacuted ve her şey iyi görünüyor. Bir şey olsun en bu tabloya eklenen yerdir. Nasılsa, zaten node_comment_statistics tabloda NID 36 ile düğüm için bir giriş var. Tablolarınızın senkronize dışında ise ben bilmiyorum, ya da bu iki satır tabloya eklemiş olursunuz.

Olası nedenler:

  • Bu tabloyu kullanan bazı özel kodu / diğer modülü var mı?
  • Bir düğüm oluşturulduğunda kodunuzu iki kez nook_nodeapi op elemanını tetikliyor.