APFel-SMS - SiteManagementSystem Erweiterung

Dieser Bereich dient dazu, eure Tricks und Erweiterungen vorzustellen, damit diese auch andere Anwender nutzen können. // This area can be used to publish your tricks and extensions to the APF to be used by other developers.
Benutzeravatar
dr.e.
Administrator
Beiträge: 4533
Registriert: 04.11.2007, 16:13:53

Re: APFel-SMS - SiteManagementSystem Erweiterung

Beitrag von dr.e. » 16.08.2012, 22:26:51

:? Wie konnt ich da jetzt schon was verdrehen?
Ich meinte dave's Checkins! Du hast nix kaputt gemacht. ;)
Viele Grüße,
Christian

Benutzeravatar
dr.e.
Administrator
Beiträge: 4533
Registriert: 04.11.2007, 16:13:53

Re: APFel-SMS - SiteManagementSystem Erweiterung

Beitrag von dr.e. » 17.08.2012, 18:59:00

Hallo Jan,

anbei mein Feedback. Es fällt nicht besonders lang aus, da es nicht viel anzumerken gibt. :)
  • SMSManager::getVersion() überschreibt APFObject::getVersion(). Daher kann mit dieser Methode nicht mehr die Version
    des APF bezogen werden. Ich würde hierzu eine eigene Methode definieren.
  • Das Attribut "file" bei Document-Controllern wird nicht mehr unterstützt.
  • Viele Methoden sind mit

    Code: Alles auswählen

    function foobar(){...} 
    deklariert. Sauberer wäre ein public|protected|private davor.
Viele Grüße,
Christian

Benutzeravatar
jwlighting
Beiträge: 466
Registriert: 14.07.2010, 14:23:58
Wohnort: LK Oldenburg
Kontaktdaten:

Re: APFel-SMS - SiteManagementSystem Erweiterung

Beitrag von jwlighting » 17.08.2012, 21:22:08

Es fällt nicht besonders lang aus, da es nicht viel anzumerken gibt.
Wow. Das freut mich. :oops: ;) Dafür habe ich schon wieder Fragen, weil ich eine Problemstellung gefunden habe, die sich anscheinend momentan nicht lösen lässt.
Aber erstmal zu deinem Feedback.
SMSManager::getVersion() überschreibt APFObject::getVersion()
Oh, sorry - das war mir einfach nicht bewusst. Wird umbenannt in getSMSVersion().
Das Attribut "file" bei Document-Controllern wird nicht mehr unterstützt.
Ist wohl an mir vorbei gegangen. Also so?:

Code: Alles auswählen

<@controller namespace="extensions::apfelsms::pres::documentcontroller" class="SMSNavTaglibController" @>
Sauberer wäre ein public|protected|private davor.
8-) Ich guck mal, wie ich PhpStorm beibringen kann, das bei den generierten Methoden zu machen und ob ich das im Code Style einstellen kann. Sollte sich auch machen lassen ;)


sammy8806 (ein langjähriger Freund) hat das APFelSMS auch bereits zum testen bekommen, und genau soetwas suchte er zu dem Zeitpunkt gerade. Also das" Faust-auf-Auge-Prinzip".
Da er verschiedene Navigationen hat und dabei ganze Bäume mehrfach darstellen will, hat er sich einen SMSSymlinkPageDec geschrieben, der analog zu den symbolischen Links in einem Linux-FS arbeiten soll.
Das Problem dabei ist, das man so zwar an die Stelle im Baum springen kann, beim nächsten request aber nicht mehr weiß, aus welchem Baum man nun auf diese Seite gekommen ist.

Mal als Beispiel:
/foo/bar/blubb/ ist ein Symlink auf /foo/bla/blubber/. Wenn man nun aus /foo/bla blubb betritt, sieht man den Baum in /for/bla/blubber. Der Pfad ist aber trotzdem /foo/bar/blubb, man landet also mit einem "cd .." auch wieder in /foo/bar und nicht in /foo/bla.

Da das APFelSMS immer nur die aktuelle Page-ID kennt, und nicht den Pfad dorthin, lassen sich solche Symlinks nicht realisieren, und der komplette Baum muss kopiert und jeder Knoten über einen SMSAliasPageDec "verlinkt" werden.

Die einzige sinnvolle Lösung wäre in meinen Augen, das APFelSMS komplett auf Pfade umzustellen, macht die Sache aber unnötig kompiziert und ist nicht so Toll für die SEO.
Ich habe schon überlegt, ob man den Pfad in der Session ablegt, aber das funktioniert nur mit extrem viel Aufwand und recht unzuverlässig, bzw. bei direkten Zugriffen/Aufrufen aus Links gar nicht mehr.

