Zum Inhalt springen

entwicklung eines cms


Empfohlene Beiträge

hallo an alle,

um direkt auf den punkt zu kommen.

ich habe die idee ein cms zu "bauen" ein eigenes und ich muss ganz ehrlich gestehen ich habe nicht einmal nen plan wie die cms teiele funktionieren und ich wollte euch fragen ob mir jemand bei dem konzept zu dem teil ein wenig helfen kann?

oder vielleicht habt ihr ja ne idee was man wie beachten muss etc.

ich bin noch in der ausbildung zum fachinformatiker und stelle mich dieser bestimmt nicht kleinen aufgabe um einen richtigen einblick in die programmierung zu bekommen.

was würdet ihr euch vorstellen was ein simples cms bringen muss, ich nene es mal cms weil mir kein passender begriff einfällt. so nach dem motto wie ne art portalmanager aber mit mysql anbindung und templates etc. da ich mich damit null auskenne denke ich der versuch ein "CMS" zu programmieren wird mir auf jeden fall helfen die lokik der verschieden sprachen zu verstehen und sinnvoll anzuwenden ob das ding am ende das bringt was ich mir jetzt vorstelle oder ob ich feststelle das ich das projekt in teilprojekte zerlegen musss und schön eins nach dem anderen mache das ergibt sich erst noch.

was haltet ihr von der idee und wer kann mir weoche tipps geben?

mfg

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich glaub du weißt nicht was da für eine Arbeit auf die zukommt ^^

CMS sind Template basieren d.h. interpreter-code ist vom rest(html) defintiv schoneinmal KOMPLETT getrennt. Es dauert EWIG bis du so etwas komplett brauchbar auf die beine stellst und es gibt 10,100,1000 was weiß ich wieviele kostenlose gute alternativen die schon alles können ... also wieso das rad neu erfinden wenn schon eins da ist ??? gruss sven

Link zu diesem Kommentar
Auf anderen Seiten teilen

ich weiß das es tausende kostenlos gibt aber das ist ja nicht sinn und zweck der übung sondern ich will den umgang mit den programmiersprachen lernen und da ich den hals voll habe oop taschenrechenr zu bauen oder das selbe in php und c# und c++ und c

will ich ein großes projekt machen was mich bestimmt überfordert aber an seinen aufgaben soll man doch wachsen oder verstehe ich das falsch

mfg

wenn es nur darum ginge das ich eins bräuchte würde ich das interxx ding installieren und loslegen aber wie gesagt darum geht es nicht

dank trotzdem

Link zu diesem Kommentar
Auf anderen Seiten teilen

ein paar nützliche Links

erster

zweiter

dritter

Zu lernzwecken sind solche Anwendungen immer gut, weil man in die Gebiete vorstößt, die man nicht ansatzweise beherrscht. PHP kann viel mehr als DB zugriff und echo $xyz. Auch Mysql oder eine andere DB kann viel arbeit abnehmen, wenn man sie richtig konfiguriert

viel spass

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hab ich was verpasst? Was soll denn typo4 sein?

Das ist doch der Codename für TYPO3 Version 4.0 :floet: :D

Immerhin ist die Bezeichnung mit der 3 (von TYPO3) und der 4 (von Version 4.0) in einem Atemzug schon sehr komplex. ;)

Irgendwie gehen mir aber hier alle Antworten an der eigentlichen Fragestellung vorbei - der Threadersteller will kein fertiges CMS, sondern Ideen&Ratschläge zum Bau eines eigenen.

Also:

1. Überlegung, was das CMS so alles können muss.

2. Entscheidung, mit welcher Programmiersprache/Datenbank das realisiert wird.

3. Know-How zu der in 2 gewählten Sprache/Datenbank ranschaffen.

4. Zaghaft loslegen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Will ja nicht drauf rumreiten, aber zum Thema "Codename für typo3 4.0" gibt's ne Diskussion auf Typo3-dev: http://lists.netfielders.de/pipermail/typo3-dev/2004-April/002635.html

Ansonsten würde ich empfehlen, zunächst mal zu überlegen was man eigentlich mit dem CMS machen möchte. Ich würde halt sagen: MySQL DB in der die Seiteninhalte und die Sitemap gespeichert werden, PHP Skripte um die Daten aus der Datenbank in die Seite zu laden und Menüs zu erstellen.

Ich denke jeder kommt irgendwann an den Punkt wo er überlegt sich sein eigenes CMS zu bauen. Ich hab das nach ca. 1 Jahr aufgegeben. Es wird meistens zu komplex. Und es gibt einfach verdammt gute CMSe, siehe typo3.

