Utilizzare la risorsa nodo Servizi-3.x per creare un nuovo inedito * * nodo
-
22-10-2019 - |
Domanda
C'è un modo che posso forzare un nodo per essere inediti utilizzando la risorsa nodo?
Requisiti: sito definisce un tipo di contenuto 'voce' che viene pubblicato per impostazione predefinita. Sito B ha bisogno di creare 'voce' nodi su A, e questi nodi creati automaticamente devono essere inedite.
function toolreq_test_create() {
$toolreq_endpoint = variable_get("toolreq_endpoint", "");
$options = toolreq_service_login();
if (!is_array($options)) {
print "error<p>";
return;
}
//create a node
$node_data = array(
"title"=>"DHC Tool 04 dev",
"type"=>"item",
//"status"=> FALSE, //ensure unpublished
"status" => 0,
"language" => "und", //lanugage neutral
"field_webpage"=>array(
"und"=>array(0=>array("url"=>"http://berkeley.edu",)
)
)
);
//use json
$options['headers']['content-type'] = "application/json";
$options['method'] = 'POST';
$options['data'] = json_encode($node_data);
$request = drupal_http_request($toolreq_endpoint . '/node', $options);
}
Dal campo di stato della tabella nodo è il tipo mysql INT (con un predefinito di 1), penserei che avrei potuto passare status => 0 in quanto sopra codice, ma a fare che si traduce in un pubblicato nodo. Ho cercato di passaggio 0 utilizzando sia JSON e dati x-www-form-urlencoded.
Se uso status => FALSE e utilizzare JSON, il nodo viene creato come inedito, ma penso che questo equivale a inserire '' nel campo node.status che si traduce in un avvertimento mysql:
mysql> INSERT INTO `bamboodirt`.`node` (`nid`, `vid`, `type`, `language`, `title`, `uid`,
`status`, `created`, `changed`, `comment`, `promote`, `sticky`, `tnid`, `translate`)
VALUES (NULL, 21, 'item', 'und', 'sql insert test', '0', '', '0', '0', '0', '0', '0', '0',
'0');
Query OK, 1 row affected, 1 warning (0.03 sec)
mysql> SHOW WARNINGS
+---------+------+----------------------------------------------------------+
| Level | Code | Message |
+---------+------+----------------------------------------------------------+
| Warning | 1366 | Incorrect integer value: '' for column 'status' at row 1 |
+---------+------+----------------------------------------------------------+
Vorrei vivere con questo avvertimento, ma mysql del mio provider è meno permissiva e ottengo un (node_save Durning () credo) l'errore reale su quel server:
"SQLSTATE [HY000]: Errore generale: 1366 valore intero non corretto: '' per la colonna 'status' alla riga 1"
(Ecco il filo sopra al Pantheon http://help.getpantheon.com/pantheon/topics / json_node_create_works_on_localstack_fails_with_error_500_on_pantheon .)
C'è un modo che posso forzare un nodo per essere inediti utilizzando la risorsa nodo, o devo scrivere il mio risorsa?
Soluzione
Prova impostando il campo 'status' di TRUE
o FALSE
invece di 0
o 1
.