[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