Deutschland United States United Kingdom
ContentLion - Open Source CMS

Mein erstes Plugin (Analytics)

Mein erstes Plugin (Analytics)

Ich hab mich mal näher mit der Plugin Erstellung von ContentLion befasst. Dazu muss ich sagen, die Doku auf dieser Seite sollt eunbedingt erweitert werden. Ehrlich gesagt hab ich bei vorhanden Plugins abgeschaut wie es geht, und einen Teil der Blogbeiträge (Aufbau des CMS nachverfolgt, um klar zu kommen).

Egal, was war der Sinn des Plugins: Grundsätzloch ging es mir mal darum zu testen ob ich es überhaupt kann. Das Plugin selbst ist relativ simpel es fügt einen Trackingcode in die Webseite ein. Z.B. Von Google Analytics oder Piwik, oder was immer ihr wollt. (Mir ist bewusst, das man des auch statisch ins Template einbauen kann, wie gesagt, mir ging es mehr um den Test).

Was macht das Plugin:
Nach der Aktivierung habt ihr im Dashboard ein neues Widget, dort könnt ihr den Trackingcode Copy/Pasten (am besten mit dem "<script></script>" sonst wird es lustig ^^. Danach wird der Code über das Event System im Header eingebunden und angezeigt. Wie gesagt very simpel.



Das Plugin ist nur in Deutsch verfügbar, wenn es jemand übersetzten möchten, dann los -> es sind nur 3 Tokens ;)

Ich wäre froh wenn erfahrene Plugin Entwickler und auch Stefan einen kurzen Blick darüber werfen können, um mir zu sagen ob ich verdammte scheisse gebaut habe oder man das Ding sogar brauchen kann ;)

Das Plugin ist als .zip Archiv hier angehängt ;) analytics.zip

----

Noch eine Frage am Schluss, ist ContenLion UTF-8 oder ISO? Oder kann mir jemand folgendes Problem mit dem Zeichensatz erklären?



kim88

Edit: Jetzt merke ich, das es noch im falschen Forum ist, liebe Mods bitte verschieben oO
 iPhone 5 16GB black  iPad Mini 16GB WiFi + Cellular black  Apple TV 2
 MacBook Pro Retina 15" Mid 2012 8GB RAM  27" Thunderbolt Display

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »kim88« (3. Juni 2013, 22:32)


Cool. Aber warum sollen wir deine Piwik installaton nutzen? :O

Das mit den Umlauten liegt an der neuen PHP Version ;)


Maxi

Aso jetzt :D

Im header ist so ne Sache mit der Lade geschwindigkeit ;)

Niemand muss meine Piwik Installation benutzen, das sollte nur ein Screenshot sein, der verdeutlicht wie es funktioniert ^^

Standardmässig ist kein trackingcode vordefiniert ^^ man kann einfach seinen eigenen (von Piwik, Google Analytics, etc) einfügen.
 iPhone 5 16GB black  iPad Mini 16GB WiFi + Cellular black  Apple TV 2
 MacBook Pro Retina 15" Mid 2012 8GB RAM  27" Thunderbolt Display

Aso jetzt :D

Im header ist so ne Sache mit der Lade geschwindigkeit ;)


Was schlägst du vor? Den Footer, rein technisch kein Problem -> aber nicht alle Skins, includen den Footer. Hmm vielleicht content_bottom -> mal warten was andere dazu meinen ^^
 iPhone 5 16GB black  iPad Mini 16GB WiFi + Cellular black  Apple TV 2
 MacBook Pro Retina 15" Mid 2012 8GB RAM  27" Thunderbolt Display

Hi,

Das klingt doch schon sehr gut! :)
Folgende Verbesserungen hab ich vorzuschlagen:
- Lass den Code nicht über ein Widget eintragen, sondern über die Einstellungen. Dazu fügst du in deiner info.php noch folgendes hinzu:

PHP-Quelltext

1
  $pluginInfo->configurationFile  "settings.php";

Die settings.php musst du in deinem Ordner anlegen und das ist dann die Einstellungsseite für dein Plugin. ;)
(Ein Widget nimmt für sowas zu viel Platz weg, vorallem, weil man den Code nur einmalig einträgt.)

- Den Tracking-Code speicherst du aktuell in ner Datei, oder?
Mach das mal über die Settings, da du auf einem laufendem Server keine Rechte besitzt, diese Datei anlegen zu lassen --> Es wird ein Fehler kommen
(Sowas würde höchstens über das TempDir-Plugin gehen, welches die Dateien aber, wie gesagt, nur temporär speichert^^)
Deine events/header.php-Datei muss also wie folgt aussehen:

PHP-Quelltext

1
echo Settings::getInstance()->specify("plugin""analytics")->get("analytics_code");


Bei der activate.php musst du die Settings natürlich noch in die Tabelle eintragen. ;)

Ansonsten:
Gute Arbeit! :)

Salü Juku,

Danke für dein Feedback! Das mit den Einstellungen ist eine gute Idee. Kennst du gerade ein Plugin, das das so macht, dann kann ich mich dort etwas "reinlesen".

Ja den Trackingcode speichere ich in einer Datei, ist eigentlich eine "Notlösung" ich wollte es zuerst über die _settings Tabelle machen. Das Problem ist allerdings die Spalte "Value" gerade mal Platz für 255 Zeichen beitet (Varchar) - und die meisten Trackingcodes wohl etwas länger sind. Eine extra Tabelle anzulesen für einen Code, der sich wohl auch nie ändert fand ich doch etwas doof, also hab ich es über die Datei gespeichert. Notlösung ^^

Wenn du hier eine elegantere Lösung präsentieren kannst, werde ich die gerne umsetzen.

Das mit den Rechten verstehe ich nicht ganz. Ich hab das Plugin auf meinem Server getestet. ich nutze die "FileServer - Klasse" dafür, der legt den Ordner an wo die Datei gespeichert wird. Die Klass elegt ja die Ordner automatisch mit den chmod 777 an.

Konkret schaut das so aus:

Quellcode

1
FileServer::createFolder('./system/plugins/analytics','trackingcode');


Oder verstehe ich dich falsch?

Nochmals Danke für das Feedback!
 iPhone 5 16GB black  iPad Mini 16GB WiFi + Cellular black  Apple TV 2
 MacBook Pro Retina 15" Mid 2012 8GB RAM  27" Thunderbolt Display

Wenn der Ordner system/plugins nur die Rechte 0555 o.ä. hat, bist du auch über diese Möglichkeit nicht in der Lage, Dateien anzulegen.

@Settings:
Da hast du recht, das war mir noch gar nicht bewusst. :(
Dann kannst du höchstens das PluginData-Plugin verwenden, welches noch heute oder morgen veröffentlicht wird und dann in der Plugin-Galerie herunterzuladen ist. (siehe hier)

Danke für das Plugin!

Kannst du es bitte über SVN einchecken, bevor du es im Forum hochlädst? So kann es auch in die Plugin-Gallerie aufgenommen werden.

http://www.contentlion.de/entwickler/svn-zugang.html

Ich hab mal den Request gemacht ^^ :D meine IDE hat sogar SVN Unterstützung ich bin immer wieder überrascht.
 iPhone 5 16GB black  iPad Mini 16GB WiFi + Cellular black  Apple TV 2
 MacBook Pro Retina 15" Mid 2012 8GB RAM  27" Thunderbolt Display

Leg ich dir gleich an, siehst du dann unter Meine Plugins

Wenn du noch fragen dazu hast, kannst dich gerne melden.

Sollte comitted sein ^^ :D ich hoffe es jedenfalls :D

Ehrlich gesagt sind meine SVN Kenntnisse so gut wie nicht vorhanden und meine IDE war eben etwas merkwürdig xD
 iPhone 5 16GB black  iPad Mini 16GB WiFi + Cellular black  Apple TV 2
 MacBook Pro Retina 15" Mid 2012 8GB RAM  27" Thunderbolt Display

Ist was angekommen, also reichen deine Kenntnisse ;-)

Kommt auf meine Testliste, schau ich mir morgen an!

Ähnliche Themen