0 votes
ago in SoSci Survey (dt.) by s109993 (13.1k points)
edited ago by s109993

Moin,

ich benutze relativ oft die Navigationsleiste (https://www.soscisurvey.de/help/doku.php/de:create:navigation). Jetzt gab es von einem Kunden die Nachfrage, ob zwischen den Kapiteln auf jeder Seite oben das Kapitel angezeigt werden kann, zu dem die Frage gehört. Wurde das schon einmal gemacht bzw. gibt es da eine Anleitung/Idee zur Umsetzung?

Ich arbeite nicht auf SoSci, sondern auf einem privaten Server, Version 3.7.06

Edit: ich könnte es natürlich manuell einarbeiten, aber das würde dann wieder auf fast jeder Seite ein neuer Textbaustein sein. Deshalb würde einfach gerne wissen, ob es eine andere Möglichkeit gibt.

1 Answer

0 votes
ago by SoSci Survey (369k points)

Jetzt gab es von einem Kunden die Nachfrage, ob zwischen den Kapiteln auf jeder Seite oben das Kapitel angezeigt werden kann, zu dem die Frage gehört.

Intuitiv würde ich sagen, dass dei Navigationsleiste genau das macht - das aktive Kapitel ist ja optisch hervorgehoben.

Aber ja, man kann den Namen des Kapitels natürlich auch nochmal über oder unter die Navigation schreiben. Dafür würden Sie die Funktion navigation() ergänzen und z.B. unter der Zeile

option('nextbutton', 'Nächstes Formular');

Noch ein wenig HTML-Code für eine Überschrift ausgeben. Die Funktion info('pageNames') verrät die Titel der Seiten. Der zusätzliche PHP-Code könnte also aus aussehen:

$pageNames = info('pageNames');
$pageID = info('pageID');
$pageName = $pageNames[$pageID];
html('<h1>'.$pageName.'</h1>');

Das funktioniert so lange, wie Sie einen Navigationspunkt pro Seite haben und jede Seite einem Navigationspunkt entspricht. Falls das bei Ihnen nicht der Fall ist (und womöglich deshalb erst der Wunsch nach der zusätzlichen Anzeige aufkam), könnten Sie den Seitennamen zwischenspeichern.

$pageNames = info('pageNames');
$pageID = info('pageID');
$pageName = $pageNames[$pageID];
if ($pageName) {
  $lastName = $pageName;
}
registerVariable($lastName);
if (!empty($lastName)) {
    html('<h1>'.$lastName.'</h1>');
}

Eventuell wäre in so einem Fall aber geschickter, das aktive Kapitel direkt im navigation()-Befehl zu übergeben und dann die Hervorhebung in der Navigation entsprechend über mehrere Seiten beizubehalten.

ago by s109993 (13.1k points)
Ich habe nur 7 Navigationspunkte auf 50 Seiten- deshalb die Nachfrage. Ich schau mir Ihren Code einmal an. Danke für Ihre Antwort (und das sogar an Ostern :) )
ago by SoSci Survey (369k points)
Frohe Ostern ;)

Willkommen im Online-Support von SoSci Survey.

Hier bekommen Sie schnelle und fundierte Antworten von anderen Projektleitern und direkt von SoSci Survey.

→ Eine Frage stellen


Welcome to the SoSci Survey online support.

Simply ask a question to quickly get answers from other professionals, and directly from SoSci Survey.

→ Ask a Question

...