+ Antworten
Ergebnis 1 bis 8 von 8

Thema: Fehler bei Parameterübergabe

  1. #1
    Neu an Board Avatar von thiel-michael
    Registriert seit
    01.08.2006
    Ort
    Wittlich
    Alter
    28
    Beiträge
    20
    Bedankte sich
    2
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard Fehler bei Parameterübergabe

    Hallo Joomlagemeinde,

    ich hab mir in den letzten Tagen die mühe gemacht ein Wettermodul zu schreiben/portieren. Klar ihr sagt die gibt es schon zu hauf, das mag auch sein, nur ist das welches ich geschrieben hab vollständig surch css anpssbar und multilingual.

    Ich weiss nicht wo mein Fehler liegt, eine von zwei parametern wird in das Backend eingetragen, aber warum nur eins???

    die Sprachstrings sind alle vergeben, und auch die Übersetzungen für Deutsch Englisch und Französisch werden Installiert, nur leider nicht interpretiert, woran liegt das?

    Wäre vllt jemand von euch so nett und schaut mal drüber? Ich wäre für hilfe echt dankbar. Bin leider noch nicht so konfirm mit Joomla und die einbindung von Modulen in dieses. Die installations Zip leg ich bei.

    PS: Ist ürgendwas bekannt, was mit joomlacode.org ist? kann diese seite nicht mehr erreichen.
    Angehängte Dateien
    Zwei Dinge sind zu unserer Arbeit nötig: Unermüdliche Ausdauer und die Bereitschaft, etwas, in das man viel Zeit und Arbeit gesteckt hat, wieder wegzuwerfen.
    Albert Einstein

  2. #2
    Hat hier eine Zweitwohnung
    Registriert seit
    14.01.2006
    Ort
    Nienburg
    Alter
    32
    Beiträge
    1.237
    Bedankte sich
    115
    Erhielt 471 Danksagungen
    in 368 Beiträgen

    Standard

    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 ?

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

  3. #3
    Neu an Board Avatar von thiel-michael
    Registriert seit
    01.08.2006
    Ort
    Wittlich
    Alter
    28
    Beiträge
    20
    Bedankte sich
    2
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Hallo Sven,

    mmmmh.. danke, das war eine sehr ausführliche antwort^^

    Ich werde mich dann mal wieder an die grundstruktur des ganzen geben, werde euch aber auch die fortschritte anzeigen.

    ich bin mir nicht sicher ob soviele else if nicht zuviel des guten sind.
    Ich weiss nicht ob das zu viel ist oder nicht, leider ist mir nichts anderes eingefallen um die vorgabe von yahoo zu übersetzten. Natürlich bin ich für vorschläge dankbar.

    versteh die angesprochenen dinge bitte als hilfe, nicht als boes gemeinte kritik.
    als boes gemeinte Kritik sehe ich antworten in einem Forum eigentlich nie, eher als konstruktive Kritik und das ich ja nichts schlechtes, oder? Ich mein es ist ja eine Hilfe.

    es sei mir bitte dennoch erlaubt ueber den satz "vollstaendig ueber css anpassbar ..." zu schmunzeln.
    Was ich damit meinte war, das die einzelnen wetterfelder in div-tags liegen und nicht wie oft auf meiner suche vorgefunden in tabellen und auch die Wetter bilder nicht hartgecodet sind.

    ps: der grund warum bei dir nur ein parameter im backend zu finden ist:
    du verwendest in der xml datei 2x den tag <params>
    Kaum zu glauben aber wahr, das ist mir nicht aufgefallen, bis ich das gerade in deiner antwort gelesen habe

    Naja erstmal nochmal danke für deine tips, ich werde mich auf jedenfall durcharbeiten.

    LG Thiel
    Zwei Dinge sind zu unserer Arbeit nötig: Unermüdliche Ausdauer und die Bereitschaft, etwas, in das man viel Zeit und Arbeit gesteckt hat, wieder wegzuwerfen.
    Albert Einstein

  4. #4
    Neu an Board Avatar von thiel-michael
    Registriert seit
    01.08.2006
    Ort
    Wittlich
    Alter
    28
    Beiträge
    20
    Bedankte sich
    2
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Also ich hab das jetzt mal alles überarbeitet, hab aber immernoch probleme mit der Sprache. Ich bekomm die erste Zeile ind der ein JText-element ist einen Fehler angezeigt, und dann bestimmt auch in den restlichen.

    muss die JText-variable in einen bestimmt string gesetzt werden?

    Gruss Thiel
    Angehängte Dateien
    Zwei Dinge sind zu unserer Arbeit nötig: Unermüdliche Ausdauer und die Bereitschaft, etwas, in das man viel Zeit und Arbeit gesteckt hat, wieder wegzuwerfen.
    Albert Einstein

  5. #5
    Verbringt hier viel Zeit Avatar von serk
    Registriert seit
    27.12.2006
    Ort
    Cologne
    Beiträge
    830
    Bedankte sich
    74
    Erhielt 189 Danksagungen
    in 164 Beiträgen

    Standard

    Lösche mal das aus den Sprachfiles das hier raus:
    Code:
    # kein direkter Zugriff
    defined( '_JEXEC' ) or die( 'Ein direkter Zugriff auf diese Datei ist nicht erlaubt.' );
    Das ist ja PHP...

    UND NATÜRLICH muss das hier:
    Code:
    JText::_('WEATHER_FOR');
    auch noch IN die PHP Tags


    Ansonsten noch ein guter Tipp:
    http://wiki.joomla-nafu.de/joomla-do...mierung/Module

    XML Datei kannst du damit um einiges schlanker gestalten und außerdem die struktur noch ein wenig verbessern!

    Sprich statt:

    Code:
    	<files>
    		<filename module="mod_ywetter">mod_ywetter.php</filename>
    		<filename>assets/pics/14.png</filename>
    		<filename>assets/pics/15.png</filename>
    ...................................
    		<filename>assets/pics/20.png</filename>
    		<filename>assets/pics/21.png</filename
    		<filename>assets/pics/tr.jpg</filename>
    		<filename>assets/style.css</filename>
    		<filename>cache/index.html</filename>
    		<filename>inc/simplepie.inc</filename>
    		<filename>inc/simplepie_yahoo_weather.inc</filename>
       	</files>
    Kannst du z.b.

    Code:
    ]	<files>
    		<filename module="mod_ywetter">mod_ywetter.php</filename>
    		<folder>assets</folder>
    		<folder>cache</folder>
    		<folder>inc</folder>
       	</files>
    Dient zwar nicht direkt der Probnlemlösung sieht aber um einiges übersichtlicher aus!

    Die Sprachen könntest du auch noch in nen Order "language" packen und dann so aufrufen

    Code:
    	<languages folder="languages">
    		<language tag="en-GB">en-GB.mod_NAME.ini</language>
    		<language tag="de-DE">de-DE.mod_NAME.ini</language>
    	</languages>

    Wenn´s geholfen hat, Feedback geben, eventuell "Danke" drücken!

    Virtuemart SEO | Virtuemart Templates & Themes | Joomlanews


  6. #6
    Hat hier eine Zweitwohnung
    Registriert seit
    14.01.2006
    Ort
    Nienburg
    Alter
    32
    Beiträge
    1.237
    Bedankte sich
    115
    Erhielt 471 Danksagungen
    in 368 Beiträgen

    Standard

    ehm, serk ? hast du meinen post gelesen oder ... ?

    das kann so alles nicht funktionierten,...
    ueberstuerz das ganze nicht und fange lieber bei 0 an.

    es sind sowohl fehler in den sprachdateien als auch in der php datei.
    in den sprachdateien verwendest du &uuml; etc, anstatt üäö - du verwendest utf8 und kannst alles ausschreiben, ebenso auch das ß.

    zeichen wie # werden als kommentar verstanden, auch ' kannst du nicht benutzen, wie zum beispiel bei DATE='d.m.Y'

    in den uebersetzungen sind auch vereinzelt noch definr(' tags ebenso wie ein abschliessendes ?> in der franzoesischen glaube ich.

    alles in allem, sorg dafuer das zumindest eine datei richtig funktioniert, keine fehler bei den strings passieren, keine unzulaessigen zeichen benutzt werden.

    auch sowas hier kann nicht funktionieren:
    PHP-Code:
    $feed->set_feed_url('$wpath,$weather_location,$wunit$weather_unit'); 
    entweder die einfachen anfuehrungszeichen um die einzelnen variablen in doppelte aendern oder ganz weg lassen.

    PHP-Code:
    JText::_'WEATHER_FOR' ); 
    ist eine php methoden aufruf, muss also in php tags eingschlossen sein waehrend du gleich dahinter
    JText::_('WEATHER_FOR');<?php echo $weather->get_city(); ?>
    benutzt.

    versuch die ausgaben sauberer zu gestalten und in die standard default.php auszulagern welche sich eigentlich im tmpl verzeichnis befinden sollte.
    auch die verzeichnis struktur ist so noch nicht ganz richtig, wenn du denn ein verzeichnis assets verwenden "moechtest" dann dort auch noch ein css verzeichnis in dem du die css datei legst.

    schau dir bitte nochmal den link zum wiki an. und die beiden ( 3 ) antworten genau an.

  7. #7
    Verbringt hier viel Zeit Avatar von serk
    Registriert seit
    27.12.2006
    Ort
    Cologne
    Beiträge
    830
    Bedankte sich
    74
    Erhielt 189 Danksagungen
    in 164 Beiträgen

    Standard

    Nein, der war mir zu lang... Hab nur gesehen das danach immer noch nicht ging... Und da du gesagt hast du hast nicht in den code geschaut, dann hab ich ihm den einen Fehler aufgezeigt und eben noch paar Tipps gegeben, sorry..... :P

    Wenn´s geholfen hat, Feedback geben, eventuell "Danke" drücken!

    Virtuemart SEO | Virtuemart Templates & Themes | Joomlanews


  8. #8
    Neu an Board Avatar von thiel-michael
    Registriert seit
    01.08.2006
    Ort
    Wittlich
    Alter
    28
    Beiträge
    20
    Bedankte sich
    2
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Nagut dann werde ich mich der sache nochmal vom punkt null annehmen. Danke für eure Hilfe. Ich melde mich dann in 2-5tagen nochmal, dann hoffentlich mit einer besseren und übersichlicheren codestrukturierung

    Bis dann

    Gruss Michael
    Zwei Dinge sind zu unserer Arbeit nötig: Unermüdliche Ausdauer und die Bereitschaft, etwas, in das man viel Zeit und Arbeit gesteckt hat, wieder wegzuwerfen.
    Albert Einstein

+ Antworten

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein