BlogModul

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.
welworx
Beiträge: 620
Registriert: 27.09.2010, 19:29:44

BlogModul

Beitrag von welworx » 29.06.2011, 18:40:29

Hi,

was haltet ihr von der idee ein modul zu schaffen, das man für news, bloggs, termine usw verwenden kann.

Ich finde das Newssystem als basis mal sehr gut, nur fehlen mir leider ein paar sachen.
  • Back und Frontend Mehrsprachig
  • Beiträge nach verschiedenen Kriterien ausgeben lassen (z.B. Nach datum, alphabetisch, die ersten 5, beiträge des monats april, in monaten gruppiert, ....)
  • Möglichkeit im Backend beiträge in einer anderen sprache zu erzeugen. (Es gibt also bei jedem beitrag ein symbol dazu, um ihn zb in englisch anzulegen. Die beiträge der verschiedenen sprachen müssen miteinander verknüpft sein, damit man, wenn man auf der seite die sprache umstellt genau den gleichen beitrag in der anderen sprache lesen kann. (sprich selbe beitrags id)
  • optionale Detailansicht. Falls aktiviert und auch details im backend eingetragen wurden, kann man im frontend einen detaillink anklicken.
  • optional Veröffentlichungsezeitraum angeben. Zeitraum in dem der beitrag angezeigt werden soll (von, bis)
  • Möglichkeit einen Beitrag von einer Kategorie in eine andere zu verschieben.
  • Mehrsprachige kategorien
  • Möglichkeit die anzeigetexte appID abhängig zu machen. Damit man das modul einmal als blog und das andere mal als termine modul verwenden kann. (wichtig?)
  • Pager verwenden
  • konfigurierbare Ausgabe-Views
Was haltet ihr von alle dem? Hab ich was vergessen?

EDIT: Praktisch wäre es vermutlich wenn man einträge und kategorien als zwei eigenständige Module entwickelt, damit man sie auch getrennt wieder verwenden kann.
Zuletzt geändert von welworx am 30.06.2011, 00:46:16, insgesamt 1-mal geändert.

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

Re: BlogModul

Beitrag von dr.e. » 29.06.2011, 23:48:52

Hallo Werner,

ich finde die Idee sehr gut, da ich schon seit einiger Zeit das Thema "Blog basierend auf dem APF" verfolge nur nie richtig dazu gekommen bin. Insofern gefällt mir die Idee gut, sofern es noch ein Tutorial gibt, das beschreibt, wie man so etwas "from the scratch" implementiert.

Als Feature würde ich gerne noch konfigurierbare Ausgabe-Views oder so generisches HTML sehen, dass man die Ausgabe beliebig einsetzen kann.
Viele Grüße,
Christian

welworx
Beiträge: 620
Registriert: 27.09.2010, 19:29:44

Re: BlogModul

Beitrag von welworx » 30.06.2011, 00:45:42

oh ja das mit den verschiedenen ausgaben hatte ich eh vor. daher gabs ja auch das ganze placeholdeExists zeugs ;)

habs oben auch schon dazu eingetragen

welworx
Beiträge: 620
Registriert: 27.09.2010, 19:29:44

Re: BlogModul

Beitrag von welworx » 30.06.2011, 20:21:14

ok dann fang ich mal an das ein wenig zu planen:

Die Idee ist ein Modul zu schaffen, um einfach Kategorien erstellen und verwalten zu können. Dies kann dann dazu verwendet um in anderen Modulen Einträge dieser Kategorie zuweisen zu können.

1.) Kategorie Modul
Anforderungen:
  • AppId
  • Mehrsprachigkeit
  • Unterstützt Unterelemente => ParentID notwendig
  • GORM verwenden
  • Ausgabe der Kategorien als Baumstruktur für Dropdown Felder
  • Felder
    • ID
    • Titel
    • Beschreibung
    • Reihnfolge (eine ID, mit der die Reihnfolge der Elemente geändert werden kann z.B. mittels Drag and Drop)
    • ParentID
    • CreationTimestamp
    • ModificationTimestamp
    • PublicationTimestamp
    • ExpirationTimestamp
  • Aktionen
    • erstellen
    • verschieben
    • löschen (Was passiert mit unterelementen? Wie kann man von dem Modul darauf rückschließen welches Modul dieses verwendet um zb dann alle elemente zu finden die die Kategorie verwenden und damit etwas machen (löschen, verschieben)?)
    • umbenennen/bearbeiten
