Ein weiterer Versuch meiner Webseite + eine php Frage!
seufZ
- design/layout
- php
Hallo @ all,
okay, mein nächster Versuch, dabei habe ich mir html5 angeschaut! :o)))
Was sagt ihr dazu, bitte um Kritik und Tipps (die ich auch verstehe!) :o)
Zunächst ist mein Problem, wie ich die Submenüs waagerecht in eine Reihe bekomme (sowohl das Deutsch und Englisch sowie die Zahlenreihe 1 2 3 4 5 6 7)
Float als auch display: inline; scheinen nicht zu funktionieren, ich hab da mehrere Sachen ausprobiert. Was mache ich falsch, wo denke ich da falsch?
Als nächstes ergibt sich da ein php - Problem! Ich möchte ungern ein java-script anwenden, in beiden Fällen.
Die Deutsch - Englisch Auswahl hab ich bisher so mit php gelöst:
<?php
define('IN_TOOL', 1);
include("templates/menboxlinks/vardefs.php");
$lang = (trim($_GET['lang']) != "") ? $_GET['lang'] : LANG_STANDARD;
if (in_array($lang, $lang_array))
{
include("templates/menboxlinks/languagepages/" . $lang . ".php");
$hinweis_text = $language['hinweis'];
}
else
{
include("templates/menboxlinks/languagepages/" . LANG_STANDARD . ".php");
$hinweis_text = $language['sprachauswahlfehler'];
}
?>
dabei sieht vardefs.php im ordner menboxlinks wie folgt aus:
<?php
if ( !defined('IN_TOOL') )
{ die("<strong>Fehlerhafter Aufruf</strong>"); }
$lang_array = array("einleitungstext_de","einleitungstext_en");
define('LANG_STANDARD', "einleitungstext_de");
?
im ordner languagespages dort sehen einleitungstext_de und einleitungstext_en wie folgt aus:
<?php
if ( !defined('IN_TOOL') )
{ die("<strong>Fehlerhafter Aufruf</strong>"); }
$language['hinweis'] = "Deutsche Sprachauswahl";
$language['sprachauswahlfehler'] = "Die von Ihnen gewünschte Sprache steht leider nicht zur Verfügung";
$language['text'] = "Hier steht dann der gewünschte Text in deutsch
Der in Münster lebende Tassilo Sturm schafft in seinen installativen Arbeiten Räume, die er selbst als
Schutzräume bezeichnet, die imaginären Bewohnern eine Zuflucht bieten sollen. Schutz vor einer als
brutal empfundenen Realität. Die heimelig - unheimlichen Zufluchten und Traumstätten sind meist aus
einfachen, jedermann zugänglichen Materialien gebaut, Pappe, Sperrholz. Palletten. Presspappe,
Spanplatten, Zeltstoff.
Seine eigenwillgen, sperrigen Konstruktionen sind konkrete kleine Utopien, die ihre Besucher mitnehmen
auf eine Reise ins Ungewisse. Ungewiss auch deshalb, weil man, so behaglich die Bauten auch wirken,
nie weiß, ob sie sich in der unwirtlichen Umgebung behaupten können.
In ihrer düsteren, schlichten Behaglichkeit wirken die verlassenen Räume, oft rührend, auf bedrückende
Weise anziehend und noch lange beflügeln sie die Phantasie. Wer lebte hier, was geschah an diesem
Ort, wo sind die Bewohner nun?
Oft wirken diese Schutzräume jedoch selbst schutzbedürftig, bedroht in einer immer unübersichtlicher
werdenden hochtechnisierten Welt, über die der einzelne Mensch die Kontrolle zu verlieren droht.
Sturms Refugien - das sind seltsam aus der Zeit gefallene, mit schlichten Materialien sorgsam gebaute
Anderswelten. Sie spiegeln den Wunsch des modernen Menschen wider nach Einfachheit und
Beherrschbarkeit im Dschungel der Zivilisation. Die Erschaffung einer eigenen kleinen Welt –
Sturms Bauten sind trotzige, poetische Gegenentwürfe zur modernen, kalten Perfektion. Es sind nicht
nur Rückzugsorte, nein sie sind auch Symbole der Verweigerung, das Scheitern wird bewusst riskiert.
In der letzten Zeit öffnet Tassilo Sturm seine hermetisch abgekapselten Bauten anderen Künstlern,
Musikern, Schauspielern und Schriftstellern. Der weltabweisende Charakter der Refugien wird dadurch
einerseits gebrochen, doch andererseits findet eine weitere Individualisierung der Gegenwelt statt.
Unvergessliche Geschichten scheinen diesen bockigen, kleinen Trutzburgen zu entspringen, die mal auf
schmutzigen Gewässern schwimmen, mal sich gegen feindliche Müllkippen zu behaupten suchen.
Jeder dieser Bauten hat eine magische Aura, die lange nachwirkt. --- Bettina Mühlbauer";
?>
<?php
if ( !defined('IN_TOOL') )
{ die("<strong>Fehlerhafter Aufruf</strong>"); }
$language['hinweis'] = "Englisch is selected";
$language['sprachauswahlfehler'] = "Sorry, but the selected language isn't available";
$language['text'] = "The text in englisch. The sculptor Tassilo Sturm defines his work as building personal retreats in a hostile<br>world. He intends his creations for people, who want to escape from the brutal reality<br>to a sheltered isolation. The architectural (film) installations, which Sturm refers<br>to as \"residential coffins\", serve as a protective haven, and tell us about social<br>interaction and about failed communication. They tell us about hopes of insular<br>separation without any location, about instability and the permanent failure.<br>So they may be considered as melancholic traps of life.";
?>
So, nun ist mein Problem das ich KEIN index.php$lan=de oder index.php$lan=en aufrufen möchte,
SONDERN, ist es möglich im Menü (a href....) NUR jeweils den Wert "de" oder "en" zuzuweisen dann irgendwie ein "AUFFRISCHEN" der Seite" und der jeweilige deutsche oder englische text wird dargestellt! Wie sähe soetwas aus wenn dies möglich ist?
<li><a href="<?php $page = (trim($_GET['page']) != "de") ? $_GET['page']; + REFRESH ">Deutsch</a></li> <li><a href="<?php $page = (trim($_GET['page']) != "en") ? $_GET['page']; + REFRESH ">Englisch</a></li>
(Das ist bestimmt FALSCH!!!!)
Macht es Sinn oder gibt es eine einfachere Variante die ich jetzt noch nicht sehe!
Genauso wollte ich die Bildauswahl (rechts) machen wen man 1 2 3 4 5 6 7 <klickt>,
Da habe ich es bisher so ähnlich....
<?php
define('IN_TOOL', 1);
include("templates/menboxrechts/vardefs.php");
$page = (trim($_GET['page']) != "") ? $_GET['page'] : PAGE_STANDARD;
if (in_array($page, $page_array))
{
include("templates/menboxrechts/contentpages/" . $page . ".php");
$hinweis_text = $page['hinweis'];
}
else
{
include("templates/menboxrechts/contentpages/" . PAGE_STANDARD . ".php");
$hinweis_text = $page['pageauswahlfehler'];
}
?>
vardef.php hier:
<?php
if ( !defined('IN_TOOL') )
{ die("<strong>Fehlerhafter Aufruf</strong>"); }
$page_array = array("seite1","seite2","seite3","seite4","seite5","seite6","seite7");
define('PAGE_STANDARD', "seite1");
?>
im ordner contentpages:
<?php
if ( !defined('IN_TOOL') )
{ die("<strong>Fehlerhafter Aufruf</strong>"); }
$page['hinweis'] = "Seite 1";
$page['pageauswahlfehler'] = "Die von Ihnen gewünschte Seite steht leider nicht zur Verfügung";
$page['text'] = "Hier steht dann der gewünschte Text der ersten Seite.";
?>
<img src="fotos/20150409_020705_web_klein.jpg" alt="RTFM-Kunsthalle Münster 2015" width="750 height="422"/>
"bunker" @ RTFM - Kunsthalle Münster, 2015
so sehen die weiteren 6 unterseiten aus......
Meine Frage, macht es auf dieser Weise überhaupt Sinn, oder denke ich da viel zu kompliziert.
Wie würdet ihr soetwas lösen?
Würde mich auf Tipps sehr freuen.
Grüsse aus Münster T.
Liebe(r) seufZ,
So, nun ist mein Problem das ich KEIN index.php$lan=de oder index.php$lan=en aufrufen möchte,
das hätte auch wenig Sinn, da bei einem Aufruf das $_GET-Array keinen Schlüssel "lang" enthielte. Für diesen Zweck müsste ein Link am Ende auf "index.php?lang=de" lauten.
Aber: solche Links willst Du eigentlich nicht (meiner bescheidenen Meinung nach). Besser wären Links dieser Art:
Der erste ist ganz klar die deutsche Textversion, der zweite die englische. Damit kann der User "einfach" den passenden Link anklicken und landet in der gewünschten Sprachversion des Artikels.
In diesem Artikel kann dann die jeweils andere Sprachversion unter dem Linktext "English version" bzw. "Artikel in Deutsch" verlinkt werden. Beide Links auf der selben Seite sind entgegen Deiner "Linkbeschreibung" gerade nicht notwendig (der deutsche Link stört z.B. auf der deutschen Seite).
SONDERN, ist es möglich im Menü (a href....) NUR jeweils den Wert "de" oder "en" zuzuweisen dann irgendwie ein "AUFFRISCHEN" der Seite" und der jeweilige deutsche oder englische text wird dargestellt!
Ein Neuladen der Seite mit einem veränderten "lang"-Parameter in der URL? Ja, das ist technisch denk- und lösbar. Das kommt auf Deine PHP-Logik an, wie Du den Link platzierst.
Eine sofortige Änderung des Seiteninhalts ohne Neuladen geht nur mit clientseitiger Technik, also JavaScript. Hier böte es sich an, im JavaScript die jeweils andere(n) verfügbare(n) Version(en) vorzuladen, um den Textinhalt unmittelbar zu ersetzen. Diese setzt aber eine Lösung mit Neuladen voraus, auf die das JavaScript aufsetzt, um den Ladevorgang (oder die Ladevorgänge) im Hintergrund schon abzuarbeiten, bevor der User auf einen Link klickt.
<li><a href="<?php $page = (trim($_GET['page']) != "de") ? $_GET['page']; + REFRESH ">Deutsch</a></li> <li><a href="<?php $page = (trim($_GET['page']) != "en") ? $_GET['page']; + REFRESH ">Englisch</a></li>
Soll das jetzt mit oder ohne Neuladen der Seite gemeint sein? Ich schätze ohne. Allerdings muss im Vorfeld geprüft worden sein, ob der Wert in $_GET['page'] ein gültiger Wert ist. Sonst lässt sich vielleicht Dein PHP-Script aushebeln und eine Sicherheitslücke daraus basteln.
Das sofortige Umschalten (meintest Du das mit "refresh"?) geht wie gesagt nur mit einem JavaScript, welches der User auch zulassen muss (ist Standard), damit diese "Verbesserung" überhaupt greift.
Genauso wollte ich die Bildauswahl (rechts) machen wen man 1 2 3 4 5 6 7 <klickt>,
Da habe ich es bisher so ähnlich.... [...]
$page_array = array("seite1","seite2","seite3","seite4","seite5","seite6","seite7"); define('PAGE_STANDARD', "seite1"); ?>
Diese Lösung finde ich nicht so gut. Aber Du wirst erst in die Thematik hineinwachsen, sodass Du erst mit etwas mehr Erfahrung eine Lösung findest, wie Du Deine Inhalte speichern willst. Eine XML-Datei, oder eine Datenbank sind Alternativen.
<img src="fotos/20150409_020705_web_klein.jpg" alt="RTFM-Kunsthalle Münster 2015" width="750 height="422"/>
Das Vorhalten der Fotos in einem gesonderten Fotos-Verzeichnis finde ich eine gute Idee. Das würde ich in diesem Fall auch so machen.
Liebe Grüße,
Felix Riesterer.
Hallo Felix,
im unteren Beitrag von encoder hatte ich es ja schon mal geschrieben:
Anscheinend ist es wirklich kompliziert, wenn man alles auf "eine starre Seite" packen möchte, wie ich es vorhatte und muss dafür eventuell sogar java-scripte einsetzen.
Grundsätzlich ist bei meinem FF ein Script-Blocker aktiv, man weiss ja nie was im www so keucht und pfleucht. :o) Viele werden es ebenso halten.
Leichter fällt einem das ganze anscheinend, wenn man die Inhalte in mehreren Unterseiten unterteilt, wie von encoder vorgeschlagen.
Eigentlich hatte ich nicht vor eine komplette neue webseite neu aufzusetzen, sondern NUR so eine Art PRÄSENTATION für "interessenten" (und das ist ziemlich eilig!!!)
Ich denke mal, dann werde ich es doch mal ausprobieren. Sowas müsste doch schnell gemacht sein. Schaun wir mal.... :o)
Grüsse T.
Was sagt ihr dazu, bitte um Kritik und Tipps (die ich auch verstehe!) :o)
Ich fang dann mal an :-)
Die gepunkteten Rahmen kommen sicherlich noch weg?
1-7 sind nicht aussagekräftig. Außerdem sollte man sehen wo man gerade ist, also keinen Link mehr von der aktuellen Seite auf sich selbst und keinen Unterstrich.
Die Vita würde ich nicht auf jeder Seite anbieten. Mach dafür lieber eine extra Seite namens "über mich" oder Impressum oder so, darauf dann die Vita und auch die Adresse. Die macht ebenfalls einen seltsamen Eindruck da unten, wenn alles hintereinander in eine Zeile gepackt ist. Auf einer "über mich" Seite ohne ein Skulpturenbild hast du Platz das anständig darzustellen.
Der Text links ist überall der selbe? Dann wirkt er überflüssig und nimmt Platz weg. Auf den Links 1-7 fände ich Erklärungen zu den Bildern sinnvoller. Oder auch nur die Bilder, Für den Text würde ich eine Hauptseite machen die als erstes erscheint. Auf der steht der Text und das Zitat und ein kleineres Bild oder eine Übersicht mit mehreren Bildern. Dann weitere Seiten mit den Bildern zum ansehen, dafür nicht alles andere auch immer wiederholt. Das nimmt nur Platz weg, vor allem auf einem mobilen Gerät.
Generell muss noch etwas mehr Pepp auf die Seite. Überschrift klarer abgrenzen, das Zitat vielleicht nicht ganz so groß und dafür vom Rest abheben (farblich, anderer Hintergrund?). Deutsch/Englisch nicht mitten in der Seite, man erwartet das eher rechts oben und viel unauffälliger.
Hallo, DANKE für Deine Kritikpunkte,
Klaro, die Rahmen kommen letztendlich weg, und die unterste Zeile bleibt auch nicht so, ich wollte nur schon mal ein erforderliches Impressum angeben.
Eigentlich hatte ich nicht vor eine komplette Webseite neu zu schreiben, nicht so schnell in nächster Zeit, Ich brauche lediglich für "mögliche Interessenten" schnell eine grobe Übersicht, was ich schon mal gemacht habe.
Anscheinend ist es wirklich so, wenn man alles auf "eine starre Seite" packen möchte, wie hier, dann wird es kompliziert und muss eventuell sogar java-scripte einsetzen. Leichter fällt einem das ganze anscheinend, wenn man die inhalte in mehreren Unterseiten unterteilt, wie Du es vorgeschlagen hast.
Ich denke mal, dann werde ich soetwas mal doch ausprobieren. Eigentlich ist sowas jetzt schnell gemacht. Schaun wir mal.... :o)
Grüsse T.
@@seufZ
okay, mein nächster Versuch, dabei habe ich mir html5 angeschaut! :o)))
Und warum machst du dafür wieder einen neuen Thread auf?
Was sagt ihr dazu, bitte um Kritik und Tipps (die ich auch verstehe!) :o)
Das Γ-Layout (Inhalte oben und links, viel ungenutzter Platz) ist – ähm – suboptimal. Ansehnlich geht anders.
Und das Bild ragt immer noch raus.
Die gewählte Schriftart mag für Überschriften funktionieren, aber nicht für längeren Text. Wenn Text schlecht lesbar ist, wird er nicht gelesen. Dann bräuchtest du ihn gar nicht erst zu schreiben.
Zunächst ist mein Problem, wie ich die Submenüs waagerecht in eine Reihe bekomme
Mit dem Markup wohl gar nicht. Das Sprachmenü ist zwischen dem Zitat und dem nachfolgenden Text auch fehlplaziert.
(sowohl das Deutsch und Englisch sowie die Zahlenreihe 1 2 3 4 5 6 7)
Wozu „Deutsch“, wenn man sich auf der deutschen Seite befindet? Und dass der Link zur englischen Seite nicht mit „Englisch“ beschriftet sein sollte, sagte ich auch schon.
Und warum ignorierst du eigentlich sämtliche Hinweise, dass der Nutzer die Seite in der in seinem Browser voreingestellten Sprache (wenn vorhanden) ausgeliefert bekommen sollte, solange er nichts anderes wählt?
Warum ist das Zitat auf der deutschen Seite eigentlich nicht übersetzt?
Und was soll das Ratespiel „E-Mail: info ( . ) awg ( ät ) gmx ( . ) net“? Wenn du info.awg@gmx.net
meinst, gehört genau das dorthin. Und zwar verlinkt:
<a href="mailto:info.awg@gmx.net">info.awg@gmx.net</a>
Wenn du Panik vor Spam hast, kannst du die Adressen vor dummen Bots durch Escapen der Zeichen verstecken:
<a href="mailto:info.awg@gmx.net">info.awg@gmx.net</a>
Ansonsten ist die Spam-Abwehr Sache deines Spamfilters.
LLAP 🖖
@@seufZ
okay, mein nächster Versuch, dabei habe ich mir html5 angeschaut! :o)))
Schauen wir uns mal den Quelltext an:
<html>
<html lang="de">
<meta name="description" content="Waldfrieden -- Tassilo Sturm" />
Macht das Sinn? Wenn das in SERPs auftaucht, animiert der Text die Suchenden, auf diese Webseite zu gehen?
Anstatt --
würde ich einen richtigen Gedankenstrich verwenden: –
U+2013 EN DASH oder —
U+2014 EM DASH. Dasselbe im title
.
<script> document.createElement('article'); document.createElement('section'); document.createElement('aside'); document.createElement('hgroup'); document.createElement('nav'); document.createElement('header'); document.createElement('footer'); document.createElement('figure'); document.createElement('figcaption'); </script>
Der Code ist nur für alte IEs notwendig; sollte also in conditional comments stehen.
Außerdem würde ich dafür html5shiv einbinden – da steckt mehr Knowhow hinter.
<div id="wrapper">
Wozu?
<h1 class="ueberschrift">Waldfrieden -- Tassilo Sturm </h1>
Die Klasse ist unsinnig. Das es sich um die Überschrift handelt, geht bereits aus dem Elementtyp h1
hervor.
Zum Gedankenstrich s.o.
<blockquote> “Man does not need society at all, it’s the society that needs man. Society is a forced measure of protection and survival. Unlike a gregarious animal, man must live alone - in nature among animals, plants and in contact with them.” -- <strong>Andrey Tarkovsky</strong> </blockquote>
Quellenangabe nicht in strong
, sondern in cite
oder footer
oder beidem. [HTML5]
Richtigen Gedankenstrich verwenden, im Englischen –
U+2013 EN DASH mit Leerzeichen davor und danach oder —
U+2014 EM DASH ohne Leerzeichen. Für den Autor letzteres. (Im Deutschen als Gedankenstrich nur ersteres, Autor in Klammern.)
<blockquote>
“Man does not need society at all, it’s the society that needs man.
Society is a forced measure of protection and survival. Unlike a
gregarious animal, man must live alone—in nature among animals,
plants and in contact with them.”
<footer>—<cite>Andrey Tarkovsky</cite></footer>
</blockquote>
(Ich hab hier zur besseren Sichtbarkeit die Zeichen-Entity-Referenz —
verwendet.)
<figure> <img src="fotos/20150409_020705_web_klein.jpg" alt="RTFM - Kunsthalle Münster, 2015" width="750 height="422"> <figcaption>"bunker" @ RTFM - Kunsthalle Münster, 2015</figcaption> </figure>
Es macht keinen Sinn, als Alternativtext das anzugeben, was ohnehin als Bildunterschrift dasteht; Screenreader würden denselben Text dann doppelt vorlesen. In dem Fall ist alt=""
anzugeben (nicht das alt
-Attribut ganz weglassen!).
Ergänzung: Wie man am Syntax-Highlighting sieht, fehlt ein schließendes "
.
<footer> <p class="ueberschrift">
Nö, das ist keine Überschrift.
LLAP 🖖
Hallo Gunnar Bittersmann,
als Ergänzung zur alt
-Problematik: https://www.einfach-fuer-alle.de/artikel/bilder-grafiken-barrierefrei/
Bis demnächst
Matthias
@@Gunnar Bittersmann
Oh, was vergessen:
<html lang="de">
<blockquote> “Man does not need society at all, it’s the society that needs man. Society is a forced measure of protection and survival. Unlike a gregarious animal, man must live alone—in nature among animals, plants and in contact with them.” <footer>—<cite>Andrey Tarkovsky</cite></footer> </blockquote>
Wenn als Sprache für die Seite Deutsch angegeben ist, muss ein anderssprachiger Textabschnitt entsprechend gekennzeichnet werden:
<blockquote lang="en">
Warum es diesen anderssprachigen Textabschnitt überhaupt gibt, hatte ich ja schon gefragt.
LLAP 🖖