tag:forum.selfhtml.org,2005:/self Verlinkung ausgehend von Seitennamen – SELFHTML-Forum 2016-11-27T15:31:18Z https://forum.selfhtml.org/self/2016/nov/25/verlinkung-ausgehend-von-seitennamen/1681209?srt=yes#m1681209 VivienSchiller 2016-11-25T18:53:49Z 2016-11-25T18:53:49Z Verlinkung ausgehend von Seitennamen <p>Hallo ihr Lieben,</p> <p>ich sitze grade an einer PHP-Seite und frage mich ob es möglich ist immer zur alphabetisch nächsten Seite zu verlinken.</p> <p>Also angenommen ich befinde mich auf der Seite "index.php" dort soll es einen "Weiter"-Pfeil geben, der auf die alphabetisch nächste Seite im Ordner verlinkt. Also beispielsweise ist die nächste Seite "kontakt.php". Wenn ich in diesem Ordner aber die Datei "jetzt.php" erstelle, soll in der "index.php" OHNE manuelle Änderung des Codes die Datei "jetzt.php" verlinkt sein statt "kontakt.php".</p> <p>Falls dies nicht möglich ist, ginge es mit numerischer Dateibenennung? Und für alphabetisch und numerisch: kann man dies auch umkehren (alphabetisch/numerisch nach oben gehen)?</p> <p>Lieber Grüße und Danke im voraus</p> https://forum.selfhtml.org/self/2016/nov/25/verlinkung-ausgehend-von-seitennamen/1681211?srt=yes#m1681211 Matthias Apsel matthias.apsel@selfhtml.org http://brückentage.info 2016-11-25T19:40:30Z 2016-11-25T19:40:30Z Verlinkung ausgehend von Seitennamen <p>Hallo VivienSchiller,</p> <blockquote> <p>ich sitze grade an einer PHP-Seite und frage mich ob es möglich ist immer zur alphabetisch nächsten Seite zu verlinken.</p> </blockquote> <p>Ja, das ist möglich.</p> <blockquote> <p>Also angenommen ich befinde mich auf der Seite "index.php" dort soll es einen "Weiter"-Pfeil geben, der auf die alphabetisch nächste Seite im Ordner verlinkt. Also beispielsweise ist die nächste Seite "kontakt.php". Wenn ich in diesem Ordner aber die Datei "jetzt.php" erstelle, soll in der "index.php" OHNE manuelle Änderung des Codes die Datei "jetzt.php" verlinkt sein statt "kontakt.php".</p> </blockquote> <p>Falls du eine Liste der Dateien händisch pflegen möchtest, wäre der programmiertechnische Aufwand wesentlich geringer. Wenn nicht musst du zunächst eine solche Liste erstellen und sie alphabetisch ordnen.</p> <p>Dann ermittelst du die Stelle, an der in dieser Liste die aktuelle Datei steht (<em>k</em>) und suchst die Dateien, die an den Stellen <em>k-1</em> und <em>k+1</em> stehen. Du musst dir noch überlegen, was passieren soll, wenn es keinen Vorgänger bzw. Nachfolger gibt. Ggf. musst du diese Fälle separat betrachten.</p> <p>Bis demnächst<br> Matthias</p> <div class="signature">-- <br> Dieses Forum nutzt Markdown. Im <a href="https://wiki.selfhtml.org" rel="nofollow noopener noreferrer">Wiki</a> erhalten Sie <a href="https://wiki.selfhtml.org/wiki/SELFHTML:Forum/Formatierung_der_Beitr%C3%A4ge" rel="nofollow noopener noreferrer">Hilfe bei der Formatierung Ihrer Beiträge</a>. </div> https://forum.selfhtml.org/self/2016/nov/25/verlinkung-ausgehend-von-seitennamen/1681221?srt=yes#m1681221 mermshaus http://www.ermshaus.org/ 2016-11-25T22:03:08Z 2016-11-25T22:03:08Z Verlinkung ausgehend von Seitennamen <p>Kannst du kurz den Anwendungsfall dafür erläutern?</p> https://forum.selfhtml.org/self/2016/nov/25/verlinkung-ausgehend-von-seitennamen/1681240?srt=yes#m1681240 pl http://nkfd.rolfrost.de/ 2016-11-26T14:51:34Z 2016-11-26T14:51:34Z Verlinkung ausgehend von Seitennamen <blockquote> <p>Hallo ihr Lieben,</p> <p>ich sitze grade an einer PHP-Seite und frage mich ob es möglich ist immer zur alphabetisch nächsten Seite zu verlinken.</p> </blockquote> <p>Du brauchst eine Konfiguration wo für jede Seite ein paar Eigenschaften festgelegt sind. So kennt jede Seite z.B. ihren Titel und den Ordner in den sie hineingehört. Damit baut der Code den Link zur nächsten Seite ein.</p> <p>Oder in die WebSite-Konfiguration für die Seite den Nachfolger händisch selbst eintragen z.B. <code>next = \di.html</code> und den Rest erledigt der für die betreffende Seite zuständige Code.</p> <p>Das A und O ist eine Konfiguration. MfG</p> https://forum.selfhtml.org/self/2016/nov/25/verlinkung-ausgehend-von-seitennamen/1681261?srt=yes#m1681261 TS ts-self@online.de https://bitworks.de 2016-11-27T14:19:31Z 2016-11-27T14:21:59Z Der Ketzerkommentar zum Sonntag: Thema "Menu ist überflüssig" <p>Hallo und guten Tag,</p> <p>ich will meinen Senf auch nicht alleine essen und Dir/Euch deshalb etwas davon abgeben. ;-)</p> <p>Diese Unsitte, eine zentralisierte Seitenverwaltung für ein passives Web einzusetzen, halte ich so langsam für Überdenkenswert bzw. abschaffungswürdig:</p> <p><code>http://example.org/index.php?page=721347</code></p> <p>Und wenn man dann noch diese Art der Verlinkung wieder mühevoll zurückentwickelt, um wieder sprechende Links zu haben, dann halte ich das für noch überflüssiger.</p> <p>Sinnvoller würde ich ein System finden, in dem alle Dokumente mit ihrem Zubehör in Verzeichnissen untergebracht werden. Um eine einheitliche Navigation automatisch zu erzeugen, kann man dann einen eigenen kleinen Crawler aufrufen, der alle domaininternen Links und alle externen Links aus den Seiten zusammensammelt. Die überarbeitete Liste kann man dann überall automatisch einbinden, wo sie erwünscht ist. Früher nannte man sowas <code>Sitemap</code>.</p> <p>Und die letzte Frage wie immer zum Schluss: warum muss man für gut gemachte und informative Websites überhaupt ein Menu haben? Das macht den ganzen Auftritt doch eigentlich nur langweilig ;-)</p> <p>Grüße<br> TS</p> <div class="signature">-- <br> es wachse der Freifunk<br> <a href="http://freifunk-oberharz.de" rel="nofollow noopener noreferrer">http://freifunk-oberharz.de</a> </div> https://forum.selfhtml.org/self/2016/nov/25/verlinkung-ausgehend-von-seitennamen/1681219?srt=yes#m1681219 VivienSchiller 2016-11-25T21:19:43Z 2016-11-25T21:19:43Z Verlinkung ausgehend von Seitennamen <p>Hallo Matthias,</p> <p>erstmal danke. Eigentlich recht simpel, aber an einer derartige Lösung hatte ich gar nicht gedacht. Wenn ich es über eine Liste regle erübrigt sich auch die alphabetische Reihenfolge für mich. Trotzdem habe ich ein paar Rückfragen.</p> <blockquote> <p>Dann ermittelst du die Stelle, an der in dieser Liste die aktuelle Datei steht (<em>k</em>) und suchst die Dateien, die an den Stellen <em>k-1</em> und <em>k+1</em> stehen. Du musst dir noch überlegen, was passieren soll, wenn es keinen Vorgänger bzw. Nachfolger gibt. Ggf. musst du diese Fälle separat betrachten.</p> </blockquote> <p>Welches Datei-Format hätte diese Liste idealerweise? Würde eine einfache Textdatei mit allen Dateien untereinander nicht reichen?</p> <p>Liebe Grüße</p> https://forum.selfhtml.org/self/2016/nov/25/verlinkung-ausgehend-von-seitennamen/1681220?srt=yes#m1681220 Matthias Apsel matthias.apsel@selfhtml.org http://brückentage.info 2016-11-25T21:42:03Z 2016-11-25T21:42:03Z Verlinkung ausgehend von Seitennamen <p>Hallo VivienSchiller,</p> <blockquote> <p>Welches Datei-Format hätte diese Liste idealerweise? Würde eine einfache Textdatei mit allen Dateien untereinander nicht reichen?</p> </blockquote> <p>Ob <em>idealerweise</em> weiß ich nicht, aber ich würde ein php-Array erstellen, das bereits alle notwendigen Informationen (url, linktext) enthält.</p> <p>Bis demnächst<br> Matthias</p> <div class="signature">-- <br> Dieses Forum nutzt Markdown. Im <a href="https://wiki.selfhtml.org" rel="nofollow noopener noreferrer">Wiki</a> erhalten Sie <a href="https://wiki.selfhtml.org/wiki/SELFHTML:Forum/Formatierung_der_Beitr%C3%A4ge" rel="nofollow noopener noreferrer">Hilfe bei der Formatierung Ihrer Beiträge</a>. </div> https://forum.selfhtml.org/self/2016/nov/25/verlinkung-ausgehend-von-seitennamen/1681226?srt=yes#m1681226 Gunnar Bittersmann selfhtml@bittersmann.de http://bittersmann.de 2016-11-26T03:05:56Z 2016-11-26T10:04:25Z Verlinkung ausgehend von Seitennamen <p>@@VivienSchiller</p> <blockquote> <p>Welches Datei-Format hätte diese Liste idealerweise?</p> </blockquote> <p>Ein bereits weit verbreitetes, universell einsetzbares: <a href="http://json.org/json-de.html" rel="nofollow noopener noreferrer">JSON</a>.</p> <pre><code class="block language-json"><span class="token punctuation">[</span> <span class="token punctuation">[</span><span class="token string">"/preamble"</span><span class="token punctuation">,</span> <span class="token string">"Präambel"</span><span class="token punctuation">]</span><span class="token punctuation">,</span> <span class="token punctuation">[</span><span class="token string">"/article1"</span><span class="token punctuation">,</span> <span class="token string">"Artikel 1"</span><span class="token punctuation">]</span><span class="token punctuation">,</span> <span class="token punctuation">[</span><span class="token string">"/article2"</span><span class="token punctuation">,</span> <span class="token string">"Artikel 2"</span><span class="token punctuation">]</span><span class="token punctuation">,</span> ⋮ <span class="token punctuation">[</span><span class="token string">"/article30"</span><span class="token punctuation">,</span> <span class="token string">"Artikel 30"</span><span class="token punctuation">]</span> <span class="token punctuation">]</span> </code></pre> <p>oder (noch besser):</p> <pre><code class="block language-json"><span class="token punctuation">[</span> <span class="token punctuation">{</span> <span class="token property">"url"</span><span class="token operator">:</span> <span class="token string">"/preamble"</span><span class="token punctuation">,</span> <span class="token property">"title"</span><span class="token operator">:</span> <span class="token string">"Präambel"</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">{</span> <span class="token property">"url"</span><span class="token operator">:</span> <span class="token string">"/article1"</span><span class="token punctuation">,</span> <span class="token property">"title"</span><span class="token operator">:</span> <span class="token string">"Artikel 1"</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">{</span> <span class="token property">"url"</span><span class="token operator">:</span> <span class="token string">"/article2"</span><span class="token punctuation">,</span> <span class="token property">"title"</span><span class="token operator">:</span> <span class="token string">"Artikel 2"</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> ⋮ <span class="token punctuation">{</span> <span class="token property">"url"</span><span class="token operator">:</span> <span class="token string">"/article30"</span><span class="token punctuation">,</span> <span class="token property">"title"</span><span class="token operator">:</span> <span class="token string">"Artikel 30"</span> <span class="token punctuation">}</span> <span class="token punctuation">]</span> </code></pre> <blockquote> <p>Würde eine einfache Textdatei mit allen Dateien untereinander nicht reichen?</p> </blockquote> <p>Wenn du mit „einfache Textdatei“ sowas meintest, ja. Aber die Datenstruktur (Zuordnung URL – Seitentitel) muss das Format abbilden.</p> <p>LLAP </p> <div class="signature">-- <br> <em>„Wenn du eine weise Antwort verlangst, musst du vernünftig fragen.“</em> —Johann Wolfgang von Goethe </div> https://forum.selfhtml.org/self/2016/nov/25/verlinkung-ausgehend-von-seitennamen/1681232?srt=yes#m1681232 mermshaus http://www.ermshaus.org/ 2016-11-26T09:32:37Z 2016-11-26T09:33:27Z Verlinkung ausgehend von Seitennamen <p>@VivienSchiller @Matthias Apsel @Gunnar Bittersmann</p> <p>Ich habe mal die beiden vorgeschlagenen Varianten zur Demonstration/Inspiration zusammengestöpselt.</p> <p>Alle Dateien liegen im gleichen Verzeichnis.</p> <p><code>index.php</code>, <code>kontakt.php</code>, <code>journal.php</code> und dergleichen:</p> <pre><code class="block language-php"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>h1</span><span class="token punctuation">></span></span>index.php<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>h1</span><span class="token punctuation">></span></span> <span class="token php language-php"><span class="token delimiter important"><?php</span> <span class="token keyword">require</span> <span class="token constant">__DIR__</span> <span class="token operator">.</span> <span class="token string single-quoted-string">'/_navigation.php'</span><span class="token punctuation">;</span> <span class="token keyword">echo</span> <span class="token function">createNavigation</span><span class="token punctuation">(</span><span class="token function">basename</span><span class="token punctuation">(</span><span class="token constant">__FILE__</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token delimiter important">?></span></span> </code></pre> <p><code>_navigation.php</code>:</p> <pre><code class="block language-php"><span class="token php language-php"><span class="token delimiter important"><?php</span> <span class="token comment">/** * @param $activeFile * @return string */</span> <span class="token keyword">function</span> <span class="token function-definition function">createNavigation</span><span class="token punctuation">(</span><span class="token variable">$activeFile</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token comment">// Hier je nach gewünschtem Mechanismus eine Zeile auskommentieren</span> <span class="token comment">//$list = _generateListFromDirectory(__DIR__);</span> <span class="token variable">$list</span> <span class="token operator">=</span> <span class="token function">_generateListFromFile</span><span class="token punctuation">(</span><span class="token constant">__DIR__</span> <span class="token operator">.</span> <span class="token string single-quoted-string">'/list.json'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">return</span> <span class="token function">_createNavigationFromList</span><span class="token punctuation">(</span><span class="token variable">$activeFile</span><span class="token punctuation">,</span> <span class="token variable">$list</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token comment">/** * @param $file * @return array */</span> <span class="token keyword">function</span> <span class="token function-definition function">_generateListFromFile</span><span class="token punctuation">(</span><span class="token variable">$file</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token variable">$ret</span> <span class="token operator">=</span> <span class="token function">json_decode</span><span class="token punctuation">(</span><span class="token function">file_get_contents</span><span class="token punctuation">(</span><span class="token variable">$file</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token constant boolean">true</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">return</span> <span class="token punctuation">(</span><span class="token function">is_array</span><span class="token punctuation">(</span><span class="token variable">$ret</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token operator">?</span> <span class="token variable">$ret</span> <span class="token punctuation">:</span> <span class="token keyword">array</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token comment">/** * @param $dir * @return array */</span> <span class="token keyword">function</span> <span class="token function-definition function">_generateListFromDirectory</span><span class="token punctuation">(</span><span class="token variable">$dir</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token comment">// Liste aller *.php-Dateien im Verzeichnis ermitteln. Einträge, die mit</span> <span class="token comment">// "_" beginnen, ignorieren</span> <span class="token variable">$tmp</span> <span class="token operator">=</span> <span class="token function">glob</span><span class="token punctuation">(</span><span class="token variable">$dir</span> <span class="token operator">.</span> <span class="token string single-quoted-string">'/*.php'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$files</span> <span class="token operator">=</span> <span class="token keyword">array</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">foreach</span> <span class="token punctuation">(</span><span class="token variable">$tmp</span> <span class="token keyword">as</span> <span class="token variable">$item</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token variable">$basename</span> <span class="token operator">=</span> <span class="token function">basename</span><span class="token punctuation">(</span><span class="token variable">$item</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token string single-quoted-string">'_'</span> <span class="token operator">===</span> <span class="token function">substr</span><span class="token punctuation">(</span><span class="token variable">$basename</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">continue</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token variable">$files</span><span class="token punctuation">[</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token keyword">array</span><span class="token punctuation">(</span> <span class="token string single-quoted-string">'url'</span> <span class="token operator">=></span> <span class="token variable">$basename</span><span class="token punctuation">,</span> <span class="token string single-quoted-string">'title'</span> <span class="token operator">=></span> <span class="token function">pathinfo</span><span class="token punctuation">(</span><span class="token variable">$basename</span><span class="token punctuation">,</span> <span class="token constant">PATHINFO_FILENAME</span><span class="token punctuation">)</span> <span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token keyword">return</span> <span class="token variable">$files</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token comment">/** * @param $file * @param array $list * @return string */</span> <span class="token keyword">function</span> <span class="token function-definition function">_createNavigationFromList</span><span class="token punctuation">(</span><span class="token variable">$file</span><span class="token punctuation">,</span> <span class="token keyword type-hint">array</span> <span class="token variable">$list</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token comment">// Wenn keine Einträge in Liste, Rückgabe</span> <span class="token variable">$count</span> <span class="token operator">=</span> <span class="token function">count</span><span class="token punctuation">(</span><span class="token variable">$list</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token number">0</span> <span class="token operator">===</span> <span class="token variable">$count</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">return</span> <span class="token string single-quoted-string">'<p>Keine Einträge in Liste.</p>'</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token comment">// Wenn aktive Datei nicht in Liste, Rückgabe</span> <span class="token variable">$pos</span> <span class="token operator">=</span> <span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">;</span> <span class="token keyword">foreach</span> <span class="token punctuation">(</span><span class="token variable">$list</span> <span class="token keyword">as</span> <span class="token variable">$index</span> <span class="token operator">=></span> <span class="token variable">$item</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token variable">$file</span> <span class="token operator">===</span> <span class="token variable">$item</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'url'</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token variable">$pos</span> <span class="token operator">=</span> <span class="token variable">$index</span><span class="token punctuation">;</span> <span class="token keyword">break</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token operator">-</span><span class="token number">1</span> <span class="token operator">===</span> <span class="token variable">$pos</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">return</span> <span class="token string single-quoted-string">'<p>Datei nicht in Liste.</p>'</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token comment">// Wenn aktive Datei einzige in Liste, Rückgabe</span> <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token number">1</span> <span class="token operator">===</span> <span class="token variable">$count</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">return</span> <span class="token string single-quoted-string">'<p>Keine weiteren Dateien in Liste.</p>'</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token comment">// Vorherige/nächste Datei in Liste ermitteln (-1, wenn letzte/erste)</span> <span class="token variable">$prev</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token variable">$pos</span> <span class="token operator">></span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token operator">?</span> <span class="token variable">$list</span><span class="token punctuation">[</span><span class="token variable">$pos</span> <span class="token operator">-</span> <span class="token number">1</span><span class="token punctuation">]</span> <span class="token punctuation">:</span> <span class="token keyword">array</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$next</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token variable">$pos</span> <span class="token operator"><</span> <span class="token variable">$count</span> <span class="token operator">-</span> <span class="token number">1</span><span class="token punctuation">)</span> <span class="token operator">?</span> <span class="token variable">$list</span><span class="token punctuation">[</span><span class="token variable">$pos</span> <span class="token operator">+</span> <span class="token number">1</span><span class="token punctuation">]</span> <span class="token punctuation">:</span> <span class="token keyword">array</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// HTML-Ausgabe der Navigation zusammenbauen (exaktes HTML-Markup und CSS</span> <span class="token comment">// und dergleichen bitte nicht auf die Goldwaage legen)</span> <span class="token variable">$escape</span> <span class="token operator">=</span> <span class="token keyword">function</span> <span class="token punctuation">(</span><span class="token variable">$s</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">return</span> <span class="token function">htmlspecialchars</span><span class="token punctuation">(</span><span class="token variable">$s</span><span class="token punctuation">,</span> <span class="token constant">ENT_QUOTES</span><span class="token punctuation">,</span> <span class="token string single-quoted-string">'UTF-8'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span><span class="token punctuation">;</span> <span class="token variable">$ret</span> <span class="token operator">=</span> <span class="token string single-quoted-string">''</span><span class="token punctuation">;</span> <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token operator">!</span><span class="token keyword">empty</span><span class="token punctuation">(</span><span class="token variable">$prev</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token variable">$ret</span> <span class="token operator">.=</span> <span class="token function">sprintf</span><span class="token punctuation">(</span> <span class="token string single-quoted-string">'<a class="nav nav-prev" href="%1$s" title="Zurück zu: %2$s">&larr; %2$s</a>'</span><span class="token punctuation">,</span> <span class="token variable">$escape</span><span class="token punctuation">(</span><span class="token variable">$prev</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'url'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token variable">$escape</span><span class="token punctuation">(</span><span class="token variable">$prev</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'title'</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token operator">!</span><span class="token keyword">empty</span><span class="token punctuation">(</span><span class="token variable">$next</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token variable">$ret</span> <span class="token operator">.=</span> <span class="token function">sprintf</span><span class="token punctuation">(</span> <span class="token string single-quoted-string">'<a class="nav nav-next" href="%1$s" title="Weiter nach: %2$s">%2$s &rarr;</a>'</span><span class="token punctuation">,</span> <span class="token variable">$escape</span><span class="token punctuation">(</span><span class="token variable">$next</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'url'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token variable">$escape</span><span class="token punctuation">(</span><span class="token variable">$next</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'title'</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token variable">$ret</span> <span class="token operator">=</span> <span class="token string single-quoted-string">'<p>'</span> <span class="token operator">.</span> <span class="token variable">$ret</span> <span class="token operator">.</span> <span class="token string single-quoted-string">'</p>'</span><span class="token punctuation">;</span> <span class="token variable">$styles</span> <span class="token operator">=</span> <span class="token string nowdoc-string"><span class="token delimiter symbol"><span class="token punctuation"><<<'</span>CSS<span class="token punctuation">'</span></span> .nav { padding: 5px; margin: 5px; text-decoration: none; border: 1px solid #ccc; border-radius: 3px; } <span class="token delimiter symbol">CSS<span class="token punctuation">;</span></span></span> <span class="token variable">$ret</span> <span class="token operator">.=</span> <span class="token string single-quoted-string">'<style>'</span> <span class="token operator">.</span> <span class="token variable">$styles</span> <span class="token operator">.</span> <span class="token string single-quoted-string">'</style>'</span><span class="token punctuation">;</span> <span class="token keyword">return</span> <span class="token variable">$ret</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> </span></code></pre> <p><code>list.json</code>:</p> <pre><code class="block language-json"><span class="token punctuation">[</span> <span class="token punctuation">{</span> <span class="token property">"url"</span><span class="token operator">:</span> <span class="token string">"journal.php"</span><span class="token punctuation">,</span> <span class="token property">"title"</span><span class="token operator">:</span> <span class="token string">"Journal"</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">{</span> <span class="token property">"url"</span><span class="token operator">:</span> <span class="token string">"foo.php"</span><span class="token punctuation">,</span> <span class="token property">"title"</span><span class="token operator">:</span> <span class="token string">"Foo"</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">{</span> <span class="token property">"url"</span><span class="token operator">:</span> <span class="token string">"kontakt.php"</span><span class="token punctuation">,</span> <span class="token property">"title"</span><span class="token operator">:</span> <span class="token string">"Kontakt"</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">{</span> <span class="token property">"url"</span><span class="token operator">:</span> <span class="token string">"index.php"</span><span class="token punctuation">,</span> <span class="token property">"title"</span><span class="token operator">:</span> <span class="token string">"Index"</span> <span class="token punctuation">}</span> <span class="token punctuation">]</span> </code></pre> https://forum.selfhtml.org/self/2016/nov/25/verlinkung-ausgehend-von-seitennamen/1681225?srt=yes#m1681225 Gunnar Bittersmann selfhtml@bittersmann.de http://bittersmann.de 2016-11-26T02:48:10Z 2016-11-26T03:10:07Z Verlinkung ausgehend von Seitennamen <p>@@mermshaus</p> <blockquote> <p>Kannst du kurz den Anwendungsfall dafür erläutern?</p> </blockquote> <p>Lineares Navigieren durch die Information, d.h. Lesen des Inhalts der Website von Anfang bis Ende.</p> <p>So wie es früher™ in der SELFHTML-Doku war: jede Seite<sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup> hatte einen Link zur vorigen und zur nächsten Seite.</p> <p>LLAP </p> <div class="signature">-- <br> <em>„Wenn du eine weise Antwort verlangst, musst du vernünftig fragen.“</em> —Johann Wolfgang von Goethe </div> <hr class="footnotes-sep"> <section class="footnotes"> <ol class="footnotes-list"> <li id="fn1" class="footnote-item"><p>außer die erste bzw. letzte <a href="#fnref1" class="footnote-backref">↩︎</a></p> </li> </ol> </section> https://forum.selfhtml.org/self/2016/nov/25/verlinkung-ausgehend-von-seitennamen/1681230?srt=yes#m1681230 mermshaus http://www.ermshaus.org/ 2016-11-26T07:50:22Z 2016-11-26T07:57:29Z Verlinkung ausgehend von Seitennamen <p>@VivienSchiller @Gunnar Bittersmann</p> <p>Ich frage, weil es beispielsweise in so einem Fall (sofern der vorliegt) wahrscheinlich sinnvoller ist, über einen Front-Controller-Ansatz zu gehen (z. B. <code>index.php</code> mit <code>?page=<filename></code><sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup>) und die Navigation somit an einer zentralen Stelle im Layout zu berechnen/erstellen und dann jeweils den konkreten Content zusätzlich zu laden.</p> <p>Umgekehrt müsste man redundant in jede Inhaltsseite so was wie…</p> <pre><code class="block language-php"><span class="token php language-php"><span class="token delimiter important"><?php</span> <span class="token keyword">require</span> <span class="token constant">__DIR__</span> <span class="token operator">.</span> <span class="token string single-quoted-string">'/../lib/navigation.php'</span><span class="token punctuation">;</span> <span class="token keyword">echo</span> <span class="token function">generateNavigation</span><span class="token punctuation">(</span><span class="token constant">__FILE__</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token delimiter important">?></span></span> </code></pre> <p>einfügen. Das wird je nach Anzahl der Dateien oder je nachdem, was man sonst noch so vorhaben könnte, gern mal unpraktisch beziehungsweise fehleranfällig, weil der Code gegebenenfalls an mehreren Stellen verändert werden muss.</p> <hr class="footnotes-sep"> <section class="footnotes"> <ol class="footnotes-list"> <li id="fn1" class="footnote-item"><p>Die URLs können mit Rewriting auch anders aussehen. <a href="#fnref1" class="footnote-backref">↩︎</a></p> </li> </ol> </section> https://forum.selfhtml.org/self/2016/nov/25/verlinkung-ausgehend-von-seitennamen/1681233?srt=yes#m1681233 mermshaus http://www.ermshaus.org/ 2016-11-26T10:01:38Z 2016-11-26T10:01:58Z Verlinkung ausgehend von Seitennamen <p>Mini-Korrektur:</p> <blockquote> <pre><code class="block language-php"><span class="token comment">// Vorherige/nächste Datei in Liste ermitteln (-1, wenn letzte/erste)</span> </code></pre> </blockquote> <p>Muss „leer“ heißen, nicht „-1“.</p> <p>(Die „-1“ war noch von vorher, als die Liste nur Dateinamen enthielt, keine Arrays.)</p> https://forum.selfhtml.org/self/2016/nov/25/verlinkung-ausgehend-von-seitennamen/1681234?srt=yes#m1681234 VivienSchiller 2016-11-26T12:27:38Z 2016-11-26T12:28:14Z Verlinkung ausgehend von Seitennamen <blockquote> <p>Ich habe mal die beiden vorgeschlagenen Varianten zur Demonstration/Inspiration zusammengestöpselt.</p> </blockquote> <p>Vielen Dank erstmal für die Mühe! Ich habe diesen Code jetzt übernommen und stoße auf folgendes Problem:</p> <blockquote> <p>Alle Dateien liegen im gleichen Verzeichnis.</p> <p><code>index.php</code>, <code>kontakt.php</code>, <code>journal.php</code> und dergleichen: [...]</p> </blockquote> <p>Tun sie auch bei mir.</p> <blockquote> <p><code>list.json</code>:</p> </blockquote> <p>Sieht bei mir derzeit so aus:</p> <pre><code class="block language-json"><span class="token punctuation">[</span> <span class="token punctuation">{</span> <span class="token property">"url"</span><span class="token operator">:</span> <span class="token string">"index.php"</span><span class="token punctuation">,</span> <span class="token property">"title"</span><span class="token operator">:</span> <span class="token string">"Startseite"</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">{</span> <span class="token property">"url"</span><span class="token operator">:</span> <span class="token string">"inhalt.php"</span><span class="token punctuation">,</span> <span class="token property">"title"</span><span class="token operator">:</span> <span class="token string">"Inhaltsverzeichnis"</span> <span class="token punctuation">}</span> <span class="token punctuation">]</span> </code></pre> <p>Die Navigation gibt mir am Ende aber aus: "Keine Einträge in Liste."</p> <p>Woran liegt das?</p> https://forum.selfhtml.org/self/2016/nov/25/verlinkung-ausgehend-von-seitennamen/1681235?srt=yes#m1681235 mermshaus http://www.ermshaus.org/ 2016-11-26T13:06:46Z 2016-11-26T13:06:46Z Verlinkung ausgehend von Seitennamen <p>Kann ich spontan leider nicht beantworten. Versuch es mal mit Debugging:</p> <ul> <li><a href="https://php-de.github.io/jumpto/faq/#debugging" rel="nofollow noopener noreferrer">https://php-de.github.io/jumpto/faq/#debugging</a></li> </ul> https://forum.selfhtml.org/self/2016/nov/25/verlinkung-ausgehend-von-seitennamen/1681264?srt=yes#m1681264 pl http://nkfd.rolfrost.de/ 2016-11-27T14:57:25Z 2016-11-27T14:57:25Z Der Ketzerkommentar zum Sonntag: Thema "Menu ist überflüssig" <blockquote> <p>Sinnvoller würde ich ein System finden, in dem alle Dokumente mit ihrem Zubehör in Verzeichnissen untergebracht werden. Um eine einheitliche Navigation automatisch zu erzeugen, kann man dann einen eigenen kleinen Crawler aufrufen, der alle domaininternen Links und alle externen Links aus den Seiten zusammensammelt. Die überarbeitete Liste kann man dann überall automatisch einbinden, wo sie erwünscht ist. Früher nannte man sowas <code>Sitemap</code>.</p> </blockquote> <p>Noch besser sind virtuelle Ordner, weil: Wird eine Seite in einen anderen vituellen Ordner verschoben, bleibt der URL der Seite unverändert. Das handhabe ich schon seit Jahren so und selbstverständlich steht und fällt sowas mit einer Konfiguration -- die für den wahlfreien Zugriff komplett im Hauptspeicher liegt. Man könnte auch sagen: Die Konfiguration ist die Projektverwaltung: Ein Blick da rein zeigt dem Verwalter wo seine Seiten eingeordnet sind. Und ein <a href="http://rolfrost.de/sitemap.xml" rel="nofollow noopener noreferrer">sitemap</a> da raus zu ziehen ist dann auch kein Thema mehr sondern nur noch eine Frage der Konfiguration:</p> <pre><code class="block language-ini"><span class="token section"><span class="token punctuation">[</span><span class="token section-name selector">/sitemap.xml</span><span class="token punctuation">]</span></span> <span class="token key attr-name">class</span><span class="token punctuation">=</span><span class="token value attr-value">Sitemap</span> <span class="token key attr-name">no_sitemap</span><span class="token punctuation">=</span><span class="token value attr-value">1</span> </code></pre> <p>Was zu tun ist, das bischen XML erzeugen, das erledigt die an den URL gebundene Klasse. Und selbstverständlich will auch ein Suchmaschinenbetreiber ein menschenlesbare Menu bzw. eine griffige Navigation auf jeder Seite vorfinden.</p> <p>MfG, schönen Sonntag.</p> https://forum.selfhtml.org/self/2016/nov/25/verlinkung-ausgehend-von-seitennamen/1681269?srt=yes#m1681269 Mitleser 2016-11-27T15:31:18Z 2016-11-27T15:31:18Z Der Ketzerkommentar zum Sonntag: Thema "Menu ist überflüssig" <blockquote> <p>Diese Unsitte, eine zentralisierte Seitenverwaltung für ein passives Web einzusetzen, halte ich so langsam für Überdenkenswert bzw. abschaffungswürdig:</p> </blockquote> <p>"passives Web"? Was das?</p> <blockquote> <p><code>http://example.org/index.php?page=721347</code></p> <p>Und wenn man dann noch diese Art der Verlinkung wieder mühevoll zurückentwickelt, um wieder sprechende Links zu haben, dann halte ich das für noch überflüssiger.</p> </blockquote> <p>Häh?</p> <blockquote> <p>Sinnvoller würde ich ein System finden, in dem alle Dokumente mit ihrem Zubehör in Verzeichnissen untergebracht werden.</p> </blockquote> <p>Im Dateisystem? Für ein Projekt mit 10 Seiten vielleicht, aber bei was "Richtigem"???</p> <blockquote> <p>Und die letzte Frage wie immer zum Schluss: warum muss man für gut gemachte und informative Websites überhaupt ein Menu haben? Das macht den ganzen Auftritt doch eigentlich nur langweilig ;-)</p> </blockquote> <p>Ich muss mich wiederholen: Häh?</p>