Wie sieht das ganze mit der Benutzerid sache aus? Macht es sinn sich darüber gedanken zu machen? Wer die Kategorien erstellt hat usw?

Da man die Felder mit dem mehrsprachigen Texten sowieso in einer getrennten tabelle in der db speichern muss, stellt sich die frage ob es sinnvoll wäre das ganze gleich so aufzubauen, dass man mittels config die Felder definieren (zb titel, Beschreibung, Ord usw inkl der Feldtypen) könnte.

Fällt euch noch was ein?

Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: BlogModul

Beitrag von Screeze » 30.06.2011, 20:50:45

Es ist unter Umständen sinnvoll einen Post in mehrere Kategorien einordnen zu können.
Wie sieht das ganze mit der Benutzerid sache aus? Macht es sinn sich darüber gedanken zu machen? Wer die Kategorien erstellt hat usw?
Wer die Kategorie erstellt hat finde ich irrelevant, wer einen Post erstellt hat ist wichtig, und sollte als Beziehung zum User Objekt gemappt werden, nicht per Id in der Tabelle.

welworx
Beiträge: 620
Registriert: 27.09.2010, 19:29:44

Re: BlogModul

Beitrag von welworx » 30.06.2011, 20:58:29

Es ist unter Umständen sinnvoll einen Post in mehrere Kategorien einordnen zu können.
Das sollte eigentlich funktionieren, wenn man den Post einfach mit der/den ids der Kategorie verknüpft (mapped).
wer einen Post erstellt hat ist wichtig, und sollte als Beziehung zum User Objekt gemappt werden, nicht per Id in der Tabelle.
War so geplant.

EDIT:

hab grad eine idee gehabt. Es wäre sehr praktisch, wenn man die einträge des blog mittels rss feed erhalten könnte. Und falls man damit eine Terminliste erstellt eventuell als vcal oder so.

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

Re: BlogModul

Beitrag von dr.e. » 02.07.2011, 13:15:05

RSS-Feed ist immer ein interessantes Feature. Thumbs up for that!
Viele Grüße,
Christian

Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: BlogModul

Beitrag von Screeze » 02.07.2011, 14:50:43

Wo wir bei RSS sind... Meint ihr das ganze lässt sich so dynamisch gestalten, dass man das ganze ohne Änderungen am eigentlichen Code noch erweitern könnte?
Beispielsweise könnte bei einem Blog noch ein Plugin dazukommen um bei einem neuen Beitrag automatisch einen Hinweis auf den neuen Beitrag zu Twittern, oder bei Facebook zu vertreiben.
Genial wäre, wenn das über Events, ähnlich zu Javascript, realisiert werden würde. Dann bräuchte man lediglich ein paar Eventhandler registrieren zu Beginn, und für den Fall das eins der Events eintritt, kann dieser dann den restlichen Code des Plugins einbinden und ausführen.

edit: was haltet ihr generell von einen EventHandler für das APF? Ich hab sowas in PHP zwar noch nie gesehen, aber sinnvoll kann das schon sein denke ich...

edit2:
Weitere Features:
  • Verkürzte Blogeinträge auf der Hauptseite (Übersicht), die ab x Zeichen abgeschnitten werden und mit einem Link zur Detailansicht geleitet werden
  • Kommentare in der Detailansicht (Kommentarmodul?)
  • Status bei Beiträgen (Damit man Beiträge verfassen und speichern kann, aber vorerst nur für Admins zu sehen sind, um sie z.B. später nochmal zu korrigieren oder fertig zu stellen, oder erst später zu veröffentlichen)
edit3:
Sofern ich das zeitlich hin bekomme bin ich gerne bereit Teile zu übernehmen, dann können wir das gleich etwas ausführlicher gestalten, da ich ebenfalls an einem APF-blog interessiert bin

welworx
Beiträge: 620
Registriert: 27.09.2010, 19:29:44

Re: BlogModul

Beitrag von welworx » 02.07.2011, 18:12:00

EventHandler klingt interessant. Sollte man aber vlt mal in einem eigenen Beitrag diskutieren. Das nachträgliche einfügen dieser wäre aber sehr praktisch. (Zb um google zu informieren dass es was neues auf der Seite gibt)
(Benötigt man eigentlich eh nur nach speicher und lösch Aktionen, wobei sicher interessant wäre das ganze zb erst am ende des Tages zu versenden und bis dahin zwischen zu speichern und zu sammeln bzw doppelte dinge entfernen.)

Ideen für das Blog Modul sind immer willkommen :)



