Drupal6: (node_validate hataları almak için çalışılıyor)

2 Cevap php

Ben bunları veritabanına kaydetmeden önce bir düğüm kümesini doğrulamak çalışıyorum:

foreach ($nodes_to_save as $node) {
    if (! (node_validate($node, $form))) {
        form_set_error('', t('Node %title did not validate. No nodes were saved.', array('%title' => $node->title)));
        $success = FALSE;
        break;
    }
}

node_validate için belgelerine düğüm doğrulanmış değil neden belirtmek için form_set_error() arayacağını söyler. Bununla birlikte, bu, yukarıdaki kod ile olmaz. Ben olsun All I elle ayarlamak hatadır. Ben yanlış ne yapıyorum?

2 Cevap

try this the $form should be an array !

foreach ($nodes_to_save as $node) 
{
    if (! (node_validate($node, $form))) 
    {
        form_set_error('', t('Node %title did not validate. No nodes were saved.', &drupal_static(__FUNCTION__));
        $success = FALSE;
        return $success;
    }
}

Veya kullanmak Yüklü node_validate doesnt return true veya false beause ise;

foreach ($nodes_to_save as $node) 
{
       node_validate($node, $form);
        $success = FALSE;
        return $success;
    }
}

Bu node_validate bir dizi ilk parametre olarak bir nesne alır ve gibi ikinci parametre dikkat

Bu daha yararlı olmaz mı?

$success = true;
foreach ($nodes_to_save as $node){
    node_validate($node);
    //returns null or array
    $errors = form_get_errors();
    //if there was an error, send an extra message indicating the node that was not saved
    if($errors){
        form_set_error('', t('Node %title did not validate. It was not saved.', array('%title' => $node->title)));
        $success = false;
        break;
    }
}

Bunun yerine $success döngü her çalıştırıldığında tek bir düğüm için FALSE olarak dönen?