Willkommen, Gast ( Anmelden | Registrierung )     [ Hilfe | Mitglieder | Suche ]

 
Reply to this topicStart new topic
> Erweiterung der Pluginvorlage, Einbindung von Sprachstrings
MaZderMind
Beitrag 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)
Angehängte Datei  pluginvorlage.tar ( 13KB ) Anzahl der Downloads: 33
 
Go to the top of the page
 
+Quote Post
bjoern
Beitrag 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...
Go to the top of the page
 
+Quote Post
STam
Beitrag 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 sad.gif
Und 2. was ist mit dem Frontend, gibt es keine Frontend-Sprache?

Der Beitrag wurde von STam bearbeitet: Mon. 11. December 2006, 14:30
Go to the top of the page
 
+Quote Post
MaZderMind
Beitrag 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 smile.gif

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
Go to the top of the page
 
+Quote Post
bjoern
Beitrag 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...
Go to the top of the page
 
+Quote Post
MaZderMind
Beitrag 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 wink.gif
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
Go to the top of the page
 
+Quote Post
bjoern
Beitrag 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...
Go to the top of the page
 
+Quote Post
MaZderMind
Beitrag 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
Go to the top of the page
 
+Quote Post
bjoern
Beitrag 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.

Angehängte Datei  pluginvorlage.tar ( 10KB ) Anzahl der Downloads: 6
Angehängte Datei  class.plugin_meta.php ( 13.9KB ) Anzahl der Downloads: 8


--------------------
Es wird, es wird...
Go to the top of the page
 
+Quote Post
MaZderMind
Beitrag 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 biggrin.gif
Hast aber en typo drin: scince
Und der RegEx-Fix für diesen Bug is noch nich drin smile.gif
Gruß, Peter
Go to the top of the page
 
+Quote Post
alexander
Beitrag 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 wink.gif


--------------------
SEFRENGO | a free choice ... again!
Go to the top of the page
 
+Quote Post
bjoern
Beitrag 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...
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 Besucher lesen dieses Thema (Gäste: 1 | Anonyme Besucher: 0)
0 Mitglieder:

 



RSS Vereinfachte Darstellung Aktuelles Datum: 17.5.24 - 02:41

Sefrengo ist ein eingetragenes Markenzeichen und urheberrechtlich geschützt.
Copyright 2009 Design & Daten, Alle Rechte vorbehalten.