Verwenden Sie die Dienste-3.x-Knotenressource, um einen neuen * unveröffentlichten * Knoten zu erstellen

drupal.stackexchange https://drupal.stackexchange.com/questions/18800

  •  22-10-2019
  •  | 
  •  

Frage

Gibt es eine Möglichkeit, einen Knoten mithilfe der Knotenressource unveröffentlicht zu werden?

Anforderung: Site A definiert einen Inhaltstyp "Element", der standardmäßig veröffentlicht wird. Site B muss "Element" -Knoten auf A erstellen, und diese automatischen Knoten sollten unveröffentlicht werden.

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);
}

Da das Statusfeld der Knotentabelle der MySQL -Int -Typ ist (mit einem Standard von 1), würde ich denken, dass ich im obigen Code Status => 0 übergeben könnte, dies führt jedoch zu a veröffentlicht Knoten. Ich habe versucht, 0 mit JSON- und X-WWW-form-Urlencoded-Daten zu bestehen.

Wenn ich Status => False und JSON verwende, wird der Knoten als unveröffentlicht erstellt, aber ich denke, dass dies dem Einfügen von '' 'in den Knoten.Status -Feld entspricht, was zu einer MySQL -Warnung führt:

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 |
+---------+------+----------------------------------------------------------+

Ich würde mit dieser Warnung leben, aber das MySQL meines Webhost ist weniger freizügig und ich erhalte einen echten Fehler (durning node_save (), glaube ich) auf diesem Server:

"SQLState [HY000]: Allgemeiner Fehler: 1366 Falsch Ganzzahlwert: '' Für die Spalte 'Status' in Zeile 1"

(Hier ist der Faden im Pantheon http://help.getpantheon.com/pantheon/topics/json_node_create_works_on_localstack_fails_with_error_500_on_pantheon.)

Gibt es eine Möglichkeit, einen Knoten mithilfe der Knotenressource unveröffentlicht zu machen, oder muss ich meine eigene Ressource schreiben?

War es hilfreich?

Lösung

Versuchen Sie, das Feld "Status" auf festzulegen TRUE oder FALSE Anstatt von 0 oder 1.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit drupal.stackexchange
scroll top