Grüße, Tobias

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hab ich was verpasst? Was soll denn typo4 sein?

sorry, hab mich verguckt hatte was anderes gelesen, war aba auch schon recht spät wie man sieht und ich war für informatik - theorie prüfung am lernen

hatte mich pers. aba auch gewundert. naja wie gesagt: gucki lucki uhrzeit

Link zu diesem Kommentar
Auf anderen Seiten teilen

kurz überlegt reichen zwei seiten und man hat ein cms

die erste seite - ich nenn sie index.php - holt sich daten aus der datenbank - die nenne ich mal news - und zeigt diese einfach an

die zwiete seite - betitel ich mit admin.php - hat n eingabefeld wo ich was eingeben kann und n speichernbutton der die daten in die datenbank schreibt

fertig

das kann man erweitern, zB ein css-editor

eine kommentarfunktion, das user kommentare zu news abgeben können

die möglichkeit, die news zu löschen (ohne direkt in die db zu gehen)

berechtigungen -> admin können news löschen, mods oder authoren nur schreiben und editieren

etc. pipapo

grundlegend halt:

backend zum bearbeiten der daten

frontend zum anzeigen der daten

was das anzeigen und bearbeiten im genauen betrifft ist da völlig egal, und wenn das backend daraus besteht, eine textdatei zu öffnen und in diese zu schreiben und das frontend diese textdatei dann ließt und ausgibt.

man hat ein conten management system

Link zu diesem Kommentar
Auf anderen Seiten teilen

kurz überlegt reichen zwei seiten und man hat ein cms

die erste seite - ich nenn sie index.php - holt sich daten aus der datenbank - die nenne ich mal news - und zeigt diese einfach an

die zwiete seite - betitel ich mit admin.php - hat n eingabefeld wo ich was eingeben kann und n speichernbutton der die daten in die datenbank schreibt

fertig

das kann man erweitern, zB ein css-editor

eine kommentarfunktion, das user kommentare zu news abgeben können

die möglichkeit, die news zu löschen (ohne direkt in die db zu gehen)

berechtigungen -> admin können news löschen, mods oder authoren nur schreiben und editieren

etc. pipapo

Bei deinen 2 Seiten fehlt noch die Vorlage zum anzeigen der Daten ;)

Und deine Aufzählung zu den News etc. sollten keine Grundlegenden bestandteile des CMS sein, sondern PlugIns/Module/Extensions (wie du die auch immer nennen willst).

Ein CMS selbst zu programmieren ist keine triviale Aufgabe, aber dauert auch nicht ewig, wie im ersten Beitrag angesprochen. Ich weiß das, weil ich selber eins geschrieben hab (und immernoch dran rumbastel und verbesser etc.)

Also erstmal brauchst du ein Skript, das nichts anderes tut, als eine Vorlage zu nehmen und sie mit Inhalten zu füllen. Das ist grob gesagt alles, was ein CMS tut und tun muss.

Was das genau für Inhalte sind regelt dann das, was man sieht und tun kann damit.

Also überleg dir (auf Papier am besten erstmal) was dein CMS können soll. Da wären z.B.:

* Vorlage auslesen

* Vorlage mit Inhalt füllen (Inhalte aus DB oder sonst woher)

* Inhalte in einem Menü o.ä. zugänglich machen

Das wären erstmal die grundlegenden Dinge. Weiter kommt dann noch dazu:

* Eine Rechtestruktur

* Inhalte nach Berechtigungen anzeigen oder nicht

* CMS erweiterbar machen (PlugIns/Module/Extensions... für Dinge wir News mit Kommentaren, Gallerien, andere dynamische Dinge...)

Front-/Backend muss nicht unbedingt sein (bei meinem gibt es z.B. kein Backend. Ist aber nicht meine Entscheidung gewesen das so zu machen), es trennt die Aufgaben aber klar voneinander ab und man umgeht damit u.U. ein paar Sicherheitsrisiken.

Um jetzt nicht noch mehr Romane zu schreiben, was ein CMS eigentlich ist:

http://de.wikipedia.org/wiki/Content-Management-System

Link zu diesem Kommentar
Auf anderen Seiten teilen

Bei deinen 2 Seiten fehlt noch die Vorlage zum anzeigen der Daten ;)

Reicht doch, wenn es als simpler Text ausgegeben wird, pff... wer braucht schon Bilder und Farben und als das Glump :D

Also ich würde empfehlen, zu versuchen, das möglichst modular aufzubauen, so hat man weniger probleme beim Erweitern.

Wenn das ganze zu statisch von den Modulen wird, dann darfst, bei ner etwas größeren Erweiterung gleich noch andere Module anpassen das XYZ ABC und pipapo wieder geht...

ich hab mich auch mal dran versucht, is aber gescheitert... zum einen wegen zu statischem aufbau, jede neue seite hat irgendwie veränderungen überall erfordert und html != html, firefox und ie differenzen sind einfach nur zum ****en, anders kann ich das nich sagen.

Ich würd Smarty als Templetaengine empfehlen, macht Spaß damit zu arbeiten, mir zumindest ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn das ganze zu statisch von den Modulen wird, dann darfst, bei ner etwas größeren Erweiterung gleich noch andere Module anpassen das XYZ ABC und pipapo wieder geht...

ich hab mich auch mal dran versucht, is aber gescheitert...

Zu statisch? Versteh nicht ganz, was du damit meinst, aber ich bin nicht gescheitert ;) Mein CMS läuft (für unsere Firmenseite) und wird grad weiterentwickelt und soll dann auch zum freien Download zur Verfügung gestellt werden.

Bei mir gibt es einen Kern, der die Hauptaufgaben übernimmet, also die Eingaben (URL + Parameter) nehmen, damit aus der DB die gewünschte Seitenstruktur bestimmen und die gewünschten Inhalte. Dann das ganze noch zu einer Seite (mit Template, aber nicht Smarty o.ä.) zusammenfügt und ausgibt.

Inhalte können statische HTML-Inhalte (aus der DB) sein, oder (bei uns) sog. Module. Ein Modul kann theoretisch alles sein, was sich aufrufen läßt und eine Ausgabe (Text) zur Verfügung stellt. In der Theorie kann damit alles was sonst auch auf einem WebServer läuft eingebunden werden. Probiert hab ich das bis jetzt nur mit eigen entwickelten Modulen und MediaWiki. Zum Anpassen und Übergeben der Daten (Benutzername u.ä.) braucht man u.U. nur ein "Startskript", was die Daten des CMS nimmt und für anpasst.

Also: ein Kern, der die Hauptsache übernimmt, die wirklich zwingend benötigt wird. Alles andere (Editieren der Inhalte, anlegen von neuen Inhalten, neuen Seiten etc.) wird per Modul gemacht.

Natürlich kommt es u.U. bei größeren Änderungen, die die Hauptstruktur betreffen, zu Konflikten... aber solche großen Änderungen sollten eher selten sein, wenn das Ding erstmal steht, und alle "normalen" Änderungen wirken sich kaum auf den Rest aus.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Zu statisch? Versteh nicht ganz, was du damit meinst...

Nun, das was du beschrieben hast ist nicht statisch, statisch wärs, wenn du zB keinen zentralen Kern verwendest, sondern jede Seite eine eigene Verarbeitung der Daten vornimmt.

Ggf. werden die Funktionen dann in eine eigene Datei ausgegliedert, aber trozdem müssen diese angepasst werden, wenn ein neues Modul einen neuen Datentyp verarbeitet oder Ein neuer Rückgabewert hinzukommt, welcher bei anderen Seiten mit speziellem Fehler gemeldet werden soll oder was auch immer.

ich hab versucht ohne DB auszukomme (was einfache Files mit einschließt)... das hat nur unnötige mehrarbeit verursacht welche mir die lust geraubt hat :/

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 4 Wochen später...

..ihr bringt mich auf ideen..

wenn ich euch was zeigen darf:


<?
session_start();
include("connect.php");
include("check.zugriff.php");
{ //if access granted
include("head.php");
include("banner.php");
include("masken.php");
include("navigation.php");
include("navigation1.php");
include("hauptfenster.php");
include("footer.php");
}
?>
[/PHP]

so sah meine index.php bisher aus. bestehend aus teilstücken die am ende zusammengefügt werden.

bekommene gedankenstöße durch diesen thread: "cms, templates"

templates find ich cool und deutlich übersichtlicher- als engine nehm ich wahrscheinlich smarty wenn mich niemand zu was anderem bekehrt.

zum thema cms sind noch ein/zwei fragen offen. bekommt jemand ne saubere definition hin um cms (content-management-system), angesichts der oben stehenden vorgabe, verstänlich in worte zu fassen? welche möglichkeiten hab ich, wie geh ich logic und struktur an?

Link zu diesem Kommentar
Auf anderen Seiten teilen

.

zum thema cms sind noch ein/zwei fragen offen. bekommt jemand ne saubere definition hin um cms (content-management-system), angesichts der oben stehenden vorgabe, verstänlich in worte zu fassen? welche möglichkeiten hab ich, wie geh ich logic und struktur an?

Kapiere irgendwie nicht ganz, was du von uns willst.

Aber zum Thema CMS/Templates: CMS ist eigentlich die strikte Trennung von Layout und Inhalt. Du hast ein Layout (Template) und dieses Layout füllst du nur mit Inhalten. Diese Inhalte verwaltest du irgendwie, aber auf jeden Fall getrennt vom Layout.

Bei deinem Ansatz ist die fertige HTML-Seite ja schon im Ansatz komplett zerstückelt und jede eingebundene Seite trägt einen Teil zum endgültigen Layout bei. Übersichtlich ist das ja nicht gerade und Änderungen möchte ich da nicht machen müssen ;)

Und ist ein serverseitiges CMS nicht das, was man im allgemeinen unter CMS versteht (also Systeme wie Joomla, Typo3 etc.)? Clientseitiges CMS ist ja ein Programm, was auf dem Client läuft und die Inhalte und das Layout auch dort verwaltet. Am Ende kommen beim clientseitigen CMS kommen statische HTML-Seiten raus, die du dann auf den Server laden musst.

Bei serverseitigen wirken sich also Änderungen an Inhalten direkt aus, bei clientseitigen musst du die Seiten erst wieder erstellen und hochladen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

öhm ähm ja *hust* vergessen wir das *grinst verstohlen*

zum thema wartung/änderung JD.: wenn du den >Kot< selbst geschrieben hast, fällt`s dir einfach neue funktionen einzubinden, muss aber jemand anders ran...:P

du hast schon recht, dass ist stuss. schreib noch nicht sehr lange mit php und hab auch noch keinen vergleich zu meinem aufbau gesehen ^^ templates sind ne feine sache, wie`s mir durchs recherchieren aufgefallen ist. die ersten schritte sind leider die schwierigsten. wie geh ich`s an? gibt`s bücher, links die sich bei euch bewärt haben?

was haltet ihr von dem?

http://www.galileocomputing.de/katalog/buecher/titel/gp/titelID-1208?GalileoSession=71170084A2lW.x.-6GE

Link zu diesem Kommentar
Auf anderen Seiten teilen

templates sind ne feine sache, wie`s mir durchs recherchieren aufgefallen ist. die ersten schritte sind leider die schwierigsten.

Mit templates meinte ich allgemein eine Vorlage, nicht unbedingt Smarty o.ä. Bei mir ist eine template im CMS einfach eine Textdatei die ein komplettes HTML Gerüst enthält und ein paar Platzhalter. Diese werden dann im Code einfach durch anderes ersetzt. Sind nur einige Zeilen Code und ob sich dafür eine template Engine lohnt... Außerdem muss Smarty ja auf dem Server installiert werden (/usr/local/lib/php/Smarty/) und das kann nunmal nicht jeder (gerade bei Webspaceanbietern). Man sollte also schon abwägen, ob man Smarty o.ä. benutzt oder es nicht lieber doch selber schreibt.

Klar kann smarty bestimmt ne Menge, aber ist das alles wirklich nötig immer?

Link zu diesem Kommentar
Auf anderen Seiten teilen

was ist denn der unterschied zwischen standard

template vorlagen --> Ausgabe = HTML.htm, Logic/Funktionen = php.php

und

der template engine --> smarty ?

Was sind für dich standard template Vorlagen? Sowas gibt es nicht. Ich meine nur, für das einfache Ersetzen von paar Textstellen braucht man kein fremdes Programm einzusetzen.

Unabhängig davon sieht meine eigene "template Engine", die ich in den meisten php Anwendungen so einsetze mittlerweile, so aus:

Oberer Teil der php-Datei = php-Teil, unterer Teil = HTML Teil. Der php-Teil besteht fast ausschliesslich aus Funktionen (bis auf paar Dinge die bei jedem Aufruf anfangs gemacht werden sollen/müssen), die ihre Ausgaben als String zurückliefern und der HTML-Teil ist ganz normales HTML und an den variablen Stellen steht jeweil ein <?php echo Funktionsname(); ?>

Ist natürlich Geschmackssache und es gibt bestimmt auch Situationen, in denen die Lösung nicht so gut ist, ein CMS (also die gesamt Ausgabe der eigentlichen Template) z.B..

Mit Smarty hab ich mich selbst nur kurz beschäftigt. Ich fand die Lösung mit einer Serverinstallation und der benötigten Ordnerstruktur etc. nicht wünschenswert. Aber genug andere schwören auf Smarty.

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...