Vorschau Button und functions deaktivieren??
Eingetragen von Nashuja (123)
am 24.02.2009 - 03:29 Uhr in
am 24.02.2009 - 03:29 Uhr in
Hi alle..
Ich würde gerne die Vorschau function deaktivieren oder besser den Button Vorschau komplett weg haben.
Fand diesen Post dazu, werd daraus aber nicht Wirklich schlau..
http://www.drupalcenter.de/node/16118
Kann mir da vieleicht jemand das ganze etwas genauer erklären wie ich den Button wegbekomme?
Vielen dank euch schon mal..
Drupal Version 6.9 DE
- Anmelden oder Registrieren um Kommentare zu schreiben
ok glaub ich hab es
am 24.02.2009 - 05:30 Uhr
ok glaub ich hab es fast^^
Habe mir mein 1. Modul gebastelt..
1. Datei mit Namen: killpreview.info
Inhalt:
name = killpreview
description = delete preview button
version = VERSION
core = 6.x
2. Datei mit Namen: killpreview.module
Inhalt:
<?php
function killpreview_form_comment_form_alter(&$form, $form_state) {
unset($form['preview']);
}
?>
Ok.. alos das funktioniert ja auch, allerdings nur bei den Kommentaren.. dort ist dann der Vorschau buton weg *freu*
Nur leider bekomm ich es nicht hin das dieser olle Button überall weg ist.. für story, event, forum Eintrag
Selbst wenn ich z.b. story in das script schreibe anstatt comment bleibt bei story posten.. der Vorschau button sichtbar und nutzbar.
Ich möchte wenn es irgendwie geht.. ALLE Vorschau Buttons weg haben.
Irgendwer nee Idee?
Keiner nee Idee? Hab mit
am 24.02.2009 - 12:02 Uhr
Keiner nee Idee?
Hab mit allem Möglichen rumprobiert.. node, story, event ..nix greift nur bei comment gehts bisher.
Wäre aber irre Wichtig für mich das alle Vorschau buttons weg kommen^^
mfg
Michael
hook_form_alter
am 24.02.2009 - 12:12 Uhr
Moin!
function killpreview_form_comment_form_alter(&$form, $form_state) {
Du sagst Drupal, dass Du Formulare mit der ID "comment-form" verändern willst. Da kann sich erwartungsgemäss nichts bei anderen Formularen ändern.
Du musst Dir also noch weitere Implementierungen von hook_form_alter() in Verbindung mit der FormularId anlegen (analog zu
..._comment_form_alter
, oder direkthook_form_alter()
verwenden und dort mitif($form_id === 'comment-form') { ... } else if($form_id === 'node-form') { ... }
die Schaltfläche entfernen.hth,
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
ok.. Hier greift
am 24.02.2009 - 13:08 Uhr
ok..
Hier greift comment:
<?php
function killpreview_form_comment_form_alter(&$form, $form_state) {
unset($form['preview']);
}
?>
nur was ich nicht verstehe ist.. wenn ich ein weiteres Modul mit anderem Namen bastel und anstatt comment z.b. story einsetze greift es nicht wenn ich eine story verfassen will. Hab alles ausprobiert.. node - edit - add - story - event bla bla
Ich leider 0 ahnung wie welche id dort welche ist...
nen Hinweis welche form z.b. das erstellen einer Story, eines Events hat .. wäre klasse und wie ich an die Information komme welche inhalte welche form id haben.
Dein Beispiel oben oder direkt hook_form_alter() verwenden und dort mit if($form_id === 'comment-form') { ... } else if($form_id === 'node-form') { ... } die Schaltfläche entfernen - komme ich nicht Wirklich zurecht. *Fehlt einfach die Progen Erfahrung zu und vorallem das Wissen um die ollen xxxx-form IDs
hook_form_alter
am 24.02.2009 - 13:37 Uhr
<?php
function killpreview_form_alter(&$form, $form_state, $form_id) {
drupal_set_message('ich bin das Formular mit der Id "'. $form_id .'"');
if ($form_id === 'node-form') {
// Node Formular
}
}
?>
hth,
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
nice .. danke, aber... Diese
am 24.02.2009 - 13:51 Uhr
nice .. danke, aber...
Diese Message erhalte ich wenn ich auf Kommentar schreiben klicke *wo das mit comment ja geht*
* ich bin das Formular mit der Id "search_theme_form"
* ich bin das Formular mit der Id "comment_form"
Und diese wenn ich zum Beispiel im navmenü auf nen Termin erstellen klicke
* ich bin das Formular mit der Id "search_theme_form"
* ich bin das Formular mit der Id "event_node_form"
k.. soweit schick..
aber in dieses script kann nun event oder node oder form reinballern es reagiert nicht
<?php
function killpreview_form_node o. event o. form greifen hier nicht_form_alter(&$form, $form_state) {
unset($form['preview']);
}
?>
Der olle Vorschau button bleibt mir erhalten:( Egal wat ich da schreibe^^
Bin bissel am Ende mit meinem mäßigen Latein:)
Trage ich z.b. event_node ein oder event-node gibts beim aktivieren des Moduls nen error
hook_form_alter
am 24.02.2009 - 13:56 Uhr
killpreview_form_alter()
greift bei sämtlichen Formularen!Bei stories wäre die Variante mit FormId
killpreview_form_story_node_form_alter()
.Du hast also diese Möglichkeiten:
<?php
function killpreview_form_alter(&$form, $form_state, $form_id) {
// greift bei sämtlichen Formularen
// Unterscheidung nach $form_id möglich
}
function killpreview_form_story_node_form_alter(&$form, $form_state) {
// greift beim Story-Formular
}
function killpreview_form_event_node_form_alter(&$form, $form_state) {
// greift beim Event-Formular
}
function killpreview_form_comment_form_alter(&$form, $form_state) {
// greift beim Comment-Formular
}
?>
hth,
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
tjo.. das einzigste der
am 24.02.2009 - 14:18 Uhr
tjo.. das einzigste der scripte oben das greift ist das comment.. rest greift nicht:(
Besteht evnt die Möglichkeit das des mit taxo zu tun hat oder url aliase?
Aber dein Info Message script gibt ja klar aus.. welche id die seiten haben.. hmm
Code
am 24.02.2009 - 15:01 Uhr
Kannst Du den Quelltext mal auf DrupalBin posten?
Ansonsten: cache geleert?
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
wenn ich dieses script
am 24.02.2009 - 15:03 Uhr
wenn ich dieses script einsetze..
<?php
function killpreview_form_alter(&$form, $form_state, $form_id) {
unset($form['preview']);
}
?>
ist der Vorschau Button bei Kommentaren weg, aber
egal ob ich nee neue story, event usw erstelle sind die weiterhin vorhanden...
An dieser Stelle bin ich entweder zu sehr damit verwöhnt oder daran gewöhnt mit templates zu arbeiten aus anderen CMS oder ich bin einfach zu Blöd.
Jedenfalls scheint er die IDs nicht zu schlucken.
..und es wäre Extrem Wichtig die weg zu bekommen:(
Struktur
am 24.02.2009 - 15:13 Uhr
Schonmal daran gedacht, dass die Schaltfläche in den anderen Formularen vielleicht nicht so ansprechbar ist, da die Struktur anders ist?
<?php
drupal_set_message('<pre>'. print_r($form, 1) .'</pre>');
?>
Das verrät Dir, welches Element die Schaltfläche wirklich ist.
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
k.. teste ich gleich
am 24.02.2009 - 15:18 Uhr
k.. teste ich gleich mal
cache geleert = keine änderung
Quellcode findest hier http://drupalbin.com/8226 = von story eingeben
hmm der code oben gibt keine
am 24.02.2009 - 15:29 Uhr
hmm der code oben gibt keine message aus..
aber evnt hilft ja das weiter:
Der fckeditor hat ja die Ausschlißen/Einschließen funktion
Und gibt diese info in dem story add aus.
Die ID für das Ausschließen oder Einschließen dieses Element ist: edit-body - der Pfad ist: node/add/story
Edit: und im quelltext sind die Buttons so deklariert:
<input type="submit" name="op" id="edit-submit" value="Speichern" class="form-submit" />
<input type="submit" name="op" id="edit-preview" value="Vorschau" class="form-submit" />
debug
am 24.02.2009 - 15:49 Uhr
Der code sollte in Deine hook_form_alter(). Nur dort macht er Sinn.
Und das ist nicht der Quelltext Deines Moduls.
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
ups.. passe es fix an und
am 24.02.2009 - 15:52 Uhr
ups.. passe es fix an und poste ergebnis^^
Was ist
am 24.02.2009 - 16:30 Uhr
Was ist hiermit?
<?php
function killpreview_form_alter($form_id, &$form) {
switch ($form_id) {
case 'mycontenttype_node_form':
unset($form['preview']);
break;
}
}
?>
muss ich da für mycontenttype den jeweiligen contenttype eintragen ala event_node oder comment?
Aber schätze wird da selbe ergebniss wie vorher das es nur bei comment geht..
Ka wie ich diese Vorschau Buttons ansprechen soll...
hook_form_alter
am 24.02.2009 - 16:36 Uhr
Was ist hiermit?
Einfach falsch. Siehe hook_form_alter().
<?php
function killpreview_form_alter(&$form, $form_state, $form_id) {
drupal_set_message($form_id);
drupal_set_message('<pre>'. print_r($form, 1) .'</pre>');
}
?>
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
gnarf.. es muss doch
am 24.02.2009 - 16:48 Uhr
gnarf.. es muss doch irgendwie möglich sein son ollen Button im System zu disabeln.
Komm hier in diesem fall allerdings nicht weiter mit Drupal... war bisher reiner smf proger und da ist man sich schlicht templates gewohnt wo sowas deklariert ist und man es recht einfach disabeln kann..
Das Lustige ist.. mann kann die dinger umbennen.. ghet einwandfrei.. aber ausblenden geht nicht. Bis auf comment^^
Den code oben hatte ich im drupal bin gefunden, dachte nur wäre ja nee chance:)
Aber vielen lieben dank, das du so Bemüht bist Stefan... hoffe ich bekomm diese ollen Buttons wech.
Nee Simple Funktion ala Verwalten wäre nett für sowas, da ja nicht jeder der mit Drupal arbeitet die Vorschaufunktion braucht.
mfg
Michael
*Am Ende imo mit dem Latein^^
hook_form_alter
am 24.02.2009 - 22:50 Uhr
So. Ich hab jetzt spassenshalber mal schnell ein kleines Modul ("test.module") gebastelt und dort die folgende hook_form_alter() reingepackt:
<?php
function test_form_alter(&$form, &$form_state, $form_id) {
drupal_set_message('<pre>'. print_r($form_id, 1) .'</pre>');
}
?>
Das gibt mir, wenn ich auf node/add/story gehe folgendes aus: "story_node_form".
Ok, also mal mit hook_form_FORMID_alter() versucht:
<?php
function test_form_story_node_form_alter(&$form, &$form_state) {
drupal_set_message('<pre>'. print_r($form, 1) .'</pre>');
}
?>
Das gibt mir das hier aus (stark gekürzt):
Array
(
[#id] => node-form
[nid] => Array
(
[#type] => value
[#value] =>
)
...
[buttons] => Array
(
[submit] => ...
[preview] => Array
(
...
)
)
)
Na sowas.
Also schnell die Funktion geändert:
function test_form_story_node_form_alter(&$form, &$form_state) {
unset($form['buttons']['preview']);
}
Und schawupps ist die Schaltfläche verschwunden. Ganz einfach so.
Das hättest Du auch hinbekommmen können, wenn Du die von mir vorgeschlagenen Schritte befolgt hättest. Wie gesagt, "hättest".
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Booh.. ich könnt dich
am 24.02.2009 - 23:10 Uhr
Booh.. ich könnt dich Knuddeln OoO
Jo, bei den array Ausgaben war ich vorhin, nach meiner Gehirnpause auch nochmal bei.. war aber wohl schon so verwirrt das ich nix ersichtliches gefunden hatte:)
Ok.. also dann Bastel ich mir mal die passenden Module..
Melde mich später obs alles klappt:9
Vielen lieben Dank erst mal..
mfg
Michael
Alle Vorschau Button ausblenden: Lösung
am 24.02.2009 - 23:31 Uhr
Ok Stefan, erst mal vielen dank für diesen teamgeist und am Ball bleiben.
hat echt Spaß gemacht dieses problem mit dir zu lösen:)
Hier nun Module:
Alle Vorschau Buttons Ausblenden
Infodatei:killpreviewall.info
name = killpreviewall
description = delete story preview button
version = VERSION
core = 6.x
Moduldatei: killpreviewall.module
<?php
function killpreviewall_form_alter(&$form, $form_state, $form_id) {
unset($form['buttons']['preview']);
}
?>
Die Codes um einzelne Vorschau Buttons auszublenden poste ich nachher noch nach..
Aber denke und hoffe das wird einige Interessieren:)
mfg
Michael