Zum Inhalt springen

Lust auf Mitarbeit an einem CMS?


Patrick_C64

Empfohlene Beiträge

(Keine Mitarbeit im Sinne von bezahlter Mitarbeit, einfach am Projekt als solches beteiligen!)

Hallo,

vllt. finde Ich ja hier den ein oder anderen der Lust hat an einem CMS mitzuwirken.

Was für Tätigkeiten gibt es denn so ?

Standard Komponenten erweitern, damit den Komfort die Funktionalität und die Usability erweitern/verbessern.

Extensions entwickeln, da brauch ich wirklich dringend Feedback um die Schnittstellen vom Core auf absolut jeden Bedarf auszulegen. Ich selbst kenne ja den Core und die Schnittstellen und kann somit nicht alle die Probleme erkennen und analysieren die bei einem Aussenstehenden aufkommen können.

Designtemplates mit CSS erstellen, ggf. müsste einmal geprüft werden was ich an der HTML generierung noch verbessern / modifizieren muss damit sich Designs leichter bzw. effektiver umsetzen lassen. Habe da zwar selber schon (und da bin ich stolz drauf!) ein naja doch Optisch ungefährliches :D Design auf die Beine stellen können, aber CSS auch wenn ichs n bisl kann so wirklich meins ist es nicht.

Naja und "lapidare" Sachen wie Korrekturlesen wenn die Doku fertig ist!

Welchen Entwicklungsstand hat das CMS?

Der Core und alle geplanten Standard Komponenten sind bereits Implementiert, ein Rechtemanagement, User und Gruppen sowie Topics und Entries, eine Log und Statistic Komponente, eine Counter Komponente und weitere sind bereits vorhanden.

Eine erste Extension ist auch in der Entwicklung, diese muss eigtl. nur noch in Ihrer Funktionalität ausgebaut werden, das werde aber glaube Ich nach und nach machen außer jemand hat Lust da "mitzufrickln", es handelt sich bei dieser Erweiterung um ein Forum.

Das CMS an sich ist mit einem One-Klick Installer und Updater sowie "Erweiterungs-Manager" ausgestattet welcher auch das Installieren von Extensions über das CMS ermöglicht, also nach der ersten Installation ist weder eine Modifikation an den Corekomponenten nötig noch ein FTP! Alles wird über ACPs der jeweiligen Komponenten gelöst.

Letzlich ist das Projekt in einer Phase der perfektionierenden Wartung und der Entwicklung von Erweiterungen, ansonsten kann man sagen ist es "Fertig" bzw. Beta.

Also würde mich echt über Rückmeldung freuen, bin an einem Punkt wo ich mal positives Feedback oder die ein oder andere kompetente und unterstützende Person gut gebrauchen könnte. Aber auch wenn sich niemand findet werde ich selber mit Spass an der Sache und im alleingang meinen Weg bzw. meine Arbeit fortsetzen.

Hier findet Ihr das CMS und seht es in Aktion!

http://www.c64.feuerware.com/page/index.php?topics=cmd&cmd=select&id=8

Ihr könnt euch es ja mal runterladen und ansehen wenn Ihr möchtet. Vllt. mag es ja auch der ein oder andere nutzen!?

Achtung Installation funktioniert nicht, ich werde es umgehend richten und ein Neues Packet hochladen!!!

(!Notiz an mich selbst, nich immer so hastig mein Junge :( !)

Hoffe konnte ein wenig neugierig auf das Projekt machen und freue mich auf euer Feedback! gerne gebe ich dann mehr Informationen und Details welche für die Mitarbeit nötig sind.

mfg. Patrick

Bearbeitet von Patrick_C64
Link zu diesem Kommentar
Auf anderen Seiten teilen

Warum ein neues CMS? Ich denke in diesem Bereich gibt es schon sehr viel. Weiterhin, was mir bei der Durchsicht des Codes aufgefallen ist, dass die Kommentierung sehr dürftig ist, ich hätte keine Lust mich in einen solchen Code einzuarbeiten. Zusätzlich ist die Einrückung des Code nicht konsistent, was es ebenfalls sehr schwer macht den Code zu lesen. Außerdem solltest Du auf ein MVC Pattern übergehen, damit die einzelnen Bereiche passend getrennt werden. Gerade wenn man mit mehreren Personen an einem Projekt arbeitet, ist die Verbreitung des Code mit einem FTP Download extrem ineffizient und wird zu unterschiedlichen Ständen der Codeentwicklung führen. Du solltest auf Systeme wie Git oder Subversion setzen, entsprechende Projektseiten gibt es z.B. von Google oder Sourceforge.

Die Dokumentation solltest Du mit Tools wie Doxygen erstellen, dafür muss aber der Code richtig kommentiert sein, wobei sich dann auch direkt PDF generieren lassen können. Den Editor für die Eingabe innerhalb des CMS ist aktuell sehr spartanisch, zusätzlich muss man diesen nicht selbst entwickeln, denn dafür gibt es fertige z.B. unter GPL stehende Editoren (wie z.b. CKEditor), die auch in bekannten CMS eingesetzt werden.


require_once("includes/DBC/$connector.php" ); 

[/quote]


Solche Aufrufe, die ungefiltert Daten includieren, sollten niemals verwendet werden. Außerdem kann je nach Einstellungen des Servers der Aufruf an sich fehlschlagen, hier sollte man mit absoluten Pfaden includieren. 


[code]

$chkUser->password  = md5($_REQUEST['password']);

Der MD5-Hash gilt als nicht mehr sicher ( Message-Digest Algorithm 5 ), vor allem weil hier auch unsalted ist. Hier sollte man zu stärkeren Hashfunktionen und vor allem welchen mit einem Salt greifen, dieses gibt es auch schon als fertige Pakete.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo flashpixx,

Dickes Danke fürs Feedback!

Meinst du das jetzt ernst? glaubst du echt Ich weiss nicht das es genügend andere CM-Systeme gibt? Ich habe meine Gründe für eine Eigenentwicklung und kann solche "Sprüche" echt nicht mehr hören, schonmal was von Lernfaktor und Erfahrungen sammeln gehört? (echt nich böse gemeint du hast mich auch ganz vernünftig gefragt aber langsam bekomm ich echt einen Hals von so Aussagen! Sry!, und lass uns da einfach nicht weiter drüber diskutieren, Danke!)

Nochmal was zu Punkt zwei, nicht selten erzählen Leute was von Rädern die nicht neu erfunden werden müssen und haben nicht im Ansatz den Plan von überhaupt einem Rad!

Könnte da noch X Metaphern loslassen aber die würden von einigen sicher zur Trollerei missbraucht werden, also lassen wir das :) !

Aber um Dir eine korrekte vernünftige Antwort zu geben, schon mal ein phpBB modifiziert noch und nöcher und dann ein Update eingespielt? Also da back ich mir lieber gleich selber ein CMS so wie ich es mir Vorstelle, auch wenn wie du sagst es da sicher genügend andere gibt! Bei mir sind für Portal und Forum keine Modifikationen am Source nötig wird alles übers CMS eingespielt das war mein Ziel das habe ich umgesetzt damit bin Ich zufrieden!

Editor, ja is mir bewusst und hatte auch schon vor in die von dir genannte Richtung zu gehen, den von Dir genannten schau ich mir mal an, THX!

Ja ist "ein wenig inkonsistent" (um nicht zu sagen katastrophal :) ) die Einrückung und die Kommentare, auch wenns nicht schön oder "professionel" ist spielt das hier keine große Rolle! Denn am Core soll keiner schrauben. Und wenn doch dann wird da vorher erstmal alles unklare geklärt! Zudem versuche ich da wo nichts kommentiert ist das bei zeiten nachzuholen! Ja in Zukunft werde ich das gleich machen alles andere ist suboptimal! Und in diesen Punkten bin ich auch voll bei Dir!

Aber, Ich habe das alles neben meinem Abschlussprojekt und Familie sowie Umschulung auf die Beine gestellt innerhalb von ca. 2 Monaten da kann schon mal sowas auf der Strecke bleiben wenn man sich nur auf Funktionalität und vorrankommen konzentriert OK!? Eigentlich war es auch nicht geplant das jemals zu veröffentlichen doch Ich bin richtig Stolz und auch recht Zufrieden mit dem Ergebniss (von deinen Aufgeführten Punkten mal ganz abgesehen!)

Ungefiltertes Includieren und MD5 geschichte sind Dinge die Ich dankend entegennehme und werde diese auch umsetzen! Mit dem Pfaden gab es bisher auf keinem System Probleme aber trotzdem Danke für den Hinweis!

Naja den Kritikpunkten entnehme ich schon das es für mich alleine weitergeht!

Wenn Ihr so Punkte habt wie das mit dem MD5 oder solche sachen wie mit dem Includieren, solche Tipps nehme ich gerne an, wenn Ihr mir aber was darüber erzählen wollt was es nicht alles schon gibt bitte beisst euch auf die Zähne und lasst es stecken ich Programmiere eben zum Spass und in einer Firma geht es mit sicherheit anders lang aber doch nicht in meiner Freizeit ;) !!!!

SVN, Git und Co kein Thema kenn ich habe auch diese auch schon genutzt. Aber warum sollte ich für mich alleine das einrichten zumal mein Updatesystem reicht solange ich alleine Programmiere oder andere nur Extensions schreiben! Sonst ist das auf jeden Fall eine Überlegung wert und ein Punkt auf den Ich sicherlich auch alleine gekommen wäre, dennoch Danke für den Hinweis!

MVC mögen zwar drei Buchstaben sein mit dem man schön auf den Putz hauen kann, aber Designpatterns sind nicht verbindlich, und so lange ich kein Antipattern auf die Welt loslasse kann ich mit Leben, also ein Paar gedanken zur Architektur und zum Konzept habe ich mir schon gemacht ;) !

So also ich möchte nicht wissen ob Ihr nicht mitmachen wollt weil euch hier und da manche Dinge nicht "geheuer" sind, meldet euch wenn Ihr Lust habt mitzumachen, und ja Ich kann auch mit Kritik um wie man sieht Punkte die Ich als gerecht angeprangert gesehen habe bzw. auf Verbesserungen auf die Ich hingewiesen worden bin auf diese denke ich gehe ich auch Vernünftig und Respektvoll ein, das selbe erhoffe ich mir auch von euch, Danke!

mfg. Patrick

Bearbeitet von Patrick_C64
Link zu diesem Kommentar
Auf anderen Seiten teilen

Nachtrag : Interresiert mich jetzt schon, werde sicher auch dannach mal googeln, aber wiso ist das mit dem ungefilertem Include da nicht so optimal, da kommt keiner an die Sourcen der nicht soll also kann man da nicht wirklich viel Manipulieren und auf den Server kann ohne Zugriffsrechte auch keiner andere Dateien hochladen die dadurch Includiert werden. Mein das jetzt echt ernst kannst du mir das Bitte mal ein wenig erläutern, Danke! Ein paar Stichpunkte reichen mir schon, ich brauche aber manchmal etwas greifbareres als wie "das geht so aber nicht" ;)

Nachtrag: Also wenn der User da was einzugeben hätte und eine Usereingabe dort verarbeitet werden würde dann hätte ich Dich jetzt absolut verstanden und nicht dannach gefragt !!!

Bearbeitet von Patrick_C64
Link zu diesem Kommentar
Auf anderen Seiten teilen

Aber um Dir eine korrekte vernünftige Antwort zu geben, schon mal ein phpBB modifiziert noch und nöcher und dann ein Update eingespielt? Also da back ich mir lieber gleich selber ein CMS so wie ich es mir Vorstelle, auch wenn wie du sagst es da sicher genügend andere gibt!

ein CMS zu entwickeln ist durchaus eine sinnvolle Aufgabe, nur wenn Du hier ein Posting verfasst "ich entwickle ein CMS, wer will mit machen", dann ist die erste Frage "warum". Ich selbst nutze z.B. Wordpress und entwickle dafür entsprechende Plugins, denn die Plattform Wordpress bietet im Gegensatz zu Deinem CMS durchaus schon wesentlich mehr.

Wenn es Dir darum geht, ein CMS von Grund her aufzubauen, warum möchtest Du die Core Entwicklung selbst machen. Bei meinem flüchtigen Überfliegen des Codes sind noch immense Punkte im Core, die in meinen Augen überarbeitet werden müssen, so dass Du erst einmal ein funktionierendes Core haben musst, damit Du alle weiteren Komponenten sinnvoll anbinden kannst.

Ja ist "ein wenig inkonsistent" (um nicht zu sagen katastrophal :) ) die Einrückung und die Kommentare, auch wenns nicht schön oder "professionel" ist spielt das hier keine große Rolle! Denn am Core soll keiner schrauben.

Das ist aber Grundvoraussetzung, wenn man mit mehreren an einem Projekt arbeitet, denn niemand kann den Code nachvollziehen, wenn dieser nicht kommentiert ist. Aus der Praxis bietet es sich zusätzlich an auf ein einheitliches System wie Kommentierung, Variablen- / Klassen- / Methodenbenennung und Struktur zu einigen (Stichwort Styleguide), damit alle Codes später konsistent sind.

SVN, Git und Co kein Thema kenn ich habe auch diese auch schon genutzt. Aber warum sollte ich für mich alleine das einrichten zumal mein Updatesystem reicht solange ich alleine Programmiere oder andere nur Extensions schreiben!

Selbst wenn Du allein an einem System entwickelst eine Repository ist eine hilfreiche Investition, vor allem wenn Projekte sich über längere Zeiträume hinziehen.

MVC mögen zwar drei Buchstaben sein mit dem man schön auf den Putz hauen kann, aber Designpatterns sind nicht verbindlich, und so lange ich kein Antipattern auf die Welt loslasse kann ich mit Leben, also ein Paar gedanken zur Architektur und zum Konzept habe ich mir schon gemacht ;) !

Warum mischst Du dann Ausgabe und Verarbeitung? Man trennt diese Komponenten, gerade in einem CMS möchtest Du die Ausgabe ja individuell z.B. durch Themes anpassen können, d.h. Du benötigst nur ein abstraktes Interface für die Ausgabe, dass dann anhand der Konfiguration überladen wird. Klassisch würde man wohl ein 3-Schicht-Modell (eben MVC) entwerfen, je nach Struktur können auch mehr Schichten vorhanden sein z.B. wenn Du mehrere CMS in einer Ausgabe verbinden willst (Stichwort Mandantenfähigkeit)

Interresiert mich jetzt schon, werde sicher auch dannach mal googeln, aber wiso ist das mit dem ungefilertem Include da nicht so optimal, da kommt keiner an die Sourcen der nicht soll also kann man da nicht wirklich viel Manipulieren und auf den Server kann ohne Zugriffsrechte auch keiner andere Dateien hochladen die dadurch Includiert werden.

Nehmen wir mal an, ich kann Deinem CMS eine Extension unterschieben und durch unabgesicherte Funktionsaufrufe Variablen verändern. In diesem Fall kann ich Deinem Script dann ein eigenes unterschieben, das dann vorgaukelt das zu tun, was es tun soll, aber vielleicht noch ganz andere Dinge macht z.B. Passwörter abgreifen bevor sie gehasht werden. Selbst wenn ich nur an gehashte Passwörter komme, dann kann ich aber, weil Du keinen Salt verwendest evtl mit Hilfe einer Rainbow-Table entsprechende Passwörter generieren und mich in Dein System einloggen bzw. mir dadurch auch evtl andere Rechte erschleichen.

Ich kann evtl ebenso die Datenbankverbindungsdaten umbiegen bzw. Datenbankzugriffe manipulieren oder ein Cross-Site-Scripting verwenden.

Ich verweise Dich einmal auf die PHP Dokumentation PHP: include - Manual auf das Beispiel 3. Wenn es mir möglich ist, dass ich den include-Pfad so verändern kann und erlaubt ist eine URL dort zu platzieren und auszuführen, kann ich Deinem CMS jeden beliebigen PHP Code unterschieben.

Generell gilt immer: Niemals ungeprüfte Eingaben verwenden.

Zusätzlich ist dieses zusammenbauen von Includepfaden schwer wartbar und auch ein großes Sicherheitsrisiko. Wenn man schon einen OOP Ansatz verwendet, dann sollte man auch die Autoload-Methode von PHP verwenden ( PHP: Autoloading - Manual ). Damit kann ich zentral Codedateien nachladen und vor allem ich kann die Eingaben zentral prüfen. Verwendet man noch Namespaces, dann kann man die Steuerung der zu includieren Dateien sehr fein differenzieren.

Da Du intern ein ORM Framework verwendest und soweit ich gesehen habe, es ebenfalls von Dir ist, wäre die Frage warum nutzt Du nicht etwas fertiges wie z:b. Propel, ReadBeanPHP oder Doctrine? Bzw. warum abstrahierst Du die Datenbankanbindung nicht von Deinem ORM z.B. mit PDO oder ADODB? Der Vorteil einer weiteren Abstraktion ist, dass Du nicht weitgehend datenbankunabhängig bist, zusätzlich die Eingaben korrekt für die Datenbank maskiert werden und Du letztendlich viel einfachere mehrere Systeme supporten kannst. Nutzt Du ein fertiges ORM kannst Du es einfach verwenden und der Pflegeaufwand / Bugfixing würde für Dich wegfallen.

Nachtrag: Also wenn der User da was einzugeben hätte und eine Usereingabe dort verarbeitet werden würde dann hätte ich Dich jetzt absolut verstanden und nicht dannach gefragt !!!

Die Anmerkungen, die ich geschrieben habe, sind für mich eigentlich die wichtigen Punkte, denn bevor man Themes oder Extensions entwickeln kann, muss das Core auf soliden Füßen stehen, denn wenn z.B. das Interface der Extensions nicht gut durchdacht ist und dieses geändert werden muss, dann zieht dies auch noch zusätzlich viele Änderungen und Inkompatibilitäten der Extensions mit sich. Wenn Du im Core Lücken bezüglich der Sicherheit und Struktur hast, dann wird es mit der Zeit sehr schwierig diese zu isolieren und zu beheben, denn je umfangreicher das Core wird, um so wichtiger ist es dass das Core übersichtlich ist.

Wenn ich bei einem solchen Projekt mitarbeiten würde, dann setze ich also voraus, dass ich mich auf ein funktionierendes Core verlassen kann (und mich nicht darum kümmern muss) oder ich eben zuerst einmal mit anderen Entwicklern Zeit investieren muss, damit das Core funktioniert, bevor man überhaupt andere Entwicklungen angehen kann. Ein Core zu entwickeln während noch andere Dinge parallel laufen ist ein fast unmögliches Unterfangen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

(nehm/nehmt es mir nicht übel ist was mehr geworden, aber es muss auch keiner Lesen der nicht möchte Ok.! Hab auch versucht nicht allzu trocken zu schreiben!)

Hi flashpixx,

Hast ja in einigen Punkten nicht unrecht und mag aus deiner Perspektive auch alles richtig sein. Allerdings ist meine Vorgehensweise gar nicht so abwegig, im Prinzip geh ich nach den Grundsätzen der Agilen Softwareentwicklung vor, was aber deine Kritik an der Art zu dokumentieren nichts abtut den dort hätte ich wirklich von vornherein vllt. Doxygen oder ein anderes Werkzeug berücksichtigen sollen!

Die Sache mit dem Autoload habe ich auch implementiert wenige Zeilen unter der von Dir geposteten. An anderen Stellen erachte ich es nicht als notwendig und unter bestimmten Voraussetzungen sehe ich da sogar ein größeres Sicherheitsrisiko als beim konventionellen Inkludieren. Allerdings so gesehen ist meine Lösung welche die Komponenten laden tut auch nicht sicherer als mit Autoload, tut aber im Prinzip das gleiche aber auf die Aufgabe optimiert und kann um den Aspekt der Sicherheit sehr einfach erweitert werden!

Ein vernünftiges Versions Control System wäre sicher nicht verkehrt, aber wie gesagt auch da erachte Ich meine momentane Lösung als ausreichend (will damit nicht sagen Optimal!).Schiebe den letzten Enwticklungstand ins Repo über FTP (könnte mir auch eine Binary schreiben die das macht und geändert Dateien in die Repos hochladen tut aber hier werde ich bei Zeiten dann doch ein ‚VCS‘ nutzen denn sowas ist nicht mein Primärziel und auch zu sehr „Pille Palle“) und lade Ihn dann über den Updater auf das Aktuelle System wo ich gerade Programmiere (2-4 Systeme!). Das hat aber auch nicht viel mit einem ‚VCS‘ zu tun aber es erfüllt momentan seinen Zweck!

Also nochmal zum Core, eigtl. sollte dieser für Extension-Entwickler als Blackbox gesehen werden! Diesen werden bestimmte Schnittstellen zur Verfügung gestellt, wie die Komponente Anmelden und deren Funktionen damit diese auch gleich mit im Rechtemanagement migriert sind!

Nur Beispiel! (Pseudocode, ist aber ähnlich implementiert!)


Component::RegisterComponent($name, $ORMC, $displayname);

Component::RegFunction($name);

Component::RegObjFunction ($name);

Hmm ok sollte da auf jeden Fall vllt. doch erst mal eine kleine Hilfe in Dokumentform anbieten dem Agilen vorgehen zum Trotz! Außerdem hilf das außenstehenden beim Einstieg! Und die Klasse Componente stellt ja einige zusätzliche Funktionnen zur Verfügung!

Dann besteht die Möglichkeit durch die Entwickelte Komponente im Prinzip die ganze Ausgabe durch diese zu Realisieren, das soll und muss auch so sein! Damit ist auch das auf dieser Ebene der Abstraktion von Dir angesprochene MVC so gesehen hinfällig!

Bricht man es nun aber hoch haben wir dennoch ein MVC und zwar ein Konsequentes!

Datenbankstruktur bzw. ORM Klassen beschreiben das Modell!

Die Klassen bzw. die Komponenten stellen das Control dar was auch den Content für das View in diesem Falle CSS zur Verfügung stellt. Das Control sagt was angezeigt wird also welches HTML Element aber das View also das CSS bestimmt wie es dargestellt wird!

Das Layout des generierten HMTL also der Elemente sollte nur durch CSS bestimmt werden, konsequent als auch nur möglich, darum habe ich es bisher auch so gelöst wie ich es gelöst habe! Werde da auch trotz deiner Anregungen erst mal keinen anderen Weg einschlagen denn wirklich Falsch ist es ja nicht, außer ich habe da jetzt etwas Grundlegendes außer Acht gelassen!

Warum ein eigenes ORM? Weil ichs kann *grins (oder glaube es zu können!), ney mal Spass bei Seite.

Es ergab sich halt dass ich das als Abschlussprojekt machen konnte, und ich fand es eine sehr schöne Interessante und auch nicht allzu lapidare Angelegenheit. Neben dem angestrebten Soll-Konzept schrieb Ich in meiner Freizeit ein Blogsystem (wollte ich zumindest, daraus wurde im Eifer irgendwie ein CMS ;) ! ) um Fallstricke zu testen und weitere Anforderungen für die Weiterentwicklung nach dem Projekt zu Analysieren und auch die Fehlerfreiheit des bisherigen Entwicklungstandes qualitativer Sicherzustellen das war im Rahmen des Projektes nicht möglich dort hatte ich zwar kleinere Unittests aber 70 h ( naja weist ja was zur Verfügung steht) da musste ich natürlich Abstriche machen!

Habe mir auch flüchtig mal andere ORM Projekte angesehen, und muss sagen ich habe es gut gelöst! Auch das von Dir angesprochene mit dem PDO, wenn du Dir die Architektur des ORM mal genauer ansiehst! Allerdings musste ich auf Rücksicht der Zeit das mir bis zu diesem Zeitpunkt verfügbare Wissen zurückgreifen um den Ablauf nicht zu gefährden! Deswegen Entschied ich mich für MySQL diesen Connector schrieb ich zwar außerhalb des Projektrahmens aber stand dennoch unter Zeitdruck! Und da die Connectoren durch Art und Weise der Abstraktion im gesamten die Ich vornahm austauschbar sind was alles Intuitiv geschah. Und das gerade eben durch mein ständiges Rad neu Erfinden und meine langjährige praktischen Erfahrung und dem Konzept des Agilen Entwicklungsprozesses! Denke du bist eher der Theoretiker?, und hast mehr Fachwissen, ich dagegen habe das irgendwie im Gefühl. Und wenn ich mein schaffen Reflektiere und auch mit anderen Dingen Vergleiche ist mein Fazit mein Weg ist hier und da Identisch und i.d.R. mache ich es schon Richtig von Logik-, Syntax und Programmierfehlern die auch jedem anderem genauso mal passieren ganz abgesehen!

Weist doch wie es heißt „Viele Wege führen nach Rom“ gut der eine mag Beschwerlicher sein als der andere aber scheint so als wenn ich in dieser Beziehung eine masochistische Ader habe :D .

Aber wenn ich es mir nicht zutrauen würde oder mir nicht Sicher wäre würde ich mir das auch nicht antun, ich habe nicht zuletzt wirklich Spaß am Programmieren, hmm nein, viel mehr es hängt da wirklich Herzblut dran! Und ich könnte mich Sicher auch an anderen Projekten Beteiligen aber das Ist nun mal nicht meins, kann ja auch nicht jeder gleich gestrickt sein! Ich bin lieber in der Rolle des Initialisators ohne da eine Chefrolle spielen zu wollen, nein viel mehr um etwas auf die Beine zu stellen was SPASS macht! Wer keine Lust drauf kann doch wegbleiben auf die Kirmes gehen oder sich an anderen Projekten beteiligen oder was auch Immer, aber unproduktive Kommentare bringen keinem Weiter außer dem Poster ein gepuschtes Ego wie Toll er doch ist! Bei sowas krieg Ich echt Wut denn so ein Verhalten ist für einen Informatiker, Programmierer bzw. IT’ler nicht angemessen! (Nur mal so am Rande, habe da leider in letzter Zeit heftige Erfahrungswerte sammeln dürfen! ;) )

Ok. Aber in einigen Punkten hast du wie gesagt Recht, ich sollte an meiner Art zu Dokumentieren doch ein wenig Arbeiten und bei Projekten wo absehbar ist das ich diese als Open-Source veröffentlichen werde auf jeden Fall einen Style-Guide aufstellen und mich auch selber Konsequent dran halten!

ORM & CMS sind ja nicht die Einzigen größeren komplexeren Projekte die ich bisher gemacht habe wo letztlich ein Umfang und eine Funktionalität zu Stande kam der auch anderen nützlich sein kann, da kann ich aber 100% Blackboxen *hehe und es z.B. Nur als DLL oder StaticLib. rausgeben, denn waren anfangs auch nur kleinere „hach Ich lerne jetzt mal das und das“, und dann hatte Ich auf einmal schon ein umfangreiches 2D Grafikframework usw.

So das war mal ein Roman, aber mir blieb mal eben echt nichts anderes übrig, um Mich, mein Projekt und meine allg. Art des Vorgehens auch mal auf Fachlicher Ebene zu verteidigen.

Ich hoffe ich habe es wenigstens nicht allzu trocken geschrieben so dass der ein oder andere vllt. ein wenig Kurzweil dabei hatte.

Hoffe auch alle Punkte abgedeckt zu haben die du angesprochen hast (und das der Text jetzt ins Forum passt *hehehe)

Und flashpixx nochmal dickes Danke das du überhaupt Interesse gezeigt hast und Dir sogar die Mühe gemacht und Zeit (das aller aller wertvollste was ein Mensch überhaupt hat!) genommen hast Dir den Code mal ein wenig anzuschauen

!

Mfg. Patrick

PS: Habe mal den CKEditor probiert, also sogar flink migriert passt sich sogar irgentwie 1:1 ins momentane Design. Mal sehen ob ich den letztlich wirklich als Standardeditor nutze, aber optional sollte der doch zur Verfügung stehen und da sehe ich auch ein, mal die Finger vom neuerfinden von Rädern zu lassen ;), aber eine JS freie Alternative sollte es dennoch geben bzw. möchte ich haben, somit Optional !

Bearbeitet von Patrick_C64
Link zu diesem Kommentar
Auf anderen Seiten teilen

Die Sache mit dem Autoload habe ich auch implementiert wenige Zeilen unter der von Dir geposteten. An anderen Stellen erachte ich es nicht als notwendig und unter bestimmten Voraussetzungen sehe ich da sogar ein größeres Sicherheitsrisiko als beim konventionellen Inkludieren.

Ich habe den Code nur überflogen, also nicht gesehen.

Ein vernünftiges Versions Control System wäre sicher nicht verkehrt, aber wie gesagt auch da erachte Ich meine momentane Lösung als ausreichend (will damit nicht sagen Optimal!).Schiebe den letzten Enwticklungstand ins Repo über FTP (könnte mir auch eine Binary schreiben die das macht und geändert Dateien in die Repos hochladen tut aber hier werde ich bei Zeiten dann doch ein ‚VCS‘ nutzen denn sowas ist nicht mein Primärziel und auch zu sehr „Pille Palle“) und lade Ihn dann über den Updater auf das Aktuelle System wo ich gerade Programmiere (2-4 Systeme!). Das hat aber auch nicht viel mit einem ‚VCS‘ zu tun aber es erfüllt momentan seinen Zweck!

Da würde ich Dir Git ans Herz legen, denn Du kannst im Moment das ganze "dateibasiert" nutzen, wenn das Projekt größer wird, packst Du das Repo auf einen Server und die Plugins kannst Du über die Git-SVN Schnittstelle direkt dann aus dem SVN in das CMS ziehen.

Dann besteht die Möglichkeit durch die Entwickelte Komponente im Prinzip die ganze Ausgabe durch diese zu Realisieren, das soll und muss auch so sein! Damit ist auch das auf dieser Ebene der Abstraktion von Dir angesprochene MVC so gesehen hinfällig!

Wieso !? Das MVC Pattern besagt nur, dass wir eine Komponente haben, die Daten vorhält bzw diese pusht. Dann haben wir eine Komponente, die die Daten in irgendeiner Weise rendert und einen Controller, der zwischen diesen Schichten vermittelt. Schau Dir Deinen Code an, Du rufst doch z.B. im Code "klasse::BR" auf, was so denke ich, einen br-Tag im HTML Code erzeugt, d.h. aber bei Dir würde der Controller fehlen, denn Dein Model pusht die Daten direkt an den View.

Warum ein eigenes ORM? Weil ichs kann *grins (oder glaube es zu können!), ney mal Spass bei Seite.

Da würde mich interessieren, wie Du Vererbungshierarchien umsetzt, denn dies sehe ich bei ORMs als generelles Problem. Man erzeugt durch den MDA Ansatz viele Tabellen ohne wirklich nennenswerte Informationsstruktur zu gewinnen.

Und das gerade eben durch mein ständiges Rad neu Erfinden und meine langjährige praktischen Erfahrung und dem Konzept des Agilen Entwicklungsprozesses!

Ich halt eigentlich eine Mixtur, aus agil und klassischem Ansatz für sinnvoll. Agil in dem Bereich wo ich schnell reagieren muss, klassisch in den Bereichen bei denen ich über längere Zeiträume planen kann.

Denke du bist eher der Theoretiker?, und hast mehr Fachwissen, ich dagegen habe das irgendwie im Gefühl.

Ich bin beides, da ich über einige Jahre Praxis und Theorie verfüge. Ich denke eine rein "gefühlsbasierte" Entwicklung wird bei großen / komplexeren Projekten scheitern, denn gerade dort benötigt man das Fachwissen. Ohne Fachwissen geht es nicht und zusätzlich macht das Fachwissen an vielen Stellen das Design leichter.

Und ich könnte mich Sicher auch an anderen Projekten Beteiligen aber das Ist nun mal nicht meins, kann ja auch nicht jeder gleich gestrickt sein!

Du kannst, ich hatte dies hier auch schon mal gepostet, unter WebLaTeX | flashpixx.de hineinschauen. Dies ist zwar kein CMS im eigentlichen Sinne, sondern dafür gedacht LaTeX über ein Webinterface im Rahmen von Arbeitsgruppen zur Verfügung zu stellen.

Als weiteres Projekt, das nicht PHP bezogen ist, ist Machine Learning Framework | flashpixx.de

Deinen Ansatz bezüglich ORM überdenke ich zurzeit, ob ich diesen eben nicht in mein WebLaTeX Projekt übernehmen soll. Ich sehe eben bei ORM nur das Problem der Hierarchien

So das war mal ein Roman, aber mir blieb mal eben echt nichts anderes übrig, um Mich, mein Projekt und meine allg. Art des Vorgehens auch mal auf Fachlicher Ebene zu verteidigen.

Dies ist ja auch nicht böse gemeint, sondern meistens hilft es die eigene Arbeit auch mal kritisch zu sehen

Und flashpixx nochmal dickes Danke das du überhaupt Interesse gezeigt hast und Dir sogar die Mühe gemacht und Zeit (das aller aller wertvollste was ein Mensch überhaupt hat!) genommen hast Dir den Code mal ein wenig anzuschauen

Das mache ich durchaus gerne.

Gruß und frohes Schaffen

fpx

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi flashpixx,

sry hatte die letzten tage echt keinen Kopf dafür zu Antworten! Wie meinst du das mit den Vererbungshierarchien bzw. auf was bezogen auf die Tabellen bzw. wie ich das Extend und Abstract gelöst habe, also die Relationen/Kardinalitäten?

Sry die anderen Punkte werde ich erstmal vernachlässigen! Bin echt down heute, erstes Vorstellungsgespräch gehabt und bin schon am überlegen ob ich mit meinen 15 Jahren Programmiererfahrungen und meinem Fachinformatiker nicht doch lieber iwo ans Band in die Produktion gehen sollte :( , und dann trudelten die Tage auch noch einige absagen rein .... naja das wird schon *hoff! Geht dem einem oder anderem hier sicher ganz genauso!

So, versuche jetzt auch das ORM mit ordentlicher Doku ala Doxygen zu versehen will ja jetzt auch angesichts des Berufsabschlusses alles ein wenig professioneller angehen auch wenn ich die Erfahrungen und das Know How von 15 Jahren Programmieren habe viel Wert ist das anscheinend nicht xxxx Euro im Monat (<1600 Brutto! 40h!) (mir wird irgentwie grad schlecht!) aber ob Unternehmensbezogen oder nicht Wissen und Know how ist mehr als genug vorhanden und das so unter Wert verkaufen :( ney .... , naja sry. bin echt grad frustriert. Und fühl mich so richtig veräppelt.

Versuch nächstemal wieder ein wenig sachlicher zu werden und mehr Topic, aber heute gelang mir das echt nicht, und da ich im Freundeskreis keine IT affinen Menschen habe heul ich mich halt bei euch aus ;) denn Ihr könnt das am besten nachvollziehen!!!

mfg. Patrick

Bearbeitet von Patrick_C64
Link zu diesem Kommentar
Auf anderen Seiten teilen

Wie meinst du das mit den Vererbungshierarchien bzw. auf was bezogen auf die Tabellen bzw. wie ich das Extend und Abstract gelöst habe, also die Relationen/Kardinalitäten?

Vererbung ( http://de.wikipedia.org/wiki/Vererbung_(Programmierung) ) ist Grundlage der OOP

[...] wenn ich die Erfahrungen und das Know How von 15 Jahren Programmieren habe [...]

Bei 15 Jahren Erfahrung, gehe ich davon aus, dass Du weisst was Vererbung ist und da hätte ich jetzt vom Code auch etwas mehr erwartet

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi flashpixx,

vorweg... ein paar Posts drüber, ich wollte Dir in keinster Weise praktisches Wissen/Kompetenzen aberkennen mit meiner gemachten Aussage das du eher Theoretiker bist, war eher ein Lob an deine Kompetenzen die ich aufgrund deiner Web-Seite an Dir gesehen/arahnt habe! Und jetzt brätst du mir hier so einen vor :( Naja vllt. war mein Satz aber auch ein wenig blöde formuliert!

Natürlich weiss ich was Vererbung ist, dein Satz im Zusammenhang verunsicherte mich aber!

ZItat:

"......... Man erzeugt durch den MDA Ansatz viele Tabellen ohne wirklich nennenswerte Informationsstruktur zu gewinnen."

Und da wir eben mehrere Ebenen haben wollte ich ganz genau Wissen auf was du dich beziehst! Die Klassen als solche (ORMO/ORMC eher nicht nehme ich an), die Instanzierten ORM Klassen (Tabellen) oder eben die daraus resultierende Struktur der Tabellen, dein Satz ist da ein wenig unklar für mich nicht zuletzt da auch hier einige Dinge "nicht immer klar und eindeutig definiert" bzw. verwischt sind was in der Informatik nicht selten ist, aber vllt. ist es einfacher mir Unwissenheit vorzuwerfen als da einfach die Frage nochmal genauer zu stellen!

Warum mein Code so schlampig ist erklärte ich schonmal ....

Kind, Frau, Arbeit, Haushalt kaum Zeit und Hobbyprogrammierung zum Spass! Funktionalität und vorrankommen haben in dem Fall priorität und nicht ästetischer Code nach StyleGuide und Konventionen, auch wenn es jetzt problematisch ist im Zusammenhang dessen das ich mitstreiter bzw. Unterstützung suche, ist es nichts was ich nicht ändern kann und das tue ich, nicht zuletzt aufgrund deiner Anregungen, darum war deine Anmerkung überflüssig und ich wollte mich damit (meine Erfahrungen) nicht wichtig machen sondern lediglich sagen das ich auf praktischer Ebene nicht unbeholfen bin, klar habe ich defizite in der Theorie hier und da aber Vererbung nicht zu kennen/können naja weiss echt nicht wie ich das jetzt auffassen soll, bist du so?, war das unbedacht? oder einfach nur provokant?

Naja wenn Styleguide und Kommentierung das einzige sind was problematisch ist kann ich damit leben, daran kann ich arbeiten, bin trotzdem ganz schön entäuscht mitlerweile, naja zuletzt bin ich sicher auch ein bischen selber Schuld. Nix desto trotz alles läuft wie gewünscht es ist einfach zu erweitern und und und, also auch wenn der Code schlampig ist meine Ziele bzw. das Sollkonzept ist umgesetzt, und wenn es darum geht einem Kunden schell Ergebnisse zu liefern ohne Rücksicht auf das drumm herum bin ich der Richtige, dafür in anderen Sachen vllt. eben nicht das ist in Ordnung bin eben auch nur ein Mensch aber damit auch in der Lage an mir zu arbeiten :) !

Soo ich hoffe ich kann mich in Zukunft zügeln und werde mich weniger "profilieren" aber so bin ich nun mal halt, zudem letzlich wurde ja eher meine Art etwas zu tun "diskreditiert" (vllt. zurecht ;) !!) als weniger das Projekt als solches!

Wie gesagt mehr als an den Punkten und anderen zu arbeiten die flashpixx aufführte kann ich erstmal nicht machen um euch eine Unterstützung vllt. doch noch schmackhaft zu machen.

So wegen meiner BTT oder auch nicht, bin momentan zu Emotional (gang ganz großes Sry. nochmal dafür !!!) bekomm ich ja selber mit, deswegen hatte ich auch so spät und kurz gebunden geantwortet is momentan alles nicht so einfach Familie+Zukunftsänsgte, Absagen und/oder Lohnangebote jenseits von gut und Böse.

mfg. Patrick

(ps. habe mir deine Seite schon nach deinem 1. Post angesehen wegen deinen im Vorpost angesprochenen Projekten, sehr Interessante Seite! Aber ich bin nicht der Typ der sich Projekte sucht zum Mitmachen, und das ist doch nichts verwerfliches jeder eben wie er will und andere suchen sich eben Interessante Projekte zum mitmachen so ist für alle Seiten gesorgt! Projekte zum mitmachen werde Ich hoffentlich noch zu genüge im Berufsleben bekommen. Für meine Freizeit ist das aber nichts.)

Bei Versuch 4 das ganze hier kürzer zu gestallten habe ich das Handtuch geworfen.

Bearbeitet von Patrick_C64
Link zu diesem Kommentar
Auf anderen Seiten teilen

Und da wir eben mehrere Ebenen haben wollte ich ganz genau Wissen auf was du dich beziehst! Die Klassen als solche (ORMO/ORMC eher nicht nehme ich an), die Instanzierten ORM Klassen (Tabellen) oder eben die daraus resultierende Struktur der Tabellen, dein Satz ist da ein wenig unklar für mich nicht zuletzt da auch hier einige Dinge "nicht immer klar und eindeutig definiert" bzw. verwischt sind was in der Informatik nicht selten ist, aber vllt. ist es einfacher mir Unwissenheit vorzuwerfen als da einfach die Frage nochmal genauer zu stellen!

Ach so, sorry, sag das doch.

Es ist ja bei ORM das Problem, wie man eben die Vererbungshierarchie der Klassen aufbaut, ich meine man kann da naiv heran gehen und sagen pro Klasse eine Tabelle. Der Ansatz führt dann halt dazu, dass man die Datenbank extrem aufbläht und nicht wirklich da neue Informationen gewinnt bzw. in diesem Fall hat man sogar Informationen redundant.

[...] ich auf praktischer Ebene nicht unbeholfen bin, klar habe ich defizite in der Theorie hier und da aber Vererbung nicht zu kennen/können naja weiss echt nicht wie ich das jetzt auffassen soll, bist du so?, war das unbedacht? oder einfach nur provokant?

Das war nicht böse gemeint. Nur Du hattest ja in Deinem letzten Post geschrieben, was ich so interpretiert hatte, dass Du mit der aktuellen Berufssituation nicht zufrieden, ich übertreibe jetzt die Formulierung etwas: "Bei 15 Jahren Programmiererfahrung hätte ich mehr Gehalt verdient".

Aufgrund des hier von Dir vorgestellt Codes und der Diskussion, wäre ja vielleicht das der Grund bezügl des Gehalts. Ich meine praktisch Programmieren kannst Du, das steht außer Frage, aber wie sieht es mit der Theorie aus!? Code schreiben und Probleme sinnvoll lösen sind eben zwei verschiedene Dinge

Naja wenn Styleguide und Kommentierung das einzige sind was problematisch ist kann ich damit leben, daran kann ich arbeiten, bin trotzdem ganz schön entäuscht mitlerweile, naja zuletzt bin ich sicher auch ein bischen selber Schuld. Nix desto trotz alles läuft wie gewünscht es ist einfach zu erweitern und und und, also auch wenn der Code schlampig ist meine Ziele bzw. das Sollkonzept ist umgesetzt, und wenn es darum geht einem Kunden schell Ergebnisse zu liefern ohne Rücksicht auf das drumm herum bin ich der Richtige, dafür in anderen Sachen vllt. eben nicht das ist in Ordnung bin eben auch nur ein Mensch aber damit auch in der Lage an mir zu arbeiten :) !

Sie doch das nicht so negativ ! Schau, Du hast hier Code vorgestellt, gut ich hab ihn ein wenig zerrissen, aber Du hast durch diese Diskussion selbst was gelernt und das ist doch das was wichtig ist. Du hast selbst erkannt, dass da noch Probleme sind, nun kannst Du sie verbessern und wirst vielleicht da manches auch in die Berufsprobleme mit übernehmen, d.h. Du entwickelst Dich weiter. Überdenke mal einfach die besprochenen Punkte und versuche sie mal zu verbessern ( z.B. zu den Hashingalgos Portable PHP password hashing ("password encryption") framework )

Soo ich hoffe ich kann mich in Zukunft zügeln und werde mich weniger "profilieren" aber so bin ich nun mal halt, zudem letzlich wurde ja eher meine Art etwas zu tun "diskreditiert" (vllt. zurecht ;) !!) als weniger das Projekt als solches!

Das war/ist nicht meine Absicht. Nur ich bin halt ein Perfektionist, d.h. man kann immer was besser machen *g*

So wegen meiner BTT oder auch nicht, bin momentan zu Emotional (gang ganz großes Sry. nochmal dafür !!!) bekomm ich ja selber mit, deswegen hatte ich auch so spät und kurz gebunden geantwortet is momentan alles nicht so einfach Familie+Zukunftsänsgte, Absagen und/oder Lohnangebote jenseits von gut und Böse.

Ich denke Dir macht Dein Projekt Spaß, also lass' Dir nicht den Spaß vermiesen. Du hast doch gute Grundansätze drin z.B. ORM (ich persönlich kann mich dafür zwar nicht begeistern, aber egal), versuch doch mal ganz ohne den Ballast des Codes zu überlegen, wenn Du von dem Konzept des ORM überzeugt bist, dieses vollständig in Deinem CMS umzusetzen. Wenn man z.B. sagt meine "Webseite", die man real im Browser sieht ist ein Objekt, dieses Objekt besteht aus Textobjekten, Div Objekten, Linkobjekten usw. Sprich veränderst das Konzept des CMS dahin, dass wirklich vollständig OOP arbeitest. Das wäre jetzt zwar der theoretische Ansatz, aber vielleicht magst Du darüber einmal nachdenken. Es ergibt dann eine Ableitungshierarchie, z.B. Webseite => Div => Text, das CMS muss dann wirklich nur "Listen von Objekten" verwalten und dann diese passend verarbeiten.

Aus dieser Position kann man nämlich durch auch sehr interessante Sache machen Sprich könntest Du eine Seite so aufbauen und dann nur dem Seitenobjekt eine render-Methode geben, was den HTML/CSS/JavaScript Code erzeugt

ps. habe mir deine Seite schon nach deinem 1. Post angesehen wegen deinen im Vorpost angesprochenen Projekten, sehr Interessante Seite! Aber ich bin nicht der Typ der sich Projekte sucht zum Mitmachen, und das ist doch nichts verwerfliches jeder eben wie er will und andere suchen sich eben Interessante Projekte zum mitmachen so ist für alle Seiten gesorgt! Projekte zum mitmachen werde Ich hoffentlich noch zu genüge im Berufsleben bekommen. Für meine Freizeit ist das aber nichts.

Der Vorteil wenn man an einem Projekt mitarbeitet ist, dass man nicht alleine steht und durchaus jemanden hat, der auch mal über den Code drüber schauen kann. Ich hatte evtl gedacht, ob man Deine ORM Struktur in mein WebLaTeX Projekt mit integrieren kann. Mir fehlt halt selbst im Moment etwas die Zeit mich mit ORM so auseinander zu setzen, dass ich das sinnvoll machen kann.

Bearbeitet von flashpixx
Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 1 Jahr später...

Hallo flashpixx! Hallo Fi.de Community!

Zitat:"... Du hast durch diese Diskussion selbst was gelernt ...."

Habe ich mein bester :) (wirklich Aufrichtig und lieb gemeint, so wie zu nem guten Kumpel!!)

Zitat :".... Außerdem solltest Du auf ein MVC Pattern übergehen, damit die einzelnen Bereiche passend getrennt werden. ..."

Habe ich, und ich knie nieder vor Dir ;) für diesen produktiven Ratschlag, nun habe ich mich glaub 2 Jahre hier nicht mehr in diesem Kontext gemeldet! Hat auch seinen Grund, ich habe deine Ratschläge beherzigt und ein MVP-Framework entwickelt und auf dieser Basis noch einmal ein CMS mit dem alten ORM und meiner BBCodeEngine :) auch wenn dass ORM unter der Haube, ich sag mal so wie es ist, :"Ka**e" ist, das Interface ist im Prinzip doch schon mehr oder weniger gut durchdacht(das ganze bekommt aber ein mächtiges Refactoring!) und ist auch recht brauchbar (stabil!!).

Meine letzten Posts waren noch ohne Berufserfahrung (außer Umschulung!) mittlerweile programmiere ich erfolgreich für die großen (u.a. VW, MAN, und deren Dienstleister) (auf Grund meiner Leidenschaft der ich wie schon geschildert jahrelang auch ohne monetären Hintergrund nachgehe!)! Kollegen fragen mich in vielen Dingen (in letzer Zeit vor allen C#,.Net :) ) , das macht mich echt Stolz :) !

Ich werde das Projekt(CMS) diesmal stillschweigent veröffentlichen, dennoch wollte ich auch wenn ich das hätte per PM machen können Dir mitteilen das deine Worte nicht ungehört im Raum verschallten! Mag ja sein dass man mich angesichts meiner anderen Ambitionen als leicht, bis stark verstahlt einschätzen könnte und zu dem bin ich auch nicht gerade der Geduldigste, aber mein "Freund"(sorry!, hoffe weißt wies gemeint ist!) selbst nach dieser Zeit habe ich deine produktiven Ratschläge nicht vergessen auf dessen Basis nun ein m.E. ziemlich "geiles" Gesamtwerk enstanden ist!

Zudem wollte ich auch denen die meinen was großes machen zu wollen auch mal Verständlich machen das sowas nicht von heut auf morgen geht, und man immer am Ball bleiben sollte ! Immer ein Ziel im Auge haben nie aufgeben! Und das es doch geht egal ob man auf Widerstand stößt, man trifft auch auf Feedback wie das von flashpixx welches einem Motivation gibt und daran sollte man sich hochziehen anstatt von negativen runterziehen zu lassen!

Das habe ich nicht durch flashpixx erkannt das ist meine Lebenseinstellung, aber bei diesem Projekt ist er eine Person die mich auf den richtigen Weg gebracht hat!

@flashpixx n herzliches dankeschön an dieser Stelle für die Konversation mit Dir !!!

Some pieces of code ......

"masterpage/layout"


<!DOCTYPE html>

<!--  PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

 -->

<html>

	<head>

 		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />


		{UseScript("content/shared/scripts/jquery-ui-1.10.3/ui/jquery-ui.js")}

	  	{UseScript("content/shared/scripts/jquery1.10.2/jquery1.10.2.js")}


 		{UseStyle("content/shared/scripts/jquery-ui-1.10.3/themes/base/jquery.ui.all.css)}		


		{UseStyle ("content/shared/view/stdlayout.css")}


		{SCRIPTS}

		{STYLES}


		<title>{ViewData(PAGETITLE)}</title>


		<script>

		$(function() {

			$( document ).tooltip();

			});

		</script>


	</head>


		<!-- Add default entries to Menus -->

		{Section ( PageMenu:


		)}


		{Section ( SiteMenu:


		)}

		<!--  -->

		<body>


			<div id="pageheader">

				<!--  <h4>c64.feuerware.com</h4> -->

				<h1>{ViewData(PAGENAME)}</h1>

			</div>

				<div id="pagemenu">

					<!-- Page.PageMenu Menu by presenter Page-->

					{RenderPartial (Page.PageMenu)}

					{RenderPartial (PageMenu)}	

					<!-- Individual PageMenu generated by Presenters-->

					{RenderSection (PageMenu)}

					<!--  Display Login Formular -->

					{RenderPartial (User.LoginForm)}

				</div>


				<div id="sitemenu">			

					{RenderPartial (SiteMenu)}

					{RenderSection (SiteMenu)}

				</div>


			<div id="mainview">

				<div id="sitecontent">

					{VIEW}

				</div>

			</div>


			<div id="sitefooter">

				{RenderSection (SiteFooter)}

			</div>


			<div id="pagefooter">

				{RenderSection (PageFooter)}

			</div>



	</body>


</html>

"Presenter" Install-Presenter wird geladen wenn kein Authfile vorhanden ist, ansonsten wird das CMS geladen diese Funktionalität /dieser Mechanismus(Algo) befindet sich allerdings außgelagert und soll hier nicht weiter interessieren! Der Installer kann als (ist eine) eigenständige MVP-Applikation betrachtet werden!

<?php

class install extends Presenter {


	private $showform=1;

	private $dbformular=null;


	/**

	 * 

	 * Enter description here ...

	 */

	function __construct()

	{	

		$this->ViewData("PAGETITLE","MVP-CMS-Install");

		$this->ViewData("PAGENAME","MVP-CMS-Install");	

	}


	/**

	 * 

	 * Enter description here ...

	 */

	function PageMenu()

	{

		$html  = \MVP::Route(array("call"=>"install","text"=>"Installation"));		

		$html .= \MVP::Route(array("call"=>"install/showhelp","text"=>"Help"));		

		$html .= \MVP::Route(array("call"=>"install/showlicense","text"=>"License"));

		$html .= \MVP::Route(array("call"=>"install/showabout","text"=>"About"));


		return $html;

	}


	/**

	 * 

	 * Enter description here ...

	 */

	function ShowHelp()

	{


		return $this->View("help");

	}


	/**

	 * 

	 * Enter description here ...

	 */

	function ShowAbout()

	{


		return $this->View("about");	

	}


	/**

	 * 

	 * Enter description here ...

	 */

	function ShowLicense()

	{


		return $this->View("license");	

	}


	/**

	 * 

	 * Enter description here ...

	 */

	function index()

	{	

		if($this->showform)

			$this->ViewData("showform",1);


		return $this->View("index");

	}


	/**

	 * 

	 * Enter description here ...

	 */

	function DBSettings()

	{


		return $this->PartialView("dbsettings",$this->dbformular);

	}


	/**

	 * 

	 * Enter description here ...

	 */

	function StartInstall()

	{	

		$dbformular = new stdClass();


		$dbformular->dbhost 	=\MVP::GetRequestArg("dbhost");

		$dbformular->dbuser		=\MVP::GetRequestArg("dbuser");

		$dbformular->dbpass		=\MVP::GetRequestArg("dbpass");

		$dbformular->db 		=\MVP::GetRequestArg("db");

		$dbformular->dbprefix	=\MVP::GetRequestArg("dbprefix");


		$auth = array($dbformular->dbhost, $dbformular->dbuser, $dbformular->dbpass, $dbformular->db, $dbformular->dbprefix);


		$this->dbformular = $dbformular;


		try 

		{

			$ORM = new ORM("mysqli",$auth);


			$fh = fopen("sec/xauth.sec","w");


			fwrite($fh,implode(";", $auth));


			fclose($fh);


			$this->showform=0;


			$this->ViewContent("<h1 style=\"color:#00bb00\">SUCCESS</h1>");


			session_destroy();


			header ("refresh:2;?" );


		}

		catch(Exception $e)

		{				

			$this->ViewContent("<span style=\"color:red\">Database Connection error!</span>");

		}

	}

?>

Das DBSettings Formular (PartialView)

{UseScript("content/shared/scripts/mvp/FormValidator.js")}


<h2>Database Settings</h2>

<div class="formular">

	{MVP(@FormBegin: @action=install/startinstall)}


		<div title="Benutzername für die Datanbankverbindung.">

		<input class="required" type="text" name="dbuser" value="{ViewModel(dbuser)}">

		Username 

		</div>


		<div title="Passwort für die Datenbankverbindung">

		<input class="required" type="password" name="dbpass" value="{ViewModel(dbpass)}">

		Password 

		</div>


		<div title="Host für die Datenbankverbindung (localhost, myhost.tld).">

		<input class="required" type="text" name="dbhost" value="{ViewModel(dbhost)}">

		Host 

		</div>


		<div title="Datenbank für das CMS (wird erstellt wenn diese nicht existiert!)">

		<input class="required" type="text" name="db" value="{ViewModel(db)}">

		Database 

		</div>


		<div title="Datanbankprefix, wenn auf der gleichen Datenbank mehrere Installationen des CMS verwendent werden sollen.">

		<input class="" type="text" name="dbprefix" value="{ViewModel(dbprefix)}">

		Prefix 

		</div>


		<div title="Startet die Installation">

		<input class="submit" type="submit" name="install" value="start install">

		</div>


	{MVP(@FormEnd:)}

</div>

Eins noch, warum mir das u.a. hier im Gedächtniss geblieben ist, erstmal weil ich die ganze Zeit an meinem Projekt neben Arbeit und Familie "weitergeargeitet" (Hobby ist ja kein Arbeit :) ) habe, und weil ich auch im Kontext meiner doch eher "unbeholfenden" Projekt-Vorstellungen schon Feedback ganz anderer Natur erhielt!

Darum hier noch mal ganz offiziel ganz ganz herzlichen Dank an flashpixx!

Mit freundlichen Gruß

Patrick

Edit:

Nachtrag: Wollte ich Dir eigentlich schon vor nem halben Jahr schreiben, aber ich wollte mich deinem Perfektionismus anschliessen :) (was musste ich mich zügeln *grieen!), und zu dem hatte ich heute auch erst die Musse, nach dem der Installer nun so 1A funktioniert dich mal einfach zu Informieren! (IIS und WebInstallation getestet!)

Bearbeitet von Patrick_C64
Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...