Dachte mir das ich mal das Kategorie Modul angehen, aber können gerne schon mal über die features reden :D bzw das parallel entwickeln



Status von Beiträgen find ich sehr wichtig. Wie viele sind da sinnvoll? (Enwurf, Überprüfen, Freigegeben, Veröffentlicht)

Das mit dem Später veröffentlichen wurde glaube ich eh schon mal von mir erwähnt. Fände da einen Veröffentlichungszeitraum sehr hilfreich. (von, bis) In der Administration wäre es dann sehr hilfreich, dass jene die gerade Veröffentlicht werden (sprich der Zeitraum passt) auch so dort angezeigt werden (anstelle von Freigegeben).. oder man schreibt den Zeitraum dazu.

Kommentar Möglichkeit: wenn man das Kommentarmodul verwendet (was ich sehr praktisch fände) müsste man das klären wie man das mit der Administration macht. Sofern das bei dem Kommentarmodul noch nicht vorhanden ist, fände ich es auch wichtig, dass man Kommentare freischalten kann und auch benachrichtigt wird wenn es neue gibt (wo wir wieder bei den EventHandler wären ;) )


Grundsätzlich sollten wir überhaupt mal Klären was das Ziel dieses ganzen Vorhabens ist, da ich ja nicht annehme das wir wordpress 1:1 nachbauen wollen ;) Ich fände es sehr interessant das ganze nicht nur für einen Blog zu bauen sondern zb auch für Terminlisten (wobei sich da natürlich die frage stellt was anders ist außer die beschreibenden Texte)

Mir geht es auch darum das die Administration möglichst einfach und selbsterklärend ist, da das ja genau jener Bereich ist bei dem oft nicht sehr visierte Benutzer vorzufinden sind ;)

zusätzliche Felder mittels Config
Ich fände es sehr praktisch wenn man optional auch Felder mittels config dazu definieren könnte. (zb wenn ich später drauf komm, dass ich bei den Einträgen einen Ort brauch order was auch immer)
Da wäre es vor allem interessant, wie man das mit den verschiedenen Feldtypen macht (Textfeld, Textbereich, Dateiupload, ....) und wie man die Daten speichert. Wie schaut das eigentlich mit so sachen wie tag Clouds bzw schlagworten aus?

Praktisch fände ich auch wenn man nicht benötigte Dinge mittels config ausschalten kann. (ZB das kein Veröffentlichungszeitraum oder die Detailansicht angeboten wird wenn nicht gewünscht.)

WYSIWYG Editoren
Hier sollte eine Möglichkeit geschaffen werden damit verschiedene Editoren verwendet werden können.

Vorschaulängen begrenzen ist auch eine gute idee. Sofern keine Vorschautexte definiert werden sollte einfach die entsprechende Zeichenanzahl aus dem Beitrag entnommen werden. (wieder optionales abschalten der Vorschautextbox falls nicht gewünscht sollte möglich sein.)
Sofern ich das zeitlich hin bekomme bin ich gerne bereit Teile zu übernehmen,
Perfekt :) Hilfe ist immer gerne willkommen :) Ich hab noch bis Donnerstag zeit und dann erst wieder ab 18.

Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: BlogModul

Beitrag von Screeze » 02.07.2011, 19:37:34

(Benötigt man eigentlich eh nur nach speicher und lösch Aktionen, wobei sicher interessant wäre das ganze zb erst am ende des Tages zu versenden und bis dahin zwischen zu speichern und zu sammeln bzw doppelte dinge entfernen.)
Das mit dem am Ende das Tages versenden mag für google passen, aber für z.B. twitter und Facebook Nachrichten eher weniger sinnvoll.
Status von Beiträgen find ich sehr wichtig. Wie viele sind da sinnvoll? (Enwurf, Überprüfen, Freigegeben, Veröffentlicht)
Soviele hatte ich garnicht im Sinne, Entwurf und Überprüfen würde ich zusammenfassen, ebenso wie die anderen beiden.
Es ging nur darum ob ein Beitrag bereits öffentlich angezeigt werden soll oder nicht. Mehr braucht es nicht denke ich (keep it simple) ;)