Irgendeine Lösungsidee?

LG :)
Jan

Menschen irren - Politiker sind Menschen.
Für den Norddeutschen ist 1kW = 2 Pfund Schlick.

Benutzeravatar
dr.e.
Administrator
Beiträge: 4533
Registriert: 04.11.2007, 16:13:53

Re: APFel-SMS - SiteManagementSystem Erweiterung

Beitrag von dr.e. » 18.08.2012, 15:45:55

Hi Jan,
Ist wohl an mir vorbei gegangen. Also so?:
Jep.
8-) Ich guck mal, wie ich PhpStorm beibringen kann, das bei den generierten Methoden zu machen und ob ich das im Code Style einstellen kann. Sollte sich auch machen lassen ;)
Das ist ein Nachteil an PHPStorm. Bei den Interfaces braucht es ja kein public, jedoch generiert PHPStorm das nicht dazu. Aus diesem Grund bin ich dazu übergegangen auch bei Interfaces explizit ein public zu spendieren.
sammy8806 (ein langjähriger Freund) hat das APFelSMS auch bereits zum testen bekommen, und genau soetwas suchte er zu dem Zeitpunkt gerade. Also das" Faust-auf-Auge-Prinzip".
Freut mich! :)
Irgendeine Lösungsidee?
Dieses Thema haben wir in einem der letzten Relaunch-Projekte ebenfalls diskutiert und befunden, dass die Lösung über einen eindeutigen Key alleine zu komplex ist. Lösung war dort, dass der Pfad inkl. Symlink-Slug eindeutig sein muss. Beispiel: /foo/bar/<symlink-slug> lässt sich eindeutig auflösen, da /foo/bar auf die Ursprungsstelle in der Navigation zeigt. <symlink-slug> alleine liefert dabei keine Eindeutigkeit. Ist das für euch ein gangbarer Weg?
[..] und ist nicht so Toll für die SEO.
Das ist nicht unbedingt richtig. Sofern die Hierarchie trotzdem flach (<3) bleibt, ist das für Suchmaschinen kein Problem. Die problematische Komponente ist hier eher der Tippaufwand für einen Besucher, der den Slogan auf einem Plakat liest.
Viele Grüße,
Christian

Benutzeravatar
jwlighting
Beiträge: 466
Registriert: 14.07.2010, 14:23:58
Wohnort: LK Oldenburg
Kontaktdaten:

Re: APFel-SMS - SiteManagementSystem Erweiterung

Beitrag von jwlighting » 18.08.2012, 17:41:37

Aus diesem Grund bin ich dazu übergegangen auch bei Interfaces explizit ein public zu spendieren.
Ah, Ok. Das werde ich mal ausprobieren. Du meinst, wenn ich im Interface ein public verwende, wird das auch bei den generierten Methodenrümpfen angewandt?
Dieses Thema haben wir in einem der letzten Relaunch-Projekte ebenfalls diskutiert und befunden, dass die Lösung über einen eindeutigen Key alleine zu komplex ist. Lösung war dort, dass der Pfad inkl. Symlink-Slug eindeutig sein muss. Beispiel: /foo/bar/<symlink-slug> lässt sich eindeutig auflösen, da /foo/bar auf die Ursprungsstelle in der Navigation zeigt. <symlink-slug> alleine liefert dabei keine Eindeutigkeit. Ist das für euch ein gangbarer Weg?
Hmm. Ich verstehe zwar nicht 100%ig was für dich ein Slug ist (:D), aber wir scheinen ja beide zum Ergebniss zu kommen, dass eine komplette Pfadangabe nötig ist, oder?

Dafür müsste aber der Mapper und der Manager daraufhin angepasst werden, mit den Pfaden umzugehen. Diese ohne Rewriting in der URL darzustellen ist die nächste Herausforderung (und Anforderung, es soll ja ein beliebiges URL-Layout anwendbar sein). Es ist dann notwendig, die Templates zu den Seiten ebenfalls in Ordnern zu sortieren (da im Normalfall PID = Template-Name). Damit braucht man auch im Filesystem der Templates Symlinks, und die anzulegen ist bei Webhosting mit reinem FTP-Zugang unnötig schwer zu pflegen. (Ich stelle mir gerade Windows-Server-Systeme vor :shock: :? :P )

