40€/Stück: RADOB Framework wird verkauft!

  • RADOB Framework wird verkauft!
    40€ / Stück!
    =====================

    =====================

    Sehr geehrter Interessent, sehr geehrter Leser,
    hiermit möchte ich RADOB Framework verkaufen da ich einfach nicht mehr großartig die Zeit haben werde, das Projekt weiterzuführen, bedingt durch Schule und andere Projekte - ich will's aber auch nicht einfach "vergammeln" lassen, dazu ist es mir zu schade. Angefangen habe ich, bzw. gestartet, das Projekt "RADOB" in der Nacht vom 27.07.2012 zum 28.07.2012, da mit dem Gedanken, dass das ein CMS werden soll - was sich aber nach kurzer Zeit als Blödsinn entpuppte, nachdem ich mir durchlas was ein CMS alles so drin und dran hat passte die Definition "Framework" doch etwas besser. ;)


    Mein Ziel war es einfach ein sicherererereres Gefühl zur OOP zu bekommen, damit mir das entwickeln mit der OOP im Bereich PHP leichter fällt - das gute daran war: Mir fiel somit auch C# leichter. Die Demo zum Projekt schaut etwas "komisch" aus, für komplette Programmierfremdlinge, keine Frage, aber die anderen werden sich evtl. denken: Man, da scheint echt was hinter zu stecken - und ja, so ist es. Ich würde sagen, dass was man da so sieht auf den jeweiligen Seiten ist nahezu nichts vom Gesamtumfang des Projekts. Da ich eben ein Neuling bin/war (auch in 2 Monaten kann man sich um so einiges verbessern, deshalb sehe ich mich da noch als absoluter Anfänger und mittlerweile doch als fortgeschrittener Anfänger) im Bereich OOP (langsam wird's denke ich doch besser, dass sagt selbst mein kritischer Mentor "NurPech", der mir da mittlerweile einiges zutraut) ist der Code nicht 100% Lupenrein und auch nicht unbedingt 80% - und um zum lang ersehnten Ziel zu kommen (zumindest war dies mein Ziel): WCF like coden zu können, ist es noch ein langer Weg, keine Frage, so ehrlich will ich sein - aber ein Grundstein für jedes Projekt, User Control Panel, jede Homepage, jedes kleine System ist auf jedenfall gegeben und man kann auf das bisherige so einiges aufbauen, auch mit den jetzigen Funktionen!


    Kommen wir nun mal ein wenig zum Inhalt des letztendlichen Kaufpakets. Einige Dateien (47 Dateien, 13 Ordner) werden dir bei erfolgreichem Kauf übergeben, diese Dateien bestehen teilweise "nur" aus PHP-Klassen, irgendwo dazwischen ist dann auch noch bootstrap mit einigen Dateien und so weiter, es ist also ein bunter Mix der allerdings wunderbar zusammen ausschaut (sprich das Ergebnis). Da ich mal mit mehr und mal mit weniger Ehrgeiz an RADOB arbeitete kann man an einigen Stellen sicherlich "schockiert" über den Code sein (bspw. 'ne Funktion in 'ner falschen Klasse) andererseits aber bestimmt auch mal staunen kann über doch recht komplexen Code. Ihr erhaltet nun, um zum Thema zurück zu kommen, eine .sql Datei (in den 47 Dateien inbegriffen) welche ihr schlichtweg importieren müsst' und gut ist, dann noch die MySQL-Daten in der inc.config.php anpassen und es kann losgeh'n. ;)


    Codeeinblick
    So, dann werfen wir mal einen Blick in den Code. Wie schon erwähnt ist RADOB objektorientiert geschrieben, sprich mit Klassen und Objekten ausgerüstet. Ich habe folgende Unterteilung getroffen:

    • data - Klassen
      • class.MySQL.php
      • class.File.php
    • user - Klassen
      • class.User.php
    • page - Klassen
      • class.PageRequest.php
      • class.Page.php
    • util - Klassen
      • class.BBCode.php
      • class.Cache.php
      • class.ErrorHandler.php
      • class.Language.php
      • class.News.php
      • class.System.php
      • class.XML.php

    Meist sagen die Dateinamen schon etwas zum Inhalt aus - ja, das stimmt auch größtenteils, nur ist z.B. die "class.Cache.php" sogut wie leer, da ein Cachesystem zwar als nächstes auf der Liste stand, aber nie vollendet wurde. Auch einige Features sind aus den Dateinamen entnehmbar, wie z.B.: Das BBCode-System, das Newssystem oder das Languagesystem.


    Eine Klasse (ich schnapp mir jetzt mal die MySQL-Klasse als Beispiel), schaut wie folgt aus:


    Diese Klasse können wir, so nenne ich das jetzt mal: "angenehm aufrufbar machen", sprich, wir binden Sie in die "Oberklasse" "RDB" ein, diese befindet sich im Verzeichnis /system/, dort, wo auch die ganzen Klassordner drin sind. In dieser werden alle "angenehm aufrufbaren Klassen" require_once'd und mit der Klasse "RDB" "in Verbindung gebracht", schlussendlich ermöglicht mir dies folgendes beim Beispiel von MySQL:

    PHP
    RDB::getDB()->fetchArray();


    Dies macht mir das arbeiten sehr, sehr bequem.
    RDB ist denke ich klar, ist die "RDB" (Abkürzung für "Radob") Klasse.
    getDB ist speziell die MySQL-Klasse die dort instanziiert wird. Bei der MySQL-Klasse haben wir das "Phänomen", dass sich die MySQL-Verbindungsdaten aus der inc.config.php gezogen werden.
    Mit dem Zeiger (->) führe ich nun die Methode fetchArray() aus, dies liefert mir einen Array mit Daten des zuletzt gesendeten Querys zurück.


    Ebenso gibt es z.B.:

    PHP
    RDB::getLang()->getLanguageName(SprachID);


    SprachID ist mit der gewünschten LanguageID zu ersetzen.


    Und so weiter, ich hoffe es ist soweit klar. :)


    Datenbankaufbau und Features
    Die Datenbank des RADOB Framework's hat 17 Tabelle welche jedoch noch nicht alle von nutzen sind (einiges war noch in Planung wie z.B. ein "Gefällt mir"-Button bei den News ect. pp.). Es wurde hohen Wert auf eine dynamische Datenverarbeitung gelegt, welche die Handhabung mit dem Framework leichter gestalten sollte, dies klappt auch wunderbar und ist ziemlich gut durchdacht.


    Menü- und Seitenaufbau:
    Es gibt 3 Menüsorten, wenn man so will, anhand folgenden Screenshots möchte ich den nachfolgenden Text vereinfachen:



    Nun zur Erklärung: Menü Nummero 1 ist quasi das "Hauptmenü", ja doch, das kann man so sagen. Dieses Menü ist für die grobe Kategorisierung der einzelnen Dinge angedacht worden, hier für "Start" also quasi die "Hauptseite" und "Management" eben quasi das "ACP", wie man es vom WBB/WCF kennt. Das Menü Nummero 2 baut auf Menü 1 auf, was dazu dient die "grobe" Unterteilung in eine "feine" zu machen, also eine Art "submenu", wie es dort ja auch steht. Dieses habe ich bislang in 4 Punkte unterteilt: Home (soll für allgemeine Statistiken der Seite sein), Content (die Inhalte, was aktiviert sein soll zum einfachen "an" und "ausschalten", ist gerade auch auf, wie man auf dem Screenshot erkennt), Users (für eine Userübersicht ect. pp., also eine Userverwaltung) und News (für die Newsverwaltung).
    So, und wenn ihr denkt, dass das alles war, nein: Menü 3 macht das noch sauberer und unterteilt Menü 2 auch nocheinmal (sprich Menü 3 baut sich auf Menü 2 auf) - Wahnsinn, oder? *grins*


    Die Menü's sind kinderleicht verwaltbar, derzeit nur per Datenbank, aber man kann das quasi "easy going" auch von der Page machen lassen - muss man halt coden, aber im Prinzip nicht sooo schwer (je nachdem wie man sich das vorstellt). Heißt also: Die Menü's sind dynamisch, wie fast alles auf der Page, sogut wie jeder Inhalt ist dynamisch, nur das Design nicht, kaum zu glauben: Das war noch geplant!


    Jedem Tab (also Menü 3) kann man eine .php - Datei zuweisen die man einfach in's /system/page/page/ - Verzeichnis packt. Diese wird dann im jeweiligen Tab eingebunden: Es ist also wirklich sehr bequem zu handhaben.

    Sprachvariablen:

    Es sind quasi unendlich Sprachen nutzbar, für jeden User eine andere, dies ermöglicht eine clevere Datenbankstruktur, viel mehr steckt da nicht hinter.
    Es ist möglich, bislang auch nur in der Datenbank gewissen Texten sog. "Sprachvariablen" zuzuweisen, diese sind, wo auch immer man sie haben will, abrufbar mit dem einfachen "Befehl" bzw. der Funktion:
    RDB::getLang()->getValue("rdb.hier.eine.sprachvariable");
    Dann sucht sich das System die Sprache des Users aus der Datenbank raus und schaut, wie denn die Sprachvariable "rdb.hier.eine.sprachvariable" auf der Sprache X heißt und gibt diese zurück. Ist keine Sprachvariable in der Datenbank vorhanden, dann gibt er (er = Framework) einfach "rdb.hier.eine.sprachvariable" zurück, fertig aus und Ende.


    Außerdem ist es dank der class.XML.php möglich Sprachvariablen mit einer .xml-Datei zu importieren! Glaubt ihr nicht? Ist aber wahr. Ein .xml-Beispiel findet ihr direkt hier: http://vpetritz.net/dev/UnbekanntesProjekt/languages.xml . Die Languagecodes sind in der Datenbank festgelegt - also auch: Dynamisch!


    Komponentsystem:
    Komponenten kinderleicht an- und ausschaltbar machen und alle dazugehörigen Features deaktivieren, kein Problem!


    [...]


    Dann gibt es noch so einiges: BBCode-System, welches ebenfalls dynamisch
    arbeitet, aber gut, dass mit dem "dynamisch arbeiten" muss ich, denke
    ich, nicht mehr erwähnen und vieles, vieles mehr, was entweder bereits
    vorhanden ist, oder zumindest geplant war. Alles aufzulisten wäre quatsch, da ich denke, dass sich kaum einer den ganzen Text durchlesen wird.


    ==================================================================


    Grüße bzw. "Dankeschön's" gehen raus an:
    NurPech, Maddin, InitArt, dead und alle anderen Helfer - auch an die, die vor hatten mich bei der Übersetzung zu unterstützen!


    Das Projekt kostete mich einige Stunden um es auf den jetzigen Stand zu bringen. Ich biete begrenzten Support: Es läuft, sonst wäre schließlich keine Demo möglich, oder? - Heißt also, wenn's bei euch nicht läuft, nach dem Kauf schau ich mir das Problem gerne an: Aber macht nicht mich dafür verantwortlich (ich kenn da so einige Kandidaten)... ;)


    Ansonsten könnt' ihr mir gerne Angebote zukommen lassen, per PN am liebsten, gerne auch via Skype o.ä., mir ist das relativ. Gezahlt werden kann per Überweisung oder PayPal, je nachdem wie ein Gebot/Angebot ausfällt, werde ich entscheiden, ob ich das Ding nicht mehrmals verkaufe. Nach Kauf gehen ALL' meine Rechte an dem Projekt den/die Käufer.


    Würde mich freuen einen Abnehmer für dieses, nicht unbedingt kleine, Projekt zu finden!



    Grüße aus Berlin,
    - Vincent / TutNichts.


    [Folgendes muss im Thema enthalten sein und darf nicht entfernt werden:]
    ______
    Unverbindlicher Hinweis: Die Sicherheit einer Transaktion kann am besten durch die Einschaltung eines Mittelsmannes gewährleistet werden. Weitere Informationen dazu gibt es hier.

    6 Mal editiert, zuletzt von TutNichts ()

  • Das ist weder ein "ich wünsch dir viel Glück", noch ein Showroom oder "ich finde es schade"-Bereich - wer kein Interesse am Kauf hat oder keine Fragen zum Produkt/Preis usw. hat, der soll auch bitte nichts posten. Posts, die von den "Kriterien" abweichen, werden als unnötig empfunden und als Spam verwarnt.

  • Das Framework sieht echt top aus, hatte schon das Glück teile im Voraus selbst zu testen - in meinen Augen sehr einfach aber auch schön und dynamisch aufgebaut. Hier und da fehlt es noch an Feintuning, aber das sollte keine all zu große Arbeit sein.

    Moderator der Bereiche: Coding, Vorstellungsrunde und Handelsecke. Über Verwarnungen, falls du zu den Wenigen gehörst, die eine Verwarnung von mir erhalten haben, kannst du jederzeit mit mir reden, sofern der Umgangston stimmt.


    expect us. / unkompetent. Das neue dynamisch. / easy-stripping.net - coming soon! / "9§. the entire website bestands out of english." / Vollprofi in allem, wo gibt und noch mehr; kann auch OOP.
    Kleine Coding-Frage? Schau doch in #dev im IRC vorbei, wir können dir sicher helfen.


    Ich bin für Aufträge im Bereich der Webentwicklung (z.B. User Control Panel) zu haben. Kontaktiere mich diesbezüglich einfach in einer privaten Nachricht mit deinen, möglichst konkreten, Vorstellungen.


    lesen.denken.posten. - [22:54:14] <Goldkiller2> früher gabs immer so coole user da stand in der signatur "lesen.denken.posten."


    Mafia 2 Multiplayer (m2mp.de) - Eine kostenlose Modifikation für Mafia 2, die es, ähnlich wie SAMP, erlaubt über das Internet oder LAN mit bis zu 1000 anderen Spielern zu spielen.

  • Also,
    Hab mich mal mit allem dort aus einander gesetz und bin zum entschluss gekommen, jeder der codet jeder ders kann, muss es benutzen und wenn ich sage man muss es , muss man es ,
    Es war ne super idee und gute leistung half ihm beim umsetzen.