Contao-Camp 2024
Ergebnis 1 bis 4 von 4

Thema: Modul-Template ändern

  1. #1
    Alter Contao-Hase
    Registriert seit
    18.07.2012.
    Ort
    Löbau
    Beiträge
    1.137

    Standard Modul-Template ändern

    Hey,

    ich versuche gerade verzweifelt das Modul-Template zu ändern sobald es eine Get-Variable gibt.

    PHP-Code:
        protected $strTemplate 'mod_travel_countries_list'
    PHP-Code:
        public function __construct($objModule) {
           
    parent::__construct($objModule);
           
            
    // Set the item from the auto_item parameter
            
    if(!isset($_GET['items']) && \Config::get('useAutoItem') && isset($_GET['auto_item'])) {
                \
    Input::setGet('items', \Input::get('auto_item'));
            }
           
            if(\
    Input::get('items')) {
                
    $objCountryTravels TravelCountriesModel::findPublishedByParentAndIdOrAlias(\Input::get('items'));
                if(
    $objCountryTravels !== null) {
                    
    $this->strTemplate "mod_travel_list";
                    
    $this->class "mod_travel_list";
                }
            }     
        } 
    Das $this->class setzt er nur das Template bleibt das gleiche.
    Liebe Grüße
    WebRoxx


  2. #2
    Contao-Nutzer
    Registriert seit
    03.09.2009.
    Ort
    Baunatal
    Beiträge
    122
    Partner-ID
    6087

    Standard

    Wird in der generate() Methode eventuell die Variable überschrieben?

  3. #3
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.897
    Partner-ID
    10107

    Standard

    Da wir deinen Code nicht zur Gänze kennen, können wir das nicht mit Gewissheit beantworten.

  4. #4
    Alter Contao-Hase
    Registriert seit
    18.07.2012.
    Ort
    Löbau
    Beiträge
    1.137

    Standard

    Anbei...

    Den ganzen Model-Kram habe ich mal entfernt... sonst wäre es lang geworden, hoffe das reicht so...

    PHP-Code:

    class ModuleTravelCountries extends \Module {   

        protected 
    $strTemplate 'mod_travel_countries_list'
        
        public function 
    generate(){
            
    // Display a wildcard in the back end
            
    if (TL_MODE === 'BE') {
                
    $template = new \BackendTemplate('be_wildcard');

                
    $template->wildcard '### TRAVEL-BUNDLE -- TRAVEL LIST COUNTRIES ###';
                
    $template->title $this->name;
                
    $template->id $this->id;
                
    $template->link $this->name;
                
    $template->href 'contao/main.php?do=themes&table=tl_module&act=edit&id=' $this->id;

                return 
    $template->parse();
            }
            
            
    // Set the item from the auto_item parameter
            
    if(!isset($_GET['items']) && \Config::get('useAutoItem') && isset($_GET['auto_item'])) {
                \
    Input::setGet('items', \Input::get('auto_item'));
            }
            
            return 
    parent::generate();
        }
        
        public function 
    __construct($objModule) {
           
    parent::__construct($objModule);
           
            
    // Set the item from the auto_item parameter
            
    if(!isset($_GET['items']) && \Config::get('useAutoItem') && isset($_GET['auto_item'])) {
                \
    Input::setGet('items', \Input::get('auto_item'));
            }
           
            if(\
    Input::get('items')) {
                
    $objCountryTravels TravelCountriesModel::findPublishedByParentAndIdOrAlias(\Input::get('items'));
                if(
    $objCountryTravels !== null) {
                    
    $this->strTemplate "mod_travel_list";
                    
    $this->class "mod_travel_list";
                }
            }     
        }  
            
        protected function 
    compile() { 
            global 
    $objPage;
            
    $objTemplate = new \FrontendTemplate($this->travel_tpl);
            
            if(\
    Input::get('items')) {
                
    $objCountryTravels TravelCountriesModel::findPublishedByParentAndIdOrAlias(\Input::get('items'));
                if(
    $objCountryTravels === null){
                    throw new 
    PageNotFoundException('Page not found: ' . \Environment::get('uri'));
                }
            }
            
            if(
    $objCountryTravels !== null) {
                
    $template "travel_short";
                
                
    $objModul = \ModuleModel::findOneByType("travel_list");
                if(
    $objModul !== null) {
                    
    $template $objModul->travel_tpl;                
                }
                
    print_r("template: ".$this->strTemplate);
                
    print_r("class: ".$this->Template->class);
                    
                
    $objTemplate = new \FrontendTemplate($template);
                
                    
    $this->strTemplate "mod_travel_list";
                    
    $this->class "mod_travel_list";
                
                          
    // code entfernt, nur Abfragen DB 
        
        
                    
    $this->Template->travels .= $objTemplate->parse();
        
                
            } else {        
                                          
    // code entfernt, nur Abfragen DB 
                    
                    
    $this->Template->countries $objTemplate->parse();
                }
            }
        }

    EDIT: sehe grad das wenn ich $this->strTemplate ausgebe steht das richtige drin, aber im Template steht immer noch diese klasse: mod_travel_countries ob $this->Template->class = mod_travel_list ist

    EDIT 2: habs hinbekommen dank dem thread: https://community.contao.org/de/show...m-Modul-setzen
    Geändert von WebRoxx (09.11.2019 um 19:56 Uhr)
    Liebe Grüße
    WebRoxx


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
  •