Vielleicht "schlüssel" ich das Problem mal tiefer auf.
Häufig möchte man eigene Navigationen im Footer oder sonstwo, in der ausgewählte Seiten verlinkt werden. Um die darzustellen, legt man eine (versteckte) Unterseite an, und bindet die gewünschten Seiten über einen Alias-PageDec ein. Zum Beispiel so:

Code: Alles auswählen

<page id="home">
   <title>Herzlich Willkommen!</title>
   <navTitle>Home</navTitle>
</page>
<page id="about">
   <title>Über uns</title>
   <page id="concept">
      <title>Unser Konzept</title>
   </page>
   <page id="team">
      <navTitle>Köpfe</navTitle>
      <title>Unser Team</title>
   </page>
</page>
<page id="news">
   <title>News</title>
</page>

<page id="impress">
   <title>Impressum</title>
</page>


<page id="footer">
   <pageDec type="hidden" />
   <page id="footer-home">
      <title>Home</title>
      <pageDec type="alias"><referencedPage>home</referencedPage></pageDec>
   </page>
   <page id="footer-team">
      <title>Team</title>
      <pageDec type="alias"><referencedPage>team</referencedPage></pageDec>
   </page>
   <page id="footer-impress">
      <title>Impressum</title>
      <pageDec type="alias"><referencedPage>impress</referencedPage></pageDec>
   </page>
</page>
Hier besteht die Footer-Navigation, die aus einer versteckten Container-Seite und den Alias-Seiten besteht, nur aus einzelnen Seiten. Evtl. sollen in so eine Navigation aber auch mal ganze Bäume eingebaut werden - und dafür waren die Symlinks gedacht - sodass man nicht jede Seite neu darstellen muss.

LG :)

Menschen irren - Politiker sind Menschen.
Für den Norddeutschen ist 1kW = 2 Pfund Schlick.

Benutzeravatar
dr.e.
Administrator
Beiträge: 4533
Registriert: 04.11.2007, 16:13:53

Re: APFel-SMS - SiteManagementSystem Erweiterung

Beitrag von dr.e. » 20.08.2012, 21:30:05

Hi Jan,
Ah, Ok. Das werde ich mal ausprobieren. Du meinst, wenn ich im Interface ein public verwende, wird das auch bei den generierten Methodenrümpfen angewandt?
Yes!
Hmm. Ich verstehe zwar nicht 100%ig was für dich ein Slug ist (:D), aber wir scheinen ja beide zum Ergebniss zu kommen, dass eine komplette Pfadangabe nötig ist, oder?
Korrekt, sonst ist der Kontext nicht vorhanden. Slug ist einfach nur der Abschnitt eines Pfades (z.B. foo in /foo/bar). Eine andere Lösung fällt mir dazu nicht ein.

Symlinks für Templates halte ich für etwas übertrieben, hier würde ich einfach die Keys in der XML-Datei spezifizieren.
Viele Grüße,
Christian

Benutzeravatar
dave
Beiträge: 903
Registriert: 04.02.2011, 19:03:57
Wohnort: Berlin
Kontaktdaten:

Re: APFel-SMS - SiteManagementSystem Erweiterung

Beitrag von dave » 29.08.2012, 18:20:41

Tutorial fürs SVN ist fertig:

http://wiki.adventure-php-framework.org ... ortoiseSVN

Viel Spass, ich hoffe das reicht so, habe leider nicht die Zeit, das noch ausführlicher zu machen. Ausserdem ist das Erstellen von Wiki-Einträgen sehr lästig, da die Öberfläche wirklich sehr beschi..eiden ist!

Benutzeravatar
jwlighting
Beiträge: 466
Registriert: 14.07.2010, 14:23:58
Wohnort: LK Oldenburg
Kontaktdaten:

Re: APFel-SMS - SiteManagementSystem Erweiterung

Beitrag von jwlighting » 04.09.2012, 18:57:15

Dank dir, ich muss mir das bei Gelegenheit in Ruhe ansehen und dann auf PhpStorm oder eine andere Anwendung in Linux portieren.

Ein kurzes Status-Update zum SMS:
Ich stelle gerade das erste Live-System auf das SMS (und das APF) um. Dabei habe ich schon einige Bugs aufgedeckt und behoben, neue Taglibs gibt es glaube ich auch nochmal, es kommt auch nochmal was nach und es wird noch weitere Dekoratoren geben.
Auch an der API gab es noch Änderungen. Wer mit dem SMS arbeiten möchte oder testen möchte, kann jederzeit gerne eine aktuelle Version von mir bekommen.

Mit der Dokumentation beginne ich, sobald ich die Umstellung der Website abgeschlossen habe.

@Christian: Release von 1.16 ist wann zu erwarten? (Damit ich pünktlich mit Testen durch bin)

LG :)
Jan

Menschen irren - Politiker sind Menschen.
Für den Norddeutschen ist 1kW = 2 Pfund Schlick.

Benutzeravatar
dr.e.
Administrator
Beiträge: 4533
Registriert: 04.11.2007, 16:13:53

Re: APFel-SMS - SiteManagementSystem Erweiterung

Beitrag von dr.e. » 04.09.2012, 23:29:24

Hallo Jan,
@Christian: Release von 1.16 ist wann zu erwarten? (Damit ich pünktlich mit Testen durch bin)
Release-Zyklus war bisher 6 Monate. 1.15 ist am 03.06.2012 erschienen, d.h. Ende des Jahres sollte 1.16 fertig sein. Sofern wir nicht so viele Themen haben, gerne auch früher. Kommt aber auf den Status der Themen an.
Viele Grüße,
Christian

Benutzeravatar
jwlighting
Beiträge: 466
Registriert: 14.07.2010, 14:23:58
Wohnort: LK Oldenburg
Kontaktdaten:

Re: APFel-SMS - SiteManagementSystem Erweiterung

Beitrag von jwlighting » 05.09.2012, 17:25:21

Ich arbeite dann mal auf Mitte November hin, dank dir.

LG :)
Jan

Menschen irren - Politiker sind Menschen.
Für den Norddeutschen ist 1kW = 2 Pfund Schlick.

Benutzeravatar
jwlighting
Beiträge: 466
Registriert: 14.07.2010, 14:23:58
Wohnort: LK Oldenburg
Kontaktdaten:

Re: APFel-SMS - SiteManagementSystem Erweiterung

Beitrag von jwlighting » 24.09.2012, 18:35:43

Hallo zusammen,

ich habe gestern schonmal ein wenig im Code aufgeräumt, weiter getestet, und Bugs beseitigt. Außerdem gibt es eine neue Taglib zur Erzeugung von Breadcrumb-Navigationen.

Hier eine kurze Übersicht über die Taglibs:

<sms:importdesign /> Bindet analog zu <core:importdesign /> ein Template anhand der aktuellen Seiten-ID ein. Bei Fehlern wird auch auf die in der Extension definierten 404- und 403-Fehlerseiten zurückgegriffen.
<sms:addAll /> Bindet alle SMS-Taglibs ein (erspart massenweise <core:addTaglib>
<sms:nav /> Erzeugt eine Navigation mit einstellbarer Tiefe, Anfangsseite oder -level. Das Template kann man selbst angeben, oder den Standard nutzen
<sms:breadcrumbNav /> Erzeugt eine Location-Brotkrümmel Navigation
<sms:pageLink> Erzeugt einen Link zur Seite der angegebenen ID und unterstützt mehrere "magische IDs", für die aktuelle Seite, die vorherige (Referer), den Vater, die nächste oder vorherige im Seitenbaum und die Startseite
<sms:cssIncludes /> Bindet Stylesheets der Seite ein
<sms:jsIncludes /> Bindet JavaScripts der Seite ein
<sms:title /> Erzeugt ein <title>-Tag der Form "{Seitentitel} - {Website-Titel}"
<sms:pageTitle /> Gibt den aktuellen Seitentitel zurück
<sms:siteTitle /> Gibt den Titel der Website zurück


Ich wäre euch sehr dankbar, wenn ihr die Komponenten bei euch testen könntet. Aufgrund des Umfangs sind da sicherlich noch Bugs unentdeckt.
Eine Konfiguration liegt bei, die ihr nur Kopieren müsst. Der Rest beschränkt sich auf die Verwendung der Taglibs, die ihr wie folgt einbinden könnt:

Code: Alles auswählen

<core:addtaglib namespace="extensions::apfelsms::pres::taglibs" prefix="sms" name="addAll" class="SMSAddAllTaglib"/><sms:addAll/>
Die fertigen Configs findet ihr im Namespace extensions::apfelsms::config.


Dokumentation folgt demnächst.

LG :)
Jan
Dateianhänge
apfelsms.tar.gz
APFelSMS Version 0.3-RC1
(16.2 KiB) 51-mal heruntergeladen

Menschen irren - Politiker sind Menschen.
Für den Norddeutschen ist 1kW = 2 Pfund Schlick.

