Ergebnis 1 bis 3 von 3

Thema: "Weiterleitungsphänomen" bei Erweiterung

  1. #1
    Contao-Nutzer
    Registriert seit
    16.01.2012.
    Beiträge
    65

    Beitrag "Weiterleitungsphänomen" bei Erweiterung

    Hallo zusammen,

    ich schreibe gerade eine Erweiterung. Hierzu habe ich - ganz klassisch - ein Frontend-Modul definiert.
    Das Modul ist dabei ganz schlank gehalten:
    PHP-Code:
    class ModuleJobs extends Module
    {

        
    /**
         * Template
         * @var string
         */
        
    protected $strTemplate 'mod_joblist';


        
    /**
         * Generate module
         */
        
    protected function compile()
        {
        }

    Der Grund ist, dass die Daten über Ajax (ich verwende jQuery) dynamisch geladen werden sollen.
    In dem Template 'mod_joblist' sind nun verschiedene Buttons vorhanden und beim Klick auf diese Buttons hole ich mir mit der $.ajax-Methode Daten.

    Die Daten kommen aus einer php-Datei, mit folgendem Aufbau:
    PHP-Code:
    <?php

    // Disable all error reporting
    error_reporting(0);

    // Set the character set in order to have umlaute in the MySQL result
    header ('Content-type: text/html; charset=utf-8');

    // Contao configuration
    define('TL_MODE''FE');
    require(
    './../../../../system/initialize.php');

    class 
    ModuleGetJobs extends Controller
    {

        
    /**
         * Constructor of this class.
         */
        
    public function __construct()
        {
                
    parent::__construct();
        }

        
    /**
         * This function connects to the database, executes the necessary
         * MySQL query and sends the result via mail to all configured
         * recipient.
         */
        
    public function run()
        {
         
    // Hier steht die Logik zum Holen der Daten
        
    }
    }
    Das Problem ist nun, wenn die Zeile require('./../../../../system/initialize.php'); vorhanden ist, werde ich immer zur URL domain.de/contao/index.php weitergeleitet. Kommentiere ich die Zeile aus, passiert dies nicht, jedoch kann ich die Logik auch nicht abarbeiten, weil mir Module fehlen.

    Hat jemand eine Idee, was da falsch läuft? Ich verstehe es gerade überhaupt nicht.
    Macht man Ajax-Requests überhaupt so? Oder geht das total an der contao-Philosophie vorbei?


    Danke schonmal im voraus.
    alt-mich

  2. #2
    Contao-Nutzer Avatar von poldixd
    Registriert seit
    12.07.2012.
    Ort
    Berlin
    Beiträge
    51

    Standard

    Also ich mache das immer über die Ajax Extension:

    https://contao.org/de/extension-list/view/ajax.de.html

    die wird dann ins ROOT installiert und kann man ansprechen. Dann gibt's du folgende Parameter an:


    action: Die auszuführende Aktion, aktuell "fmd" (Frontend Module), "cte" (Inhaltselement) oder "ffl" (Formularfeld).
    id: Die ID des Elements.
    und dein Modul bekommt eine extra Methode:



    PHP-Code:

    class ModuleJobs extends Module
    {

        
    /**
         * Template
         * @var string
         */
        
    protected $strTemplate 'mod_joblist';


        
    /**
         * Generate module
         */
        
    protected function compile()
        {
        }


        
    /**
         * Diese Methode wird nur per Ajax aufgerufen
         */
        
    public function generateAjax()
        {
          return 
    'Ajax-kram';
        }



  3. #3
    Contao-Nutzer
    Registriert seit
    16.01.2012.
    Beiträge
    65

    Standard

    Danke für deine Antwort, poldixd.

    Bevor ich die Erweiterung ausprobieren konnte, bin ich zufällig auf die Ursache gestoßen.
    Werden bei der Ajax-Request die Daten via POST übertragen, wird man wie beschrieben weitergeleitet, mit GET passiert dies nicht.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

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