Daher: Entwurf, Veröffentlicht
Das mit dem Später veröffentlichen wurde glaube ich eh schon mal von mir erwähnt. Fände da einen Veröffentlichungszeitraum sehr hilfreich. (von, bis) In der Administration wäre es dann sehr hilfreich, dass jene die gerade Veröffentlicht werden (sprich der Zeitraum passt) auch so dort angezeigt werden (anstelle von Freigegeben).. oder man schreibt den Zeitraum dazu.
Das würde ich dann als 3. Status abbilden: Zeitweise veröffentlicht.
Kommentar Möglichkeit: wenn man das Kommentarmodul verwendet (was ich sehr praktisch fände) müsste man das klären wie man das mit der Administration macht. Sofern das bei dem Kommentarmodul noch nicht vorhanden ist, fände ich es auch wichtig, dass man Kommentare freischalten kann und auch benachrichtigt wird wenn es neue gibt (wo wir wieder bei den EventHandler wären ;) )
Korrekt, da sind wir uns einig.
Grundsätzlich sollten wir überhaupt mal Klären was das Ziel dieses ganzen Vorhabens ist, da ich ja nicht annehme das wir wordpress 1:1 nachbauen wollen ;) Ich fände es sehr interessant das ganze nicht nur für einen Blog zu bauen sondern zb auch für Terminlisten (wobei sich da natürlich die frage stellt was anders ist außer die beschreibenden Texte)
Stimmt, das ist nicht das Ziel. Aber die Funktionen, welche einen Blog ausmachen (Beitrag verfassen, beiträge kommentieren) sollten vorhanden sein, ebenso wie ein paar Strukturelemente (Kategorien).
Es soll ja auch kein gesamtes Paket darstellen, wie es Wordpress ist, das nurnoch auf einen webspace geladen werden muss und los, sondern per Taglib auf einer vorhandenen Webseite einbindbar sein, und eine Grundlage für Entwickler mit Sonderwünsche darstellen.
Mir geht es auch darum das die Administration möglichst einfach und selbsterklärend ist, da das ja genau jener Bereich ist bei dem oft nicht sehr visierte Benutzer vorzufinden sind ;)
D'accord.
zusätzliche Felder mittels Config
Ich fände es sehr praktisch wenn man optional auch Felder mittels config dazu definieren könnte. (zb wenn ich später drauf komm, dass ich bei den Einträgen einen Ort brauch order was auch immer)
Da wäre es vor allem interessant, wie man das mit den verschiedenen Feldtypen macht (Textfeld, Textbereich, Dateiupload, ....) und wie man die Daten speichert.
Verwende den GORM, dann ist das simpel ;)
Wie schaut das eigentlich mit so sachen wie tag Clouds bzw schlagworten aus?
Von diesen Tag-Clouds halte ich ehrlich gesagt nicht viel - maximal für SEO Zwecke zu gebrauchen, aber da die keine schriftgröße analysieren, tuts da auch ne Liste am Ende der Seite. Für den User sehe ich da keinen großen Mehrwert, ich verwende die jedenfalls nie, mich stören sie eher wenn sie von anderen Sachen ablenken (v.a. die animiert, im Kreis schwirrenden sind ultra nervig)
WYSIWYG Editoren
Hier sollte eine Möglichkeit geschaffen werden damit verschiedene Editoren verwendet werden können.
Die meisten Editoren setzen ja blos mittels Javascript einen Aufsatz über das Textfeld, wenn ich mich nicht irre, insofern kann dies durch einbinden einer eigenen JS Datei bereits abgedeckt werden, und bedarf keiner großen Beachtung im System selber. (Wenn ich richtig liege)
Vorschaulängen begrenzen ist auch eine gute idee. Sofern keine Vorschautexte definiert werden sollte einfach die entsprechende Zeichenanzahl aus dem Beitrag entnommen werden. (wieder optionales abschalten der Vorschautextbox falls nicht gewünscht sollte möglich sein.)
Jap so gehts auch :)
Perfekt :) Hilfe ist immer gerne willkommen :) Ich hab noch bis Donnerstag zeit und dann erst wieder ab 18.
Gerne.
Ich werde paralell jedoch jetzt anfangen ein kleines CMS auf APF Basis zu entwickeln, aber das kriegen wir hin.

welworx
Beiträge: 620
Registriert: 27.09.2010, 19:29:44

Re: BlogModul

Beitrag von welworx » 02.07.2011, 20:33:13

Verwende den GORM, dann ist das simpel ;)
Mhm .. die Felder in der db zu haben ist eines, aber die dann auch wirklich im Formluar richtig anzuzeigen was ganz was anderes. Eigentlich wäre das sehr fein wenn es so ein modul überhaupt gäbe, mit der man anhand einer config (am besten vermutlich als xml datei) ein Formular zusammenbauen kann und daten auch speichern bzw laden kann. Wurde aber eh schon mal hier irgendwo diskutiert und mit zu einschrenkend bzw zu komplex abgetan.)
Entwurf, Veröffentlicht, Zeitweise veröffentlicht
find ich gut.

Tag-Clouds
sowas kann man eigentlich auch gut nachträglich integrieren. schließlich braucht man dazu ja eh nur die post id oder so.

URL Parameter:
Meines erachtens ganz wichtig ist hier, dass man die Paramternamen aus der config holt, damit man mehrere Instanzen des Moduls verwenden kann und die sich nicht gegenseitig beeinflussen. Es würde sich auch anbieten diese mehrsprachig zu machen, da ich das viel schöner find wenn der url zu der jeweiligen Sprache passt.

Detail Funktion
Hier sollte auch darauf geachtet werden, dass man zusätzliche url parameter setzten kann zb um auf eine entsprechende detailseite zu gelangen.
Das mit dem am Ende das Tages versenden mag für google passen, aber für z.B. twitter und Facebook Nachrichten eher weniger sinnvoll.
stimmt, daher für jedes event einzell einstellbar.

Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: BlogModul

Beitrag von Screeze » 02.07.2011, 20:50:24

stimmt, daher für jedes event einzell einstellbar.
Jein, das geht so nicht, da du ja nur was machen kannst wenn jemand die PHP Datei aufruft, für den Zweck würde ich einfach einen entsprechenden Eventhandler implementieren, der die Daten entgegennimmt und irgendwo sammelt, und einen Cronjob anlegen, der einmal am Tag ein Script startet was den Zwischenspeicher des Eventhandler verwendet um alles zu erledigen. Dann ist das unabhängig von dem Eventhandler.

welworx
Beiträge: 620
Registriert: 27.09.2010, 19:29:44

Re: BlogModul

Beitrag von welworx » 02.07.2011, 21:01:18

ja schon klar. aber das ist ja leicht machbar. Man könnt den cronjob ja auch öfter drüber jagen und halt im skript anhand der zeiten sagen wann das ausgeführt werden soll.

welworx
Beiträge: 620
Registriert: 27.09.2010, 19:29:44

Re: BlogModul

Beitrag von welworx » 03.07.2011, 04:41:11

Was haltet ihr von folgender Config?

DEFAULT_category_objects.ini

Code: Alles auswählen

[Application]
DisplayName = "VARCHAR(100)"

; Felder wie creation und modification timestamp sowie die id werden automatisch erzeugt
[Category]
PublicationTimestamp="timestamp NOT NULL default '0000-00-00 00:00:00'"
ExpirationTimestamp="timestamp NOT NULL default '0000-00-00 00:00:00'"

[CategoryContent]
Title="VARCHAR(255)"
Description="Text"

[Language]
iso_code = "VARCHAR(5)"
AddIndices = "iso_code(UNIQUE)"
DEFAULT_category_relations.ini

Code: Alles auswählen

[Application2Category]
Type = "COMPOSITION"
SourceObject = "Application"
TargetObject = "Category"


[Category2CategoryContent]
Type = "COMPOSITION"
SourceObject = "Category"
TargetObject = "CategoryContent"


[CategoryContent2Language]
Type = "COMPOSITION"
SourceObject = "CategoryContent"
TargetObject = "Language"
Hab bisher den GORM kaum verwendet. Wie sieht das eigentlich aus, wenn ich jetzt ein application objekt erstelle, das aber bereits von usermanagement vorhanden ist? Ist das ein problem? Ist das sogar gut? Wäre es ansonsten Sinnvoll das einfach umzubenennen (zb. in CategoryApp)?

welworx
Beiträge: 620
Registriert: 27.09.2010, 19:29:44

Re: BlogModul

Beitrag von welworx » 05.07.2011, 23:28:22

Kleines Update zwischendurch:

Bin mim Kategorie Modul schon fast fertig, bin aber zwischendurch auf folgendes problem mit dem GORM gestoßen.

viewtopic.php?f=5&t=760&p=8045#p8045

Hoffe ihr könnt mir da vlt helfen.


Weiters stellt sich die frage wie man das mim Löschen machen soll, genauer gesagt was mit den ganzen Dingen passieren soll, die auf den Kategorien aufbauen. Meines erachtens kann man aus sich des Kategorie Modules ja gar nicht wissen welches andere Modul diese verwendet. Daher mein Vorschlag, dass einfach die Kategorie inklusive allen Verlinkungen (unterkategorien usw) gelöscht werden. Muss dann halt jedes andere Modul für sich klären wie es damit umgeht.

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast