Wie kann man Inhalttyp auf unpublished als default ändern (programmatically)
am 02.04.2012 - 09:16 Uhr in
Die default Einstellung des publish/unpublish von Inhalttype ist publish.
Wie kann man Inhalttyp auf unpublished als default ändern (programmatically)? Ich habe in Datenbank geschaut , aber nicht gefunden. Wo ist es versteckt?
Danke Wanneng
- Anmelden oder Registrieren um Kommentare zu schreiben

Was genau ist denn dein
am 02.04.2012 - 09:24 Uhr
Was genau ist denn dein Anliegen? Wenn du diese Option einfach für den ganzen Inhaltstyp als Standard setzen willst, kannst du das doch einfach über den Inhaltstyp selbst regeln. (Inhaltstyp bearbeiten --> Veröffentlichungseinstellungen --> Haken raus nehmen)
Wenn du allerdings die
am 02.04.2012 - 12:12 Uhr
Wenn du allerdings die default - Einstellung für jeden neuen Inhaltstyp, der angelegt wird, ändern willst, dann geht das ganz einfach über den HOOK form_alter.
Eine Dokumentation dessen findest du hier.
Ich habe immer so das Gefühl, dass sich viele nicht an diese Drupal-Funktionen herantrauen... dabei ist das gar nicht so schwer.
Ich plane diesbezüglich ein kleines Video zu machen, worin man dann sehen kann, wie man z.B. den HOOK form_alter leicht umschreiben kann.
Das Video wird sicherlich diese Woche noch fertig werden. Vielleicht kann das ja ein bisschen zum Verständnis beitragen.
in diesem Sinne
viel Grüße
Berthold Lausch
@ExteriorIch erstelle eine
am 02.04.2012 - 13:53 Uhr
@Exterior
Ich erstelle eine Nodetyp programmatiklly, ich möchte die default publish-setting auf unpublish setzen.
@torfnase
Ich will mal mit hook_form_alter probieren. Ich will deine Video unbedingt auch auch schauen.
P.S. Ich denke, dass man nicht über hook_form_alter diese Einstellung ändern, weil ich Nodetyp programmatiklly erstellen möchte.
Vielen Danke.
Wanneng
Zitat:weil ich Nodetyp
am 02.04.2012 - 15:20 Uhr
weil ich Nodetyp programmatiklly erstellen möchte
Könntest du das bitte etwas näher erklären? Was genau willst du machen? Unter "programmatically erstellen" stelle ich mir vor, dass du den Inhaltstyp durch ein PHP-Script erstellen willst. Willst du einen Inhaltstyp neu erstellen oder einen Node eines bestimmten Typs? Und du könntest mal den Code posten, der den Node / Inhaltstyp erstellen soll.
wanneng schriebP.S. Ich
am 02.04.2012 - 15:57 Uhr
// Edit: da habe ich gerade Blödsinn geschrieben ....
Mich würde aber auch die Antwort auf die Frage von Toni (Exterior) interessieren.
Grüsse
Berthold Lausch
Welche Drupal-version
am 02.04.2012 - 16:11 Uhr
Welche Drupal-version verwendest du ?
EDIT:
Für D7 gefunden:
http://drupal.org/node/49768
$node->status unpublished/published (0|1).
@sepp68 Das geht auch in D6,
am 02.04.2012 - 16:46 Uhr
@sepp68
Das geht auch in D6, die Frage ist nur, ob es das ist, was er braucht. Denn das was du geschrieben hast ist für einen Node, hat aber mit dem Erstellen eines Inhaltstyps nichts zu tun. Daher müssten wir erstmal wissen, was der TE eigentlich will.
Hier noch mal Detail.
am 02.04.2012 - 21:00 Uhr
z.B. wie unten habe ich eine neu Inhalttyp "product" erstellt.
function product_install() {
$content_type = array(
'type' => 'product',
'name' => t('Product'),
'base' => 'node_content',
'description' => t('my product.....'),
'title_label' => t('Product'),
'has_body' => FALSE,
'custom' => 1,
'modified' => 1,
'locked' => 0,
);
$content_type = node_type_set_defaults($content_type);
node_type_save($content_type);
}
aber ich weiss nicht, wie kann ich die Default options: "Published" und "Promoted to front page" auf unpublish und nicht auf Frontpage setzen.Das heißt, die Kreuz weg lassen. Sehe Anhang.
Es geht nicht um einen Node, sondern gesamt Nodetype Einstellung.
Exterior hat es gut verstanden.
@sepp68: mit http://drupal.org/node/49768 kann man nur für einzel Node machen, nicht für gesamt Default-Einstellen.
über Link admin/structure/types/manage/prduct/edit kann man es leicht machen. Aber ich will PROGRAMMATIKLLY, sogar gleich bei NODE-TYPE-ERSTELLEN.
Danke
Ja, stimmt tschuldigung, habe
am 02.04.2012 - 21:14 Uhr
Ja, stimmt
tschuldigung, habe Node statt Inhaltstyp verstanden.
Die Einstellungen des Inhaltstyps werden in einer Variable "node_options_INHALTSTYP" gespeichert:
$node_options = variable_get('node_options_' . $node->type, array('status', 'promote'));Auszug aus http://api.drupal.org/api/drupal/modules!node!node.module/function/node_object_prepare/7
Probier's mal
am 02.04.2012 - 21:18 Uhr
Probier's mal damit:
<?php
function product_install() {
$content_type = array(
'type' => 'product',
'name' => t('Product'),
'base' => 'node_content',
'description' => t('my product.....'),
'title_label' => t('Product'),
'has_body' => FALSE,
'custom' => 1,
'modified' => 1,
'locked' => 0,
);
$content_type = node_type_set_defaults($content_type);
node_type_save($content_type);
variable_set('node_options_product', array());
}
?>
Ist nur eine Theorie, wurde nicht getestet.
Übrigens, du solltest bedenken, dass der hook_install nur einmal beim ersten aktivieren aufgerufen wird. Einfach das Modul deaktivieren und wieder aktivieren wird da also nicht klappen, entweder du verwendest noch den hook_update_N oder du deinstallierst das Modul über die entsprechende Funktion.
Es funktioniert!
am 03.04.2012 - 09:36 Uhr
Mit variable_set() funktioniert es.
Nur noch eine Frage, nach Installation kann/darf die User nach Ihre Wünsch die default "unpublish" wieder auf publish setzen, ist hier Verwendung von hook_install korrekt?
Äh... wie bitte? Kannst du
am 03.04.2012 - 10:37 Uhr
Äh... wie bitte? Kannst du das nochmal genauer erklären?
Mir bitte auch!
am 03.04.2012 - 12:38 Uhr
Ich verstehe gerade den Sinn des Ganzen nicht mehr.
Naja, ist ja klar, daß man
am 03.04.2012 - 16:33 Uhr
Naja, ist ja klar, daß man den Defaultwert vielleicht auch wieder auf "published" setzen will.
hook_install ist da definitiv nicht ok, da du ja nicht das Modul deinstallieren und wieder installieren willst.
Wobei ja beim Installieren "unpublished" gesetzt wird .....ohoh
Nein, du musst uns schon genauer sagen wie dein Benutzer nun den Default-Wert ändern soll.
Ich meine, Ich erstelle diese Inhalttyp
am 04.04.2012 - 22:00 Uhr
Ich meine, Ich erstelle diese Inhalttyp mit default Einstellung. Damit später kann die Seiteadministrator auch selbst dieser Einstellung ändern bzw. neu Felde anlegen.
Dann habe ich hook_install verwendet, statt hook_update_N. Ist das korrekt. oder?