Elemente nicht darstellen - aus Theme löschen
am 25.09.2012 - 10:34 Uhr in
Hallo ihr,
ich suche nach einer Möglichkeit bestimmt Dinge im Theme nicht mehr darzustellen um das Design wirklich aufs nötigste zu reduzieren. Dazu dachte ich gäbe eine Möglichkeit hooks im Theme einzubinden die dann variablen einfach unsetten. (auf null setzen) sodas sie dann nicht mehr im Theme erscheinen.
Wenn es diese Möglichkeit gibt, dann stellt sich für mich noch die Fragen wie ich an die Hooks rankomme. Gibt es da irgendwas um die Ausführung dieser Dinger sichtbar zu machen? Ähnlich wie im Theme?
Wie würdet ihr das machen?
Gruß
-Patrick
- Anmelden oder Registrieren um Kommentare zu schreiben

könnte man diese Dinge nicht
am 25.09.2012 - 11:06 Uhr
könnte man diese Dinge nicht einfach auskommentieren in der template.php oder page.tpl.php? kommt natürlich drauf an was Du konkret meinst mit "Dinge"
ja, hab jetzt auch schon
am 25.09.2012 - 13:29 Uhr
ja, hab jetzt auch schon gemerkt das wird nicht ganz so einfach gewissen Elemente rauszuschmeissen oder einfach mal etwas an Text hinzuzufügen.
Was für Dinge ich meinte:
Zum Beispiel dieses "More information about text formats"
könnte man so wegkriegen:
/*** Implementation of theme_filter_tips_more_info() in /modules/filter/filter.module.
* Used here to hide the "More information about text formats" link in editor panels.
*/
function AddYourThemeNameHere_filter_tips_more_info() { return ''; }
aber naja.... ist wirklich sehr aufwändig.
Wie kann ich eigentlich Informationen, also eigene TextFelder, ranhängen wo ich will. Bei Joomla suchte ich mir die entsprechende Zeile im Template und dann hab ich das da rangeschrieben. Hier läuft das ein bischen anders. Gibts da vielleicht Module dazu?
Gruß
-Patrick
Ist natürlich abhängig davon
am 25.09.2012 - 13:37 Uhr
Ist natürlich abhängig davon welches Theme Du nutzt und in welcher Datei Du editieren willst. aber erfahrungsgemäß sollte es im Theme auch eine template.php oder page.tpl.php geben. Darin kann man ggf. genauso vorgehen wie Du es bei den Joomlathemes gemacht hast. Evtl. sind nur noch ein paar html-Kenntnisse notwendig.
achso, ich kann direkt ins
am 25.09.2012 - 14:02 Uhr
achso, ich kann direkt ins Theme, also in die template.php HTML reinschreiben. Das hört sich doch gut an.
Hast einen guten Tipp wo ich nachschlagen könnte wie ich direkt HTML Tags an die gewünschte Stelle schreiben kann. Auf diese Weise muss ich da nichts in die Datenbank oder direkt in Drupal eintragen.
Dank dir.
ob das in Deinem Theme geht,
am 25.09.2012 - 14:12 Uhr
ob das in Deinem Theme geht, kann ich so nicht sagen, jedoch erfahrungsgemäß ist das möglich. wäre hilfreich wenn Du mal den Link zum Theme postest und was konkret wo eingefügt werden soll. ggf. kann man dann konkretere Aussagen treffen.
alles klar, besten
am 25.09.2012 - 14:24 Uhr
alles klar, besten Dank.
Nehmen wir mal an ich möchte gerne bei den Usereinstellungen bei den Fields noch ein bischen Text hinzufügen. Oder ein Bild.
Dann gehe ich in den EDIT Modus suche mir im HTML Code die entsprechenden TAG Elemente raus und wenn diese dann eingefügt werden, dann wird was von meinem Theme aus der template.php dazugesetzt.
Soweit der Plan...
Das wird so nichts. Das
am 25.09.2012 - 14:31 Uhr
Das wird so nichts. Das Template regelt nur den Aufbau im Allgemeinen. Spezielle Input-Felder wirst du da nicht finden.
Um die Formulare anzupassen, brauchst du ein eigenes Modul und hook_form_alter
wenn ich den Plan richtig
am 25.09.2012 - 14:37 Uhr
wenn ich den Plan richtig verstehe, kannst Du es so ungefähr umsetzen. Versuchen kannst Du es jedenfalls mal, mache davor einfache eine Sicherung der template.php. Für den Fall, dass dann gar nichts mehr geht, kannst einfach wieder die gesicherte Datei einspielen.
hook_form_alter
am 25.09.2012 - 14:47 Uhr
Um die Formulare anzupassen, brauchst du ein eigenes Modul
Mit Drupal 7 funktioniert [api:hook_form_alter:7] auch in Themes. Ist zwar nicht schön, funktioniert aber trotzdem :).
alles klar, dank euch für
am 26.09.2012 - 10:00 Uhr
alles klar, dank euch für eure Antworten.
Dann machen ich das also so:
<?phpfunction mytheme_form_alter()
?>
und versuche dann da gewissen Variablen zu unsetten:
<?phpunset($foo);
?>
oder sie auf NULL zu setzen, damit sie dann im Theme nicht mehr angezeigt werden?!?
Bei hook_form_alter liefert
am 26.09.2012 - 10:11 Uhr
Bei hook_form_alter liefert Dir Drupal jedes Formular in dieser Funktion an. Du mußt also erst mal auf das Formular filtern um zu sehen, ob Du es ändern willst. Außerdem kannst Du dort nur Form-Elemente ändern, die auch in diesem Formular vorkommen. Dazu solltest Du dich mit dem Drupal Formularaufbau und der FormAPI befassen. Allgemeine Variablen hast Du dort nicht.
Du solltest Dich besser mit dem Aufbau und der Arbeitsweise von Drupal vertraut machen. Deine Joomla-Kenntnisse in allen Ehren, aber die sind eher hinderlich. Drupal wirst Du so nicht in den Griff bekommen. Du mußt Dich schon auf den Drupal-typischen Weg einlassen.
Beste Grüße
Werner
devel + #access
am 26.09.2012 - 10:57 Uhr
Dann machen ich das also so:
<?php function mytheme_form_alter() ?>und versuche dann da gewissen Variablen zu unsetten:
<?php unset($foo); ?>Lieber nicht
unset()verwenden. Besser ist sowas (Pseudo-Code, funktioniert nicht):<?phpfunction dingens_form_alter(&$form, &$form_state, $form_id) {
if ($form_id == 'node_article_form') {
$form['title']['#access'] = FALSE;
}
}
?>
dank euch für eure Antworten
am 26.09.2012 - 11:53 Uhr
dank euch für eure Antworten und Hinweise. Jetzt weis ich wonach ich suchen muss und was ich mir anschauen muss.
Der Weg ist erstmal gezeigt.
Danke euch...
...wiedermal :)