[erledigt] node-save -> Redirect zu einer Sprungmarke?
Eingetragen von Ionit (1802)
am 14.05.2015 - 14:31 Uhr in
am 14.05.2015 - 14:31 Uhr in
Hallo Freunde,
wie der Titel schon aussagt, suche ich einen Weg wie ich einen Redirect zu einer Sprungmarke hinbekomme (nach dem Speichern eines neuen Nodes).
Die Sprungmarke soll sich im unteren Drittel des Nodes befinden (denn dort sind die Infos) und der User soll, nach dem Speichern des Nodes, genau dort hingeleitet werden (nach unten gescrollt).
Wie kann ich soetwas umsetzen?
Vielen Dank schonmal im Voraus!
Gruß Matthias
- Anmelden oder Registrieren um Kommentare zu schreiben
hmmm ... eigenartig. Im
am 14.05.2015 - 15:38 Uhr
hmmm ... eigenartig.
Im Node-Bottom füge ich folgende Sprungmarke ein
<a href="#section1">Test</a>
Wenn ich nun auf diese Sprungmarke verlinke ....
http://www.domain.com/pfad/node#section1
springe ich leider nicht zur Sprungmarke ... sondern ganz nach oben (top)
Jemand eine Idee woran das liegen könnte?
Drupal rockt!!!
submit-handler
am 14.05.2015 - 16:05 Uhr
Moin.
Erstmal musst Du den Anker in die Ausgabe des Nodes bekommen. Das kannst Du entweder direkt im Template des Inhaltstypen machen, oder aber über ein eigenes Feld in der Ausgabe ([do:ds Display Suite] biete sich hierfür an).
Als nächstes musst Du das Node-Formular selbst ein wenig erweitern. In [api:hook_form_FORM_ID_alter:7] (z.B.
mymodule_form_article_node_form_alter()
für das Formular vom Inhaltstypen article) fügst Du einen eigenen submit-Handler hinzu:<?php $form['#submit'][] = 'mymodule_article_form_submit'; ?>
In dieser Funktion änderst Du dann einfach das Pfad, zu dem nach erfolgreichem Submit umgeleitet wird:
<?php
/**
* Custom submit handler for article node forms.
*
* @see node_form_submit()
*/
function mymodule_article_form_submit($form, &$form_state) {
// Redirect is not set on form errors.
if (empty($form['redirect'])) {
return;
}
$form_state['redirect'] = node_access('view', $node) ? array('node/' . $node->nid, array('fragment' => 'meineSprungmarke')) : '<front>';
}
?>
Das sollte eigentlich funktionieren.
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Sprungmarken
am 14.05.2015 - 16:07 Uhr
<a href="#section1">Test</a>
Sprungmarken definierst Du über das "name"-Attribut:
<a name="#section1">Test</a>
hth,
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Hallo Stefan, dass das das
am 14.05.2015 - 17:17 Uhr
Hallo Stefan,
dass das das name-Attribut sein muss, war mir mittlerweile auch schon aufgefallen.
Es hing dann am fehlenden
array('fragment' => 'meineSprungmarke')
Jetzt funzt aber alles so wie es soll!
Danke für die Hilfe!
Gruß Matthias
Drupal rockt!!!