Benutzeravatar
jwlighting
Beiträge: 466
Registriert: 14.07.2010, 14:23:58
Wohnort: LK Oldenburg
Kontaktdaten:

Re: APFel-SMS - SiteManagementSystem Erweiterung

Beitrag von jwlighting » 26.09.2012, 18:17:33

@Christian:

Guck, wenn du Zeit findest, bitte mal drüber. Meinetwegen kannst du es dann ins SVN einpflegen.

LG :)
Jan

Menschen irren - Politiker sind Menschen.
Für den Norddeutschen ist 1kW = 2 Pfund Schlick.

TipTop
Beiträge: 193
Registriert: 25.08.2011, 22:37:08
Wohnort: Klagenfurt, Österreich
Kontaktdaten:

Re: APFel-SMS - SiteManagementSystem Erweiterung

Beitrag von TipTop » 26.09.2012, 19:22:42

Hi Jan,

kannst Du kurz die Schritte beschreiben, die man befolgen muss, um das SMS zum Laufen zu bringen?

Benutzeravatar
jwlighting
Beiträge: 466
Registriert: 14.07.2010, 14:23:58
Wohnort: LK Oldenburg
Kontaktdaten:

Re: APFel-SMS - SiteManagementSystem Erweiterung

Beitrag von jwlighting » 26.09.2012, 21:15:22

Klar ;)
  1. Archiv entpacken und im Namespace extensions ablegen. Dann müsste es z.B. einen Pfad .../apps/extensions/apfelsms/biz geben
  2. Die Konfigurationsdateien in extensions::apfelsms::config in config::extensions::apfelsms kopieren.
    Außerdem Verzeichnisse gemäß des Kontextes anlegen und darein verschieben und das Environment im Dateinamen voranstellen.
    Z.B. config/extensions/apfelsms/pages/decorators/sites/DEFAULT_serviceobjects.ini, wobei sites der Kontext und DEFAULT das Environment ist. (mehr Dazu in der Doku zur Konfiguration im APF)
  3. Taglibs einbinden und verwenden, z.B. so:

Code: Alles auswählen

<!DOCTYPE html>
<html>
<head>
    <core:addtaglib namespace="extensions::apfelsms::pres::taglibs" prefix="sms" name="addAll" class="SMSAddAllTaglib"/><sms:addAll/>
    <sms:title/>
    <sms:cssIncludes/>
    <style type="text/css">

        a.active {
            font-weight: bold;
        }

        a.current {
            font-style: oblique;
        }

        li.subEntries {
            list-style-type: none;
        }

    </style>
</head>
<body>
<sms:breadcrumbNav basePageId="index" />
<h1>
    <sms:siteTitle/>
</h1>
<div id="nav">
    <sms:nav level="0" depth="auto" />
</div>
<div id="content">
    <sms:importdesign namespace="sites::templates" notFoundTemplate="error404" notAllowedTemplate="error403" />
</div>
<div>
   <sms:pageLink id="__prev">Zurück</sms:pageLink> &bull; <sms:pageLink id="__parent">Vater</sms:pageLink> &bull; <sms:pageLink id="__next">Vor</sms:pageLink>
</div>
<sms:jsIncludes />
</body>
</html>
Ich hab euch mal einen Screenshot angehängt, der hoffentlich ein wenig Licht ins Dunkel bringt, wie das mit den Pfaden und der Config sein muss...
Wie gesagt: Mein Kontext ist "sites" das Environment "DEFAULT".
LG :)
Dateianhänge
Bildschirmfoto.png
Pfade im APFelSMS, speziell Konfiguration
Bildschirmfoto.png (42.88 KiB) 2026 mal betrachtet

Menschen irren - Politiker sind Menschen.
Für den Norddeutschen ist 1kW = 2 Pfund Schlick.

Benutzeravatar
dr.e.
Administrator
Beiträge: 4533
Registriert: 04.11.2007, 16:13:53

Re: APFel-SMS - SiteManagementSystem Erweiterung

Beitrag von dr.e. » 26.09.2012, 22:29:54

jwlighting hat geschrieben:@Christian:

Guck, wenn du Zeit findest, bitte mal drüber. Meinetwegen kannst du es dann ins SVN einpflegen.

LG :)
Jan
Hallo Jan,

klar mache ich. Habe auf meinem Zettel noch ein Review Nico's Refactoring der tools::http-Komponenten stehen, dann konnt das dran.
Viele Grüße,
Christian

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast