+ Antworten
Ergebnis 1 bis 8 von 8

Thema: Komponenten Entwicklung verständnissproblem

  1. #1
    Neu an Board
    Registriert seit
    10.06.2007
    Beiträge
    30
    Bedankte sich
    7
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard Komponenten Entwicklung verständnissproblem

    Hallo beisammen,

    ich bin gerade dabei mithilfe der bekannten Tutorials eine Komponente zu entwickeln aber leider verstehe ich einen befehl absolut nicht:

    PHP-Code:
    class TT_VerwaltungModelmannschaften extends JModel 
    kann es jemand versuchen mir zu erklären was dieser Befehl aussagt und wie die einzelnen Schritte ablaufen, die joomla da durchläuft?
    Der Befehl stamt aus meiner Komponente: administrator\components\com_tt_verwaltung\models. ..

    Was macht der erste Teil "TT_Verwaltung"?
    der zweite "Model"?
    und der dritte "lmannschaften"

    auf was muss ich bei der Namensgebung achten?

    danke fürs lesen
    Silvo
    Geändert von Silvo (26.12.2009 um 21:15 Uhr)

  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

    joomla benutzt diese namenskonvention um das model zuordnen zu koennen. beispielsweise in der view, wenn du mit $this->get( 'Data' ); auf die methode getData(); des models zugreifst / zugreifen willst.

    der erste teil steht fuer den namen deiner komponente. der letzte teil ist der name des models.

    heisst nun deine view "mannschaften", wuerde dieser view das model TT_VerwaltungModelMannschaften zuweisen werden. wie oben kurz angerissen kannst du dann das model ansprechen, ohne im controller ( display(); ) der view das entsprechende model bereitstellen zu muessen. es sei denn du moechtest ein anderes model verwenden.

    folgendes ignorieren wenn bereits bekannt:
    extends ist ein begriff aus der objekt orientierten programmierung der dazu benutzt wird eine klasse zu erweitern. bevor ich das rad aber neu erfinde ...

    hier dazu einige links die ich auf die schnelle per google gefunden habe:
    http://www.phpro.org/tutorials/Objec...-with-PHP.html
    http://devzone.zend.com/node/view/id/638

    letzteres find ich recht verstaendlich geschrieben. beide tutorials sind auf englisch. du findest aber schnell dokumentationen auf deutsch zu diesem thema.

    hilft dir das weiter oder traegt es eher zu weiterer verwirrung bei ?

  3. Erhielt Danksagungen von:


  4. #3
    Neu an Board
    Registriert seit
    10.06.2007
    Beiträge
    30
    Bedankte sich
    7
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    also ok ich versuchs jetzt einfach mal...

    joomla soll im backend eine komponente öffnen...
    also wird im ordner "com_tt_verwaltung" nach der datei "admin.tt_verwaltung.php" gesucht.

    in dieser steht " require_once (JPATH_COMPONENT.DS.'controller.php'); " also wird auf die controller.php zugegriffen

    und wie ich das hier schreibe finde ich (glaube ich) gerade den fehler:
    in der controller.php steht "class TT_Verwaltung extends JController { "
    das kann doch nicht richtig sein oder? als nächsten schritt müsste ich doch auf models zugegriffen werden oder?





    heisst nun deine view "mannschaften", wuerde dieser view das model TT_VerwaltungModelMannschaften zuweisen werden
    spielt die groß und kleinschreibung hier eine rolle?

    danke für die schnelle antwort die dokus werde ich mir morgen anschauen bin jetzt nicht mehr aufnahmefähig genug

  5. #4
    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

    http://docs.joomla.org/Developing_a_...onent_-_Part_1

    der einstiegspunkt muss nicht zwangslaeufig admin.Name.php heissen. mittlerweile hat sich eingeschlichen nur den namen zu verwenden.

    die gross/kleinschreibung ist nicht notwendig, wird aber der besseren lesbarkeit wegen benutzt.

    schau dir mal den rest des tutorials im docs wiki an. dort werden die beziehungen zwischen einstiegspunkt und controller gut erklaert. weiterhin ist die joomla komponente com_weblinks oder eventlist eine gute anlaufstelle.

  6. Erhielt Danksagungen von:


  7. #5
    Neu an Board
    Registriert seit
    10.06.2007
    Beiträge
    30
    Bedankte sich
    7
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard finde den fehler abslout nicht

    ich wollte jetzt kein neues thema wegen sowas eröffnen aber ich hoffe ihr könnt mir trotzdem helfen

    ich wollte eigentlich nur ein paar zeilen aus meiner datenbank ausgeben aber bekomme eine fehlermeldung...

    components\com_tt_verwaltung\tt_verwaltung.php
    Code:
    <?php
    // kein direkter Zugriff
    defined('_JEXEC') or die('Restricted   access');
    // laden des Joomla! Basis Controllers
    require_once   (JPATH_COMPONENT.DS.'controller.php');
    // Erzeugen eines   Controllers 
    $controller = new TTVController(); 
    // den   request task   auslesen
    $controller->execute(JRequest::getCmd('task'));
    // Redirect aus dem controller
    $controller->redirect();
    ?>
    components\com_tt_verwaltung\controller.php
    Code:
       <?php 
       defined( '_JEXEC' ) or die( 'Restricted access' ); 
       jimport('joomla.application.component.controller'); 
       class TTVController extends JController { 
          function display() { 
             parent::display(); 
          } 
       } 
       ?>
    components\com_tt_verwaltung\views\mannschaften\vi ew.html.php
    Code:
    <?php
    jimport('joomla.application.component.view');
    class TTVViewMannschaften extends JView {
      function display($tpl = null){
        $model =   &$this->getModel();
        $rows =   $model->getMannschaftenList();
        $this->assignRef('rows'   , $rows);
        parent::display($tpl);
      }    
    }
    ?>
    components\com_tt_verwaltung\views\mannschaften\tm pl\default.php
    Code:
       <?php defined('_JEXEC')or die('Restricted access'); ?> 
      
    <?php foreach($this->rows as $row) { ?> 
      <table class="ttv_mannschaften">
    	<tr>
    		<td rowspan="2">&nbsp;<?php echo $row->ava_small; ?></td>
    		<td>&nbsp;<?php echo $row->name; ?></td>
    	</tr>
    	<tr>
    		<td>&nbsp;<?php echo $row->liga; ?></td>
    	</tr>
    </table>
      <?php } //end foreach ?> 
    ?>
    components\com_tt_verwaltung\models\mannschaften.p hp
    Code:
    <?php
    defined('_JEXEC') or die();
    jimport('joomla.application.component.model');
    class   TTVModelMannschaften extends JModel{
    function getMannschaftenList() { 
          $db =& JFactory::getDBO(); 
          $query = 'SELECT * FROM #__ttv_mannschaften ' 
                  .'WHERE published="1" ORDER BY id DESC'; 
          $db->setQuery( $query ); 
          $rows = $db->loadObjectList(); 
          return $rows; 
    }
    }
    
    ?>

    Als Fehlermeldung bekomme ich:
    Warning: Invalid argument supplied for foreach() in C:\xampplite\htdocs\joomla\components\com_tt_verwa ltung\views\mannschaften\tmpl\default.php on line 3

    Das bedeutet doch eigentlich das die auszugebende Variable kein array ist aber warum? bei mir ist doch alles genauso wie in den Tutorials aber warum geht dann nichtmal so was einfaches?

    Danke für eure Hilfe
    Silvo

  8. #6
    Gehört zum Inventar Avatar von blaulichttreff
    Registriert seit
    30.04.2007
    Ort
    Heidenrod
    Beiträge
    7.703
    Bedankte sich
    134
    Erhielt 2.557 Danksagungen
    in 2.421 Beiträgen

    Standard

    hast du dir deine variable mal mit print_r oder var_dump ausgeben lassen?
    Geändert von blaulichttreff (26.12.2009 um 15:54 Uhr)
    Gruß Sascha
    Viele kennen Google, aber nur wenige scheinen es zu nutzen Problem gelöst? | Joomla FAQ
    FF Springen

  9. Erhielt Danksagungen von:


  10. #7
    Wohnt hier Avatar von oldlady
    Registriert seit
    17.09.2008
    Ort
    München
    Beiträge
    4.845
    Bedankte sich
    357
    Erhielt 1.407 Danksagungen
    in 1.288 Beiträgen

    Standard

    So auf den ersten Blick fällt mir nur auf, dass published gewöhnlich ein smallint ist, die Abfrage heisst dann ... published = 1 ...
    Grüße, Christiane
    Joomla braucht dich!

  11. #8
    Neu an Board
    Registriert seit
    10.06.2007
    Beiträge
    30
    Bedankte sich
    7
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    ich wollte mich bedanken habe den fehler mit var_dump herausgefunden! man sollte die tabelle auch genauso nennen wie die abfrage ist durch var_dump wurde mir der sql fehler angezeigt und dann war der rest recht einfach

    also nachmal danke

+ Antworten

Lesezeichen

Berechtigungen

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