einige dinge dir mir auffallen ohne in den code geschaut zu haben
du verwendest keine standard modul struktur
Code:
mod_XZY
- cache
- css
- pics
- tmpl
-- default.php
-- index.html
mod_xzy.php
index.html
helper.php ( wenn notwendig )
wenn mans uebertreiben moechte koennte man sagen, leg nen verzeichnis "assets" an und verschiebe das css verzeichnis und die css datei ( vielleicht auch noch die pics ) in dieses verzeichnis. aber das ist wohl eher geschmackssache.
die ausgabe des moduls erfolgt in der default.php waehrend die parameter oder, verarbeitung von informationen in der mod_xzy.php vorbereitet werden.
ich weiss jetzt ohne in den code geschaut zu haben nicht ob in deinem fall die "externe" integration von simplepie notwendig ist - joomla hat selbst simplepie an board und stellt darueber hinaus xml helper methoden bereit die dir bei der verarbeitung helfen.
weitere sache, du verwendest sprach-kontante anstatt ini dateien zu benutzen.
joomla sucht sich selbst anhand der im system eingestellten sprache die dem modul zugehoerige sprachdatei.
beispiel: de-DE.mod_xzy.php | en-GB.mod_xzy.php
schau dir einmal vorhandene module an, du wirst in der xml datei einen <language> tag mit anweisungen finden
joomla uebersetzt die inhalte der parameter mit der der Methode JText::_( 'Bitte übersetz mich' );
in der jeweiligen ini datei wuerde z.B:
BITTE ÜBERSETZ MICH=Okay, mach ich
stehen.
es ist ratsam eine sinnvolle, vielleicht sogar englische standard beschreibung als zu uebersetzenden string zu waehlen, damit bei fehlender sprachdatei klar bleibt was die funktion macht. verstaendlich ?
besser:
Code:
xml
[...]
<param .... label="Precipitation" ...
code:
[...] JText( 'Precipitation' ) ...
ini:
[...]
PRECIPITATION=Niederschlag
als weiteren tipp:
die kannst die xml datei recht ueberschaubar halten wenn du die anweisungsbloecke zum kopieren statt mit:
Code:
<filename module="mod_ywetter">pics/3.png</filename>
dieses benutzt:
Code:
<files>
<filename module="mod_xzy">mod_xzy.php</filename>
<filename>index.html</filename>
<filename>helper.php</filename>
<folder>tmpl/</folder>
<folder>libraries/</folder>
</files>
oder so aehnlich,...
*lufthol und in den code schau
die verwendung von "global" sollte vermieden werden
beispiel: global $mainframe ...
besser ist:
PHP-Code:
$application = JFactory::getApplicatio();
die mosconfig_lang thematik wuerde sich mit der richtigen verwendung der joomla ini dateien auch eruebrigen.
einbinden von javascript oder css:
PHP-Code:
$filename = 'test.css';
$path = 'test/foo/';
echo JHtml::_( 'stylesheet', $filename, $path );
was den rest des codes angeht ...
ich bin mir nicht sicher ob soviele else if nicht zuviel des guten sind.
versteh die angesprochenen dinge bitte als hilfe, nicht als boes gemeinte kritik.
es sei mir bitte dennoch erlaubt ueber den satz "vollstaendig ueber css anpassbar ..." zu schmunzeln. das duerften alle module sein, wenn nicht, macht man sie dazu. ( passt sie eben an )
alles in allem scheinst du dir viel arbeit gemacht zu haben. vielleicht hier und da unnoetig - aber, so ist das eben.
ich kann mir vorstellen das mein post recht chaotisch zu lesen ist und sich die genannten tipps recht muehselig rausziehen lassen.
darum hier nen link fuer dich:
http://wiki.joomla-nafu.de/joomla-do...mierung/Module
viel erfolg
sven
ps: der grund warum bei dir nur ein parameter im backend zu finden ist:
du verwendest in der xml datei 2x den tag <params>
Code:
<params>
<param name="weather_location" type="text" default="GMXX4464" label="_weather_location" description="_weather_location_description" />
</params>
<params>
<param name="weather_unit" type="text" default="C" label="_weather_unit" description="_weather_unit_description" />
</params>
richtig waere:
Code:
<params>
<param name="weather_location" type="text" default="GMXX4464" label="_weather_location" description="_weather_location_description" />
<param name="weather_unit" type="text" default="C" label="_weather_unit" description="_weather_unit_description" />
</params>
es sei dir dennoch geraten die gesammte struktur des moduls zu ueberdenken und ggf dem benutzer eine hilfe beizulegen ueber welche ersichtlich ist wo er denn z.B die location codes bekommt.
Lesezeichen