[Gelöst] Module schreiben

Hallo community.

Ich arbeite mich gerade in das Framework ein.

Hab auhc erfahrung in PHP.

jetzt ist es so, dass ich gelesen habe, dass man mit Yii auch Module schreiben kann, um sie später weiter zu benutzen.

Ich wollte jetzt ein login logout modul schreiben. da es bei uns in der Firma an vielen Stellen genutzt wird.

Ich weiß aber ehrlich gesagt nicht ganz genau wie… vor allem muss es einen db zugriff dabei geben.

Ich muss die daten ja validieren.

könnt ihr mir dabei eventuell helfen? vor allem, geht es auch um das spätere einbinden des Moduls.

Besten dank schon mal im voraus!

Login/Logout hast du ja quasi schon (site/login, site/logout)

du könntest dir das hier anschauen

http://www.yiiframework.com/extension/yii-user-management/

Das ist sehr nett.

Allerdings wollte ich das schon ganz gerne alleine schreiben um das ja auhc ein wenig zu lernen.

Du hast recht. man hat es ja im prinzip.

allerdings verstehe ich es noch nciht hundertprozentig.

habe das gefühl, dass manche variablen nicht benutzt werden bei der validierung…

und auch manche geschrieben funktionen :-X

Hallo sermon,

bevor ich daran gehe, ein Modul zu schreiben, würd ich mich erst mal etwas mehr ins Framework einarbeiten. Evtl. ist ein Modul gar nicht das, was du willst. Ein Modul in Yii ist nämlich eine Art abgeschlossene Sub-Applikation mit eigenen Controllern, Models und Views. Evtl. ist das was du suchst eher ein Widget.

Mein Tipp daher: Bau doch erst mal eine Testapplikation und experimentier mit Models, Views, Controllern und Widgets rum. Module willst du wirklich erst dann schreiben, wenn du weißt, wie sie funktionieren und wozu sie gut sind. Wenns so weit ist, kannst du aber den nötigen Code leicht aus deiner Experimentierumgebung kopieren und zu einem Modul machen.

Danke für die Hilfe.

Das ist echt ne gute Sache. Ich werde echt erstmal mit dem rumexperimentieren anfangen^^

Allerdings habe ich eine frage in der main.php die sich in protected/config befindet.

dort kann man den name eingeben. Allerdings habe ich probleme mit umlauten.

ich wollte unter ‘name’=>‘Ü’, schreiben. angezeigt wird aber nichts. Wenn ich aber umlaute weglasse, sieht alles gut aus.

hab es schon mit &xyzuml; probiert. nix geht…

Schau mal hier:

http://www.yiiframework.com/doc/cookbook/16/

Speziell die Punkte 1 und 4 sind wichtig.

Das charset steht auf utf-8 keine sorge. kann ja per html auch umlaute darstellen.

es geht mir um folgende zeilen:


// This is the main Web application configuration. Any writable

// CWebApplication properties can be configured here.

return array(

	'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..',

	'name'=>'Name',

und unter name kann ich nichts mit umlauten einfügen

die Datei heißt main. befindet sihc in protected/cnfig

Das sind die aller ersten zeilen die den namen einer Seite anzeigen.

Und wiwe gesagt. es funktioniert nicht, wenn man umlaute einfügt…

Prüf bitte nochmal, dass alles sauber UTF-8 ist (Dateicodierung + Apache header). Geht bei mir ohne Probleme, muss es also auch bei dir. :)

ich benutze Galileo Helios. Also ich glaube der editor beherscht das…

Ber anscheinend bin ich irgendwie zu dumm dazu :blink:

Hab nen xampp virtuell laufen.

hab jetzt in der php.ini den default charste auf utf 8 gesetzt

hab in meinen documentroot auch ebenfalls mal die datei a.htaccess angelget.

Aber irgednwie geth nix.

werde mir mal gerade den virtuellen server an sich vornehmen.

nur wie sagt man dem den default charset??

Steht im Link oben:


AddDefaultCharset UTF-8

in die .htaccess eintragen (und evtl. prüfen, dass diese auch verwendet wird).

Also im virtuellen Server habe ich das gemacht:


AddType 'text/html; charset=UTF-8' .shtml

wie kann ich den prüfen ob die .htaccess benutzt wird? Document root ist bei mir:

Laufwerksbuchstabe:/xampp/htdocs

Ist das denn überhauptrichtig? oder meint das einen anderen Document root?

Habs mittlerweile auch so probiert:


AddType text/html .shtml

	AddDefaultCharset UTF-8

Aber immer noch nichts… :confused: langsam dreh ich durch…

Hab die htacces jetzt überall eingefügt, wo esnur ging. Und was ist?

nichts ;) Versteh ich nicht…

im header steht auch


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

Habs endlich gelöst!

Ich habe infach noch ein charset hinzugefügt.


return array(

	'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..',

	'charset'=>'iso-8859-1',

	'name'=>'Stührenberg GmbH',

und anschließend im header auch noch was verändert:


<meta http-equiv="Content-Type" content="text/html; charset=<?= Yii::app()->charset ?>" />

jetzt geht es… Endlich!

öhm… wie kann ich den Beitrag als erledigt markieren?

Willkommen im Forum ;)

Das geht leider nicht. Ich editiere dann immer meinen Post und schreibe in den Titel [GELÖST] rein ;)

Ich denke ich werde in der nächsten oder spätestens übernächsten Version des yii-user-managements eine kleine API-Dokumentation mitliefern, die die (eigentlich gar nicht so komplizierte) interna der Benutzerauthentifizierung dann erläutert. Und sollte ich genug muße haben, mache ich das auch zweisprachig, also Englisch und Deutsch…

an yum kann man nämlich einmal die authentifizierung erlernen, aber auch wie Module in yii funktionieren, nämlich ziemlich genial und elegant :)

Wenn ich das mit ner Screencast-Recording software hier endlich mal hinkriege, überlege ich auch, einen Yii-User-Management Installations&Einleitungs screencast auf youtubeGoogle Video hochzuladen… mal schauen

p.s. yum 0.8 steht in den Startlöchern, es gibt neue features wie z.B. ein quicklogin Widget (wie in der blog-demo), eine neu geschriebene Password recovery-Funktion und viele kleine Fehlerbehebungen (leider hat 0.7 immer noch viele kleine Fehlerchen, die mir tierisch auf den Nerv gehen). Wer jetzt schon reinschauen will, schaut ins SVN:

http://code.google.com/p/yii-user-management/

bis dann