+ Antworten
Ergebnis 1 bis 3 von 3

Thema: Params in anderen Files zugänglich machen

  1. #1
    War schon öfter hier
    Registriert seit
    13.02.2008
    Beiträge
    233
    Bedankte sich
    58
    Erhielt 26 Danksagungen
    in 23 Beiträgen

    Standard Params in anderen Files zugänglich machen

    Hallo

    Wie kann ich mittels dem Framework die Params (vom Backend) zugänglich machen.

    mod_modulname.php hat ja einfach durch

    PHP-Code:
    $params->get('grid_name'); 
    zugriff. Wenn ich jedoch einen Folder mit diversen anderen Files habe klappt dies nicht mehr.
    Die helper.php hat anscheinend auch keinen Zugriff, hatte versucht die Params dort zu definieren und dann das helper.php file zu includen.

    Einen unglaublich grossen Dank derjenigen Gottesschöpfung welche mir einen kurzen Tip/Erklärung geben kann.

    Liebe Grüsse,
    kilik
    "Höre niemals auf, anzufangen. Aber fange niemals an, aufzuhören."

    „Wer glaubt etwas zu sein, hat aufgehört etwas zu werden!“
    Sokrates

  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

    damit dein helper objekt mit den parametern etwas anfangen kann, muessen diese uebergeben (bekannt gemacht) werden.
    instanziiere den helper mit uebergabe der parameter und anschliessender zuweisung einer member variable (constructor), oder verwende statische methoden und uebergebe denen die einzelne parameter.

  3. #3
    Neu an Board Avatar von Niels85
    Registriert seit
    26.01.2009
    Ort
    Buchholz in der Nordheide
    Alter
    26
    Beiträge
    51
    Bedankte sich
    1
    Erhielt 9 Danksagungen
    in 6 Beiträgen

    Standard

    Da steh ich auch gerade auf dem Holzweg.

    Folgendes ich habe eine Rückruf-Modul Programmiert. Welches mit jQuery.post eine Datei aufruf welches eine Mail abschickt. Das ganze Modul kann auf http://www.tierfotograf-nordheide.de begutachtet werden.

    So folgendes Problem was ich habe. Bei Komponente kann ich ja mit index2.php?option=com_xxx?task=xxx über den Controller und den entsprechenden Task der view.html.php oder der modul.php parameter übergeben die ich in dem Controller über das Joomla-Framework ausgelesen habe übergeben.

    Bei den Modulen geht das ja nicht.

    So meine default.php die für das aussehen zuständig ist vom Modul sieht abgespeckt so aus:
    PHP-Code:
    <?php // no direct access
        
    defined'_JEXEC' ) or die( 'Restricted access' ); 
        
    $document =& JFactory::getDocument();
        
    $document->addScript(JURI::base().'modules/mod_callback/include/jquery.js');
        
    $document->addScriptDeclaration("
        jQuery(document).ready(function(){
            jQuery(\"button[type='submit']\").click(function(){
                 if(jQuery(\"#Name\").val() == \""
    .$params->get('name')."\" || jQuery(\"#Name\").val() == \"\" ){
                    alert('Bitte Tragen Sie ihren Namen ein.');
                    jQuery(\"#Name\").focus();
                }
                else if(jQuery(\"#Nummer\").val() == \""
    .$params->get('nummer')."\" || jQuery(\"#Nummer\").val() == \"\" ){
                    alert('Bitte Tragen Sie eine Telefonummer ein.');
                    jQuery(\"#Nummer\").focus();
                }
                else if(jQuery(\"#Wann\").val() == \""
    .$params->get('wann')."\" || jQuery(\"#Wann\").val() == \"\" ){
                    alert('Bitte geben Sie an wann wir Sie am besten erreichen.');
                    jQuery(\"#Wann\").focus();
                }
                else{
                    var name = new Array();
                    var nummer = new Array();
                    var wann = new Array();
                    name.push(jQuery(\"input[name='Name']\").val());
                    nummer.push(jQuery(\"input[name='Nummer']\").val());
                    wann.push(jQuery(\"input[name='Wann']\").val());
                    jQuery.post(\"modules/mod_callback/mod_mail.php\", {name: \"\"+name+\"\", nummer: \"\"+nummer+\"\", wann: \"\"+wann+\"\"}, function(data){
                        jQuery('#frei').html(data);
                        jQuery('div.callback').css('display','none');
                    });
                }
            });
            jQuery(\"#Name\").focus(function() {
             if(jQuery(this).val() == \""
    .$params->get('name')."\")
                jQuery(this).val('');
             });
            jQuery(\"#Name\").blur(function() {
             if(jQuery(this).val() == \"\")
                 jQuery(this).val('"
    .$params->get('name')."');
             }); 
             jQuery(\"#Nummer\").focus(function() {
             if(jQuery(this).val() == \""
    .$params->get('nummer')."\")
                 jQuery(this).val('');
             });
            jQuery(\"#Nummer\").blur(function() {
             if(jQuery(this).val() == \"\")
                 jQuery(this).val('"
    .$params->get('nummer')."');
             }); 
            jQuery(\"#Wann\").focus(function() {
             if(jQuery(this).val() == \""
    .$params->get('wann')."\")
                 jQuery(this).val('');
             });
            jQuery(\"#Wann\").blur(function() {
             if(jQuery(this).val() == \"\")
                 jQuery(this).val('"
    .$params->get('wann')."');
             }); 
        });"
    );
    echo 
    '<div class="callback">
    <input name="Name" id="Name" type="text" value="'
    .$params->get('name').'" size="'.$params->get('inputsize').'" maxlength="255" />
    <input name="Nummer" id="Nummer" type="text" value="'
    .$params->get('nummer').'" size="'.$params->get('inputsize').'" maxlength="255" />
    <input name="Wann" id="Wann" type="text" value="'
    .$params->get('wann').'" size="'.$params->get('inputsize').'" maxlength="255" />
    <div class="button-box"><button type="submit" class="button validate">'
    .$params->get('button').'</button><span>&nbsp;</span></div><div style="clear:both;"></div></div>
    <div id="frei"></div>'
    ;
    Ich würde gerne irgendwie der Datei modules/mod_callback/mod_mail.php oder in ihr die Parameter des Moduls auslesen.

    Im Backend will ich nämlich die E-Mail-adressen festlegen an die es gesendet werden soll. Ich könnte natürlich meine e-mail-adresse in der default.php mit params->get('mail') auslesen und an mod_mail.php mit jquery post übergeben so ist aber die E-Mail adresse im HTML-Code lesbar.

    meine mod_mail.php sieht so aus:
    PHP-Code:
    <?php    
    if(send()) echo "<h4>Ich melde mich, wenn möglich zur gewünschten Zeit<br />
    "
    .$_POST['wann']."<br />
     bei Ihnen unter der angebenen Nummer<br />
    "
    .$_POST['nummer']."</h4>";
    else echo 
    "<span style=\"color:red;\">Service konnte nicht aktiviert werden</span>";
    function 
    send() {
                
    //################## Kontakt abteil
                // mehrere Empfänger
                           // hier muss ich alles Händisch eintragen, was ich gerne über die parametersteuern will
                  
    $mail "absender-mail";
                
    $name "Name des Absenders";
                
    $empfaenger  'empfaengermail';
                
    //$empfaenger  = $_POST[empfaenger];

                // Betreff
                
    $betreff 'Rrückruf-Service';
                
    // Nachricht
                
    $nachricht '
                <html>
                    <head>
                        <title>'
    .$betreff.'</title>
                    </head>
                    <body>
                        <table border=0 cellspacing="0" cellpadding="0">
                            <tr>
                                <td><strong>Name:&nbsp;</strong></td><td>'
    .$_POST['name'].'</td>
                            </tr>
                            <tr>
                                <td><strong>Nummer:&nbsp;</strong></td><td>'
    .$_POST['nummer'].'</td>
                            </tr>
                            <tr>
                                <td><strong>Wann:&nbsp;</strong></td><td>'
    .$_POST['wann'].'</td>
                            </tr>
                            
                          </table>
                        
                      </body>
                </html>
                '
    ;
                
    // zusätzliche Header
                
    $header  'From: =?utf-8?b?'.base64_encode($name).'?= <'.trim($mail).'>' "\n";
                 
    $header .= 'Subject: '.trim($mail). "\n";
                 
    $header .= 'Return-Path: '.trim($mail). "\n";
                 
    $header .= 'X-Priority: 3' "\n";
                
    $header .= 'Content-Transfer-Encoding: 8bit' "\n";
                
    $header .= 'Content-type: text/html; charset=utf-8' "\n";
                
    $header .= 'MIME-Version: 1.0' "\n";

                 
            if(
    mail($empfaenger$betreff$nachricht$header)){ 
                    return 
    true;
                    }
            
            return 
    $false;
        }
    ?>

+ Antworten

Stichworte

Lesezeichen

Berechtigungen

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