Hi,
ich arbeite gerade an meiner Abschlussarbeit für die IHK, diese Abschlussarbeit beinhaltet eine Designumsetzung (nix wildes) + Implementierung in ein für mich bis dato unbekanntes CMS "SilverStripe" hehe :-D
Die Designumsetzung habe ich schon beendet (mb ist nur n Daten trash Server, nicht wundern :D):
http://montageberthold.de/design/home.html
http://montageberthold.de/design/index.html
Das SilverStripe Tutorial auch bis zu den Forms durchgearbeitet:
http://doc.silverstripe.org/sapphire/en/tutorials/3-forms#creating-the-form
Dann anschließend das obige Design in mein SilverStripe Projekt lokal implementiert (Templates mit Versch. $Layout, Start und Folgeseite). Includes brauchte ich in diesem Design bisher keine, weil z.B. der Breadcrump nur auf der Folgeseite erscheint.
Nun zu meinen offnen Fragen:
1. Kopf und Fuß navigation im backend trennen, wie?!
2. Kontaktbox unterhalb der Suche, wie Pflegbar machen da kein Content
3. "zur Startseite" link statisch auf home leiten oder anders lösen
4. Banner image Pflegbar machen, so dass jede Seite einen eigenen Headbanner haben kann
5. Kontaktformular (muss nicht Pflegbar sein, also dieses Formularmodul das ich in der Demo gesehen habe),
es sollte so schnell und einfach wie möglich impelementiert werden, es muss nicht mal die mail optisch gestaltet werden, da keine
mail jemals über das Formular verschickt wird. Es ist ja nur eine Demoseite, ein Projekt für eine Präsentation bei der IHK, dass wars.
Mailserver gibts nicht (internet connection).
Zudem gäbe es noch "Punkt 6", aber das habe ich eigentlich so halb gelöst. Meine Breadcrump ist ein UL LI Konstrukt, dass heißt das die Standard Breadcrump hier nicht wirklich taugt. Also habe ich mir die Breadcrump in die Page.php überschrieben:
public function Breadcrumbs($maxDepth = 20, $unlinked = false, $stopAtPageType = false, $showHidden = false)
{
$page = $this;
$parts = array();
$i = 0;
while
($page
&& (!$maxDepth || sizeof($parts) < $maxDepth)
&& (!$stopAtPageType || $page->ClassName != $stopAtPageType))
{
if($showHidden || $page->ShowInMenus || ($page->ID == $this->ID))
{
if($page->URLSegment == 'home')
$hasHome = true;
if(($page->ID == $this->ID) || $unlinked)
$parts[] = ("<li class=\"cms_last_node\"><a href=\"" . $page->Link() . "\">" . Convert::raw2xml($page->Title) . "</a></li>");
else
$parts[] = ("<li><a href=\"" . $page->Link() . "\">" . Convert::raw2xml($page->Title) . "</a></li>");
}
$page = $page->Parent;
}
return implode(' ', array_reverse($parts));
}
Was mir bei der breadcrump (der überschriebenen) noch fehlt ist die class="cms_first_node" Klasse, nur ist mir da nicht genau bewusst wie ich das hinbekomme. Da hier der letzte der erste Node ist, so viel habe ich schon herausgefunden :)
Vielen lieben Dank für eure Hilfe
Benny
PS:
Da meine Designumsetzungen von
- IE 5.5 bis IE 9
- FF ab v3 ++
- Safari ab 3.2.1 ++
- Opera ab 9.64++
- Chrome ab v1++
OHNE HACKs identisch aussehen, lege ich auf den xhtml / css output großen Wert, vorallem auf die Kontrolle des Codes was das CMS auspuckt. Bisher habe ich da mit SilverStripe echt nur positive Erfahrungen gemacht, auser einen kleinen Bug im Page Comment System den ich schon reportet habe: http://open.silverstripe.org/ticket/6610
Aus diesem Grunde ist es mir eben noch relativ wichtig die Breadcrump (für mich) schön hinzubekommen.
Was mir leider an SilverStripe nicht so gefällt ist, dass der generierte (ersetzte) Code SPACES im Quellcode aufweißt.
Das ist jetzt nicht sooo schlimm, aber es stört mich halt schon ein wenig :-D :-P
Um es genau zu erklären:
<% if Menu(2) %><ul id="Menu2"><% control Menu(2) %>
<li class="$LinkingMode<% if FirstLast %> $FirstLast<% end_if %>"><a href="$Link">$MenuTitle</a></li><% end_control %>
</ul><% end_if %>
Ergibt keine "Enter spaces" im Quellcode, dies wiederrum schon:
<% if Menu(2) %>
<ul id="Menu2">
<% control Menu(2) %>
<li class="$LinkingMode<% if FirstLast %> $FirstLast<% end_if %>"><a href="$Link">$MenuTitle</a></li>
<% end_control %>
</ul>
<% end_if %>
Und zwar über und nach dem UL, vor bzw. nach dem LI, und nach dem UL.
Eben überall wo man die Templateanweisungen setzt. Diese werden eben ersetzt und leider hinterlässt dies spaces.
Wie gesagt, theoretisch ist das nicht so Wild, aber ältere Browser wie z.B. IE6 haben schon allein durch spaces rumgezickt, und diese spaces dann auch angezeigt bzw. andere Bugs hervorgerufen. Bisher lief mit meinen Tests alles gut, was das Design in SilverStripe angeht aber mögen tu ich diese Spaces eben nicht. Mit kleinen "Tricks" siehe den ersten Block, kann man spaces vermeiden, aber leider funktioniert das nicht überall, z.B. beim Include der CSS Files :-\ (spaces nach oben).

