[TYPO3-german] Flexforms dynamisch / Datensatzseite auslesen

Basti Baumann donillo at gmail.com
Tue Oct 2 13:37:36 CEST 2007


Hi,

ich habe laut dieser Anleitung:
http://wiki.typo3.org/index.php/Extension_Development%2C_using_Flexforms
meine Flexforms konfiguriert. Es werden alle Kategorien meiner Extension 
ausgelesen.
Nun will ich die Kategorien aber nur ausgeben, wenn diese im passenden 
Datensatzordner liegen.
Normalerwiese liest man ja den Datensatz so aus:
$pid_list = 
$this->pi_getPidList($this->cObj->data['pages'],$this->conf["recursive"]);

Ich habe deswegen meine Klasse, die mir die Felder dynamisch generiert 
so erweitert:


// Bestimmung PATH_tslib
error_reporting (E_ALL ^ E_NOTICE);
if ($_SERVER['PHP_SELF']) {
    if (!defined('PATH_thisScript'))
define('PATH_thisScript',str_replace('//','/', str_replace('\\','/',
$_SERVER['PHP_SELF'])));
} else {
    if (!defined('PATH_thisScript'))
define('PATH_thisScript',str_replace('//','/', str_replace('\\','/',
$_ENV['_'])));
}
if (!defined('PATH_site')) define('PATH_site',
dirname(dirname(dirname(dirname(dirname(PATH_thisScript))))).'/');
if (!defined('PATH_t3lib')) if (!defined('PATH_t3lib')) define('PATH_t3lib',
PATH_site.'t3lib/');
define('PATH_typo3conf', PATH_site.'typo3conf/');
define('TYPO3_mainDir', 'typo3/');
if (!defined('PATH_typo3')) define('PATH_typo3', PATH_site.TYPO3_mainDir);
if (!defined('PATH_tslib')) {
    if (@is_dir(PATH_site.'typo3/sysext/cms/tslib/')) {
       define('PATH_tslib', PATH_site.'typo3/sysext/cms/tslib/');
    } elseif (@is_dir(PATH_site.'tslib/')) {
       define('PATH_tslib', PATH_site.'tslib/');
    }
}
// pi_base einbinden
require_once(PATH_tslib.'class.tslib_pibase.php');

// Klasse
class tx_sbimagedownloader_addFieldsToFlexForm  extends tslib_pibase{
  function addFields ($config) {
  		global $TSFE,$LANG;
  		$this->pi_setPiVarDefaults();
		$this->pi_loadLL();
// poid auslesen
		$pid_list = 
$this->pi_getPidList($this->cObj->data['pages'],$this->conf["recursive"]);
		print_r($pid_list);


    $optionList = array();

	$abfrage = "SELECT uid,cat FROM tx_sbimagedownloader_cat WHERE hidden=0 
AND deleted=0 AND pid=$pid_list";
	$res = mysql_query($abfrage);
	$optionList[0] = array(0 => 'all', 1 => 0);
	$i = 1;
   while($row = mysql_fetch_object($res)){
     $optionList[$i] = array(0 => $row->cat.'_'.$pid_list, 1 => $row->uid);
     $i++;
     }

    $config['items'] = array_merge($config['items'],$optionList);

    return $config;
  }
}

Nur leider wird mir die pid der Datensatzsammlung nicht ausgeliefert. 
Hat einer eine Idee, warum das nicht klappt bzw. was ich da falsch mache?

Grüße
Basti


More information about the TYPO3-german mailing list