Erweiterung der Pluginvorlage, Einbindung von Sprachstrings |
Willkommen, Gast ( Anmelden | Registrierung ) [ Hilfe | Mitglieder | Suche ]
Erweiterung der Pluginvorlage, Einbindung von Sprachstrings |
Sun. 10. December 2006, 04:30
Beitrag
#1
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 680 Mitglied seit: 09.08.2006 Wohnort: nähe Mainz Mitglieds-Nr.: 182 |
Soo neue Version.
Ich hab die vorbereitungen für volle Backendmehrsprachichkeit eingebaut, den Wiki-Artikel überarbeite ich als nächstes. Gruß, Peter
Angehängte Datei(en)
|
|
|
Mon. 11. December 2006, 01:43
Beitrag
#2
|
|
Administrator Gruppe: Members Beiträge: 1.092 Mitglied seit: 16.06.2006 Wohnort: Köln Mitglieds-Nr.: 1 |
Ich trenne den Beitrag mal ab und stelle Ihn in die Entwicklung. Neuentwicklungen gehören definitiv nicht zu den Bugs. Die Idee finde ich super. Ich werde es prüfen und wenn es OK ist, kommt es in den Kern.
-------------------- Es wird, es wird...
|
|
|
Mon. 11. December 2006, 14:27
Beitrag
#3
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 541 Mitglied seit: 27.06.2006 Mitglieds-Nr.: 8 |
Die Idee ist Super, nur die Lösung ist sicherlich nicht so toll.
Als Lösung für ein einzelnes Plugin reicht das gerade mal, als Erweiterung des Core, sprich Erweiterung der '/inc/class.plugin_meta.php', ist dieser Hack nicht geeignet... 1. So wird beim Aufruf der 'pluginname_meta.php' immer eine Sprachdatei eingebunden, schön aber letztlich ist die 'pluginname_meta.php' eine Abstraktion des Repository und nicht irgendeine Include-Datei. Für eine echte Integration müsste das schon in die '/inc/class.plugin_meta.php' eingebaut werden und der Sprachaufruf sollte eine Methode des Plugin sein, so wie alles andere auch Und 2. was ist mit dem Frontend, gibt es keine Frontend-Sprache? Der Beitrag wurde von STam bearbeitet: Mon. 11. December 2006, 14:30 |
|
|
Mon. 11. December 2006, 15:45
Beitrag
#4
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 680 Mitglied seit: 09.08.2006 Wohnort: nähe Mainz Mitglieds-Nr.: 182 |
Hi
Wenn du magst kann ich gerne die class.plugin_meta.php, die pluginvorlage.php und die Anleitung so erweitern und dann hier posten, du guckst drüber und bjoern packts ins cvs. Mit der Abstraktion hast du natürlich recht, es ist und bleibt ein hack. Aber ich als Entwickler ohne CVS-Zugriff muss halt mit den gegebenen Möglichkeiten auskommen Wegen der Frontendsprache -- die soll vom Plugin selbst eingebunden werden, Beispielcode ist in der Anleitung ja vorhanden. Wenn man aber eh die Repository-Klasse anpasst sollte es auch dafür eine methode geben. Gruß, Peter |
|
|
Wed. 20. December 2006, 13:51
Beitrag
#5
|
|
Administrator Gruppe: Members Beiträge: 1.092 Mitglied seit: 16.06.2006 Wohnort: Köln Mitglieds-Nr.: 1 |
Generell gefällt mir die Idee so gut, das ich sie so schnell wie möglich in den Core übernehmen möchte. Die Einwände von Roland halte ich für berechtigt, den aufgezeigten Lösungsweg für sehr gut.
Bleibt noch zu klären, was Frontend und was Backend ist und wie der Ablauf der Dateieinbindung ist. Backend - alles, was über die backend/main.php aufgerufen wird Frontend - alles, was über die projektXX/index.php aufgerufen wird Zu beachten ist, dass die Frontend- Sprachdatei auch eingebunden wird, wenn ein Redakteur (als Backednbenutzer) in einer Seite arbeitet. Er befindet sich dann von den Dateipfaden her im Frontend, von den gegebenen Möglichkeiten aber im "Backend". Ablauf der Spracheinbindung in der '/inc/class.plugin_meta.php' - erst einmal herausfinden, welche Sprachdatei eingebunden werden soll - dann anhand des ISO Schlüssels schauen, ob eine Sprachdatei für diesen Schlüssel überhaupt existiert. Dazu wird der Schlüssel $cfg_cms['backend_lang'] (bezieht sich auf Administration->System->Sprache des Backends) genommen. Existiert zum Schlüssel eine Datei, dann wird diese eingebunden. - Existiert der Schlüssel nicht, wird auf den Standardschlüssel ausgewichen. In Sefrengo ist das der Schlüssel 'de'. Existiert zum Schlüssel eine Datei, dann wird diese eingebunden. Andernfalls werden keine Sprachdateien eingebunden. Erweiterung der Plugnvorlage Standardmäßig sollte hier nun ein Ordner 'lang' enthalten sein, mit dem Ordner de (Standardschlüssel). Darin jeweils die Sprachdateien für frontend und backend. lang/de/backend.php lang/de/frontend.php Für mich noch interessant: Hat einer von euch beiden Zeit, sich die Programmierung umzuhängen oder mache ich es? ZITAT Aber ich als Entwickler ohne CVS-Zugriff muss halt mit den gegebenen Möglichkeiten auskommen Das CVS ist keine Bastelwiese. Da sollten nur 100%ig fixe Codes rein. Von daher wird Dir das nicht den Vorteil erbringen, den Du Dir erhoffst. -------------------- Es wird, es wird...
|
|
|
Wed. 20. December 2006, 15:48
Beitrag
#6
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 680 Mitglied seit: 09.08.2006 Wohnort: nähe Mainz Mitglieds-Nr.: 182 |
Hi
Ne das mit dem CVS war ja auch nurmal dahergesagt Hmm dein Post ist an sich nix neues -- das macht meine Implementation nämlich genau so heute schon. viel wichtiger ist die Abstraktion: die plugin_meta-Klasse muss eine Methode vererben (oder eine bereits vererbte Methode erweitern), sodass dort der einzubindende Bereich (Frontend oder Backend oder Beides) sowie die einzubindende Sprache übergeben werden. Alternativ kann die Klasse auch eine Eigenschaft vererben "autoinclude_langfiles", welche die plugin_meta-Klasse zu den von die beschriebenen Vorgängen veranlasst. Dritte möglichkeit wäre das zu automatisieren wie bie den Plugininstallationen. Ich glaube das war genau das was du meintest. Problem ist an dieser vollständig automatisierten Methode, dass ich, wenn ich z.B. viele sehr große Bereiche in einem Plugin habe, vllt mehrere Sprachdateien, eine je Bereich einbinden möchte. Dazu sollte sich zumindest per Methodenüberladung eine alternative konstruieren lassen. Rein Zeitlich geht bei mir immo garnix -> Abivorbereitung. Gruß, Peter |
|
|
Mon. 8. January 2007, 18:31
Beitrag
#7
|
|
Administrator Gruppe: Members Beiträge: 1.092 Mitglied seit: 16.06.2006 Wohnort: Köln Mitglieds-Nr.: 1 |
So Feature ist drinne. Allerdings habe ich mich an Deine Notation gehalten und lang_general.php. Das Langfile wird nur im Backend geladen. Für das Frontend gibt es dafür ja Events oder ein Modul.
-------------------- Es wird, es wird...
|
|
|
Mon. 8. January 2007, 19:23
Beitrag
#8
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 680 Mitglied seit: 09.08.2006 Wohnort: nähe Mainz Mitglieds-Nr.: 182 |
Genau, aber eigentlish sollte der Name des Langfiles frei wählbar sein.
Was genau hast du eig. jetzt genau eingebaut? Ich hab das bisher (z.B. im SFLog 02.05.00) in der sflog_meta-funktion gemacht: CODE function sflog_meta($call_files = false) { global $cms_lang, $cfg_cms; $this->dir_name = dirname(__FILE__); $lang_dir = $this->dir_name.'/lang/'.$cfg_cms['backend_lang'].'/'; $lang_defdir = $this->dir_name.'/lang/de/'; if(file_exists($lang_dir.'backend.php')) { require_once($lang_dir.'backend.php'); } else if(file_exists($lang_defdir.'backend.php')) { require_once($lang_defdir.'backend.php'); } plugin_meta::plugin_init($call_files); } Gruß, Peter |
|
|
Mon. 8. January 2007, 20:44
Beitrag
#9
|
|
Administrator Gruppe: Members Beiträge: 1.092 Mitglied seit: 16.06.2006 Wohnort: Köln Mitglieds-Nr.: 1 |
Frei wählbar kannst Du machen, indem Du die Methode load_langstrings() überschreibst. Nur zu 99% alle Fälle dürfte das nicht notwendig sein. In der Pluginvorlage habe ich um "lang/de/lang_general.php" erweitert. Kannst Du Dir ja mal anschauen.
pluginvorlage.tar ( 10KB ) Anzahl der Downloads: 6 class.plugin_meta.php ( 13.9KB ) Anzahl der Downloads: 8 -------------------- Es wird, es wird...
|
|
|
Mon. 8. January 2007, 20:46
Beitrag
#10
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 680 Mitglied seit: 09.08.2006 Wohnort: nähe Mainz Mitglieds-Nr.: 182 |
gekauft
Hast aber en typo drin: scince Und der RegEx-Fix für diesen Bug is noch nich drin Gruß, Peter |
|
|
Tue. 9. January 2007, 00:09
Beitrag
#11
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 853 Mitglied seit: 16.06.2006 Wohnort: Wien / Österreich Mitglieds-Nr.: 2 |
ok, damit es nicht zu weiteren Überschneidungen beim Posten und ein wenig Ruhe einkehrt mach ich den Thread mal vorübergehend dicht. Der Rest steht hier. Peace!
Update: So der Thread is wieder auf -------------------- SEFRENGO | a free choice ... again!
|
|
|
Tue. 9. January 2007, 00:11
Beitrag
#12
|
|
Administrator Gruppe: Members Beiträge: 1.092 Mitglied seit: 16.06.2006 Wohnort: Köln Mitglieds-Nr.: 1 |
danke
-------------------- Es wird, es wird...
|
|
|
Vereinfachte Darstellung | Aktuelles Datum: 17.5.24 - 02:41 |