+ Antworten
Ergebnis 1 bis 6 von 6

Thema: In Abhängigkeit vom Benutzer Template aufrufen

  1. #1
    Joomlane Avatar von midnightlady
    Registriert seit
    25.04.2007
    Ort
    Berlin
    Beiträge
    16
    Bedankte sich
    3
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard In Abhängigkeit vom Benutzer Template aufrufen

    Liebe Joomlagemeinde,

    ich würde gerne, wie im Titel beschrieben, in Abhängigkeit vom Benutzer, der sich angemeldet hat, einen bestimmten View auswählen. Soweit ich das verstehe, kann ich im Controller festlegen, welcher View geladen wird? Wenn das so stimmt, wie mache ich das?

    Derzeit habe ich einen Einstiegspunkt und einen Standardcontroller, der eine display-Funktion hat parent::display. Ich habe verschiedene Views view1, view2, view3. Wie packe ich das nun zusammen?

    Vielen Dank für Eure Hilfe!
    Geändert von midnightlady (12.04.2011 um 21:23 Uhr)
    Interpunktion und Orthographie dieses Beitrages ist frei erfunden. Eine Übereinstimmung mit aktuellen oder ehemaligen Regeln wäre rein zufällig und ist nicht beabsichtigt.

  2. #2
    Gehört zum Inventar Avatar von SirDrake
    Registriert seit
    29.08.2006
    Ort
    Köln
    Beiträge
    6.268
    Bedankte sich
    164
    Erhielt 2.346 Danksagungen
    in 2.119 Beiträgen
    Gruß Fred
    Fragen und Antworten rund um Joomla! FAQ
    Code-Bereinigung abschalten - Unterstütze Joomla

  3. #3
    Joomlane Avatar von midnightlady
    Registriert seit
    25.04.2007
    Ort
    Berlin
    Beiträge
    16
    Bedankte sich
    3
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard display-methode

    Ich habe mir jetzt erstmal folgendermaßen beholfen und bin damit schon 10 Schritte weiter

    PHP-Code:
        function display() {
            
            
    $document =& JFactory::getDocument();
            
    $viewName JRequest::getVar('view');
            
    $viewType $document->getType();        
            
    $model = &$this->getModel('<modelname>');
            
    // Bedingung abprüfen
            
    $res $model->get<Modelfunkion>();
            switch (
    $res) {
                case 
    1: {
                    
    // Bed1
                    
    $viewName 'view1';
                    
    $layout 'default';
                    
    $model = &$this->getModel("<modelview1>");
                    break;
                }
                case 
    2: {
                    
    // Bed2
                    
    $viewName 'view2';
                    
    $layout 'default';
                    
    $model = &$this->getModel("<modelview2>");
                    break;
                }
                case 
    3: {
                    
    // Bed1
                    
    $viewName 'view3';
                    
    $layout 'default';
                    
    $model = &$this->getModel("<modelview3>");
                    break;    
                }
                default: {
                    
    $viewName "default";
                    
    $layout "default";
                    
    $model = &$this->getModel("<defaultmodel>");
                    break;
                }
            }
            
    // Default view
            
    $view = &$this->getView($viewName$viewType);
            
    // Model setzen
            
    if (!JError::isError($model)) {
                
    $view->setModel($modeltrue);
            }
            
    // Display the view
            
    $view->assign('error'$this->getError());
            
    $view->display();
        } 
    Interpunktion und Orthographie dieses Beitrages ist frei erfunden. Eine Übereinstimmung mit aktuellen oder ehemaligen Regeln wäre rein zufällig und ist nicht beabsichtigt.

  4. #4
    Joomlane Avatar von midnightlady
    Registriert seit
    25.04.2007
    Ort
    Berlin
    Beiträge
    16
    Bedankte sich
    3
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Also die 10 Schritte waren leider noch nicht zielführend:
    Ich komme zwar mit dieser Methode auf den richtigen View und das richtige Modell, aber im View (der alle Einträge in Listenform anzeigt) habe ich einen Link in der Form
    'index.php?option=com_meinekomponente&controller=s peziellerControllerzumBearbeitendesDatensatzes&tas k=edit&cid[]='. $row->id

    Beim Klick darauf passiert gar nichts. Hat vielleicht jemand eine Idee?

    Vielen Dank!
    Interpunktion und Orthographie dieses Beitrages ist frei erfunden. Eine Übereinstimmung mit aktuellen oder ehemaligen Regeln wäre rein zufällig und ist nicht beabsichtigt.

  5. #5
    Joomlane Avatar von midnightlady
    Registriert seit
    25.04.2007
    Ort
    Berlin
    Beiträge
    16
    Bedankte sich
    3
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    So, ich habe das Problem nun auch gelöst, für alle, die es interessiert:
    Eine zusätzliche Abfrage im case-statement, die den Task abfragt und layout und view (und auch das Model) setzt, löst das Problem. Ansosnten bleibt der view immer der gesetzte. So hat nun jede Berechtigungsgruppe den eigenen View und das eigene Model.
    Interpunktion und Orthographie dieses Beitrages ist frei erfunden. Eine Übereinstimmung mit aktuellen oder ehemaligen Regeln wäre rein zufällig und ist nicht beabsichtigt.

  6. #6
    Moderator Avatar von time4mambo
    Registriert seit
    11.12.2006
    Ort
    76646 Bruchsal
    Alter
    54
    Beiträge
    14.348
    Bedankte sich
    455
    Erhielt 2.972 Danksagungen
    in 2.791 Beiträgen

    Standard

    Und hier mein vorgeschriebener Text zu diesem Thema:


    Damit man als Supporter nicht immer hier hereinschauen muss und von vorn beginnt und nachdenkt und am Ende feststellt, dass sich das Problem schon erledigt hat, bitte den Thread auf GELÖST setzen:

    Erste Post editieren --> Erweitert --> Suffix --> GELÖST


    Danke!



    Axel
    Schulungen, Webentwicklung: time4mambo
    (Video-)Tutorials: time4joomla

+ Antworten

Lesezeichen

Berechtigungen

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