Hallo zusammen,
mit Sicherheit wurde das Thema schon tausendmal durchgekaut und ich versinke vor Scham im Boden, dass ich selber danach fragen muss, aber ich habe einfach ein Problem mit dem Auslagern von Funktionen in externe Klassen meiner Extension.
:o
Was will ich machen? Ich will grundsätzlich die class.tx_meine_ext_pi1.php schlank halten und alle Funktionen, die ich brauche, in externe Klassen aufteilen. Das klappt ja auch wunderbar wunderschön, aber ein kleines Gallisches Dorf will mich unbedingt fertig machen und das ist die pibase.
Meine "Hauptklasse"
class tx_mhdialekte_pi1 extends tslib_pibase { var $prefixId = 'tx_mhdialekte_pi1'; var $scriptRelPath = 'pi1/class.tx_mhdialekte_pi1.php'; var $extKey = 'mh_dialekte'; var $pi_checkCHash = true; ... function showList($content,$conf){ $this->cObj->conf = $this->conf; $ListView = t3lib_div::makeInstanceClassName("tx_mhdialekte_list"); $list = new tx_mhdialekte_list($this->cObj); return $list->showList($cObj); } ... include_once($ext_path.'pi1/class.tx_mhdialekte_list.php');
in class.tx_mhdialekte_list.php steht dann
class tx_mhdialekte_list extends tx_mhdialekte_pi1 { var $cObj; function showList($cObj){ $this->cObj = $cObj; $this->conf = $this->cObj->conf; $select_fields = '*'; $from_table = 'tx_mhdialekte_dict'; $where_clause = 'word LIKE "%'.$this->piVars['suche'].'%"'; $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery($select_fields,$from_table,$where_clause,$groupBy='',$orderBy='word',$limit='0,10'); while($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) { $return .= $this->pi_linkToPage($row['word'],8,$target='',$urlParameters=array('tx_mhdialekte_pi1[word]'=>$row['uid'])); } return $return; } }
Probleme macht mir hierbei die Zeile
$return .= $this->pi_linkToPage($row['word'],8,$target='',$urlParameters=array('tx_mhdialekte_pi1[word]'=>$row['uid']));
denn hier meckert php ständig
Ich habe auch schon versucht, die
in die Nebenklasse einzubinden - auch mit direktem Pfad zur Datei - keine Chance.
require_once(PATH_tslib.'class.tslib_pibase.php');
Weiß jemand, wie ich die pi_base in der Nebenklasse zum laufen kriege?
LG,
Mischa.