00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00132 class tslib_pibase {
00133
00134
00135 var $cObj;
00136 var $prefixId;
00137 var $scriptRelPath;
00138 var $extKey;
00139 var $piVars = Array (
00140 'pointer' => '',
00141 'mode' => '',
00142 'sword' => '',
00143 'sort' => '',
00144 );
00145 var $internal = Array(
00146 'res_count' => 0,
00147 'results_at_a_time' => 20,
00148 'maxPages' => 10,
00149 'currentRow' => Array(),
00150 'currentTable' => '',
00151 );
00152
00153 var $LOCAL_LANG = Array();
00154 var $LOCAL_LANG_loaded = 0;
00155 var $LLkey='default';
00156 var $LLtestPrefix='';
00157 var $LLtestPrefixAlt='';
00158
00159 var $pi_isOnlyFields = 'mode,pointer';
00160 var $pi_alwaysPrev = 0;
00161 var $pi_lowerThan = 5;
00162 var $pi_moreParams='';
00163 var $pi_listFields='*';
00164
00165 var $pi_autoCacheFields=array();
00166 var $pi_autoCacheEn=0;
00167
00168 var $pi_USER_INT_obj = 0;
00169
00176 var $conf = Array();
00177
00178
00179 var $pi_EPtemp_cObj;
00180 var $pi_tmpPageId=0;
00181
00182
00183
00184
00185
00186
00187
00188
00189
00190
00191
00192
00193
00194
00195
00196
00197
00198
00199
00200
00201
00202
00203
00211 function tslib_pibase() {
00212 if ($this->prefixId) {
00213 $this->piVars = t3lib_div::GParrayMerged($this->prefixId);
00214 }
00215 if ($GLOBALS['TSFE']->config['config']['language']) {
00216 $this->LLkey = $GLOBALS['TSFE']->config['config']['language'];
00217 }
00218 }
00219
00225 function pi_setPiVarDefaults() {
00226 if (is_array($this->conf['_DEFAULT_PI_VARS.'])) {
00227 $this->piVars = t3lib_div::array_merge_recursive_overrule($this->conf['_DEFAULT_PI_VARS.'],is_array($this->piVars)?$this->piVars:array());
00228 }
00229 }
00230
00231
00232
00233
00234
00235
00236
00237
00238
00239
00240
00241
00242
00243
00244
00245
00246
00247
00248
00249
00250
00264 function pi_getPageLink($id,$target='',$urlParameters=array()) {
00265 return $this->cObj->getTypoLink_URL($id,$urlParameters,$target);
00266 }
00267
00280 function pi_linkToPage($str,$id,$target='',$urlParameters=array()) {
00281 return $this->cObj->getTypoLink($str,$id,$urlParameters,$target);
00282 }
00283
00295 function pi_linkTP($str,$urlParameters=array(),$cache=0,$altPageId=0) {
00296 $conf=array();
00297 $conf['useCacheHash'] = $this->pi_USER_INT_obj ? 0 : $cache;
00298 $conf['no_cache'] = $this->pi_USER_INT_obj ? 0 : !$cache;
00299 $conf['parameter'] = $altPageId ? $altPageId : ($this->pi_tmpPageId ? $this->pi_tmpPageId : $GLOBALS['TSFE']->id);
00300 $conf['additionalParams'] = $this->conf['parent.']['addParams'].t3lib_div::implodeArrayForUrl('',$urlParameters,'',1).$this->pi_moreParams;
00301
00302 return $this->cObj->typoLink($str, $conf);
00303 }
00304
00318 function pi_linkTP_keepPIvars($str,$overrulePIvars=array(),$cache=0,$clearAnyway=0,$altPageId=0) {
00319 if (is_array($this->piVars) && is_array($overrulePIvars) && !$clearAnyway) {
00320 $piVars = $this->piVars;
00321 unset($piVars['DATA']);
00322 $overrulePIvars = t3lib_div::array_merge_recursive_overrule($piVars,$overrulePIvars);
00323 if ($this->pi_autoCacheEn) {
00324 $cache = $this->pi_autoCache($overrulePIvars);
00325 }
00326 }
00327 $res = $this->pi_linkTP($str,Array($this->prefixId=>$overrulePIvars),$cache,$altPageId);
00328 return $res;
00329 }
00330
00342 function pi_linkTP_keepPIvars_url($overrulePIvars=array(),$cache=0,$clearAnyway=0,$altPageId=0) {
00343 $this->pi_linkTP_keepPIvars('|',$overrulePIvars,$cache,$clearAnyway,$altPageId);
00344 return $this->cObj->lastTypoLinkUrl;
00345 }
00346
00360 function pi_list_linkSingle($str,$uid,$cache=FALSE,$mergeArr=array(),$urlOnly=FALSE,$altPageId=0) {
00361 if ($this->prefixId) {
00362 if ($cache) {
00363 $overrulePIvars=$uid?array('showUid'=>$uid):Array();
00364 $overrulePIvars=array_merge($overrulePIvars,$mergeArr);
00365 $str = $this->pi_linkTP($str,Array($this->prefixId=>$overrulePIvars),$cache,$altPageId);
00366 } else {
00367 $overrulePIvars=array('showUid'=>$uid?$uid:'');
00368 $overrulePIvars=array_merge($overrulePIvars,$mergeArr);
00369 $str = $this->pi_linkTP_keepPIvars($str,$overrulePIvars,$cache,0,$altPageId);
00370 }
00371
00372
00373 if ($urlOnly) {
00374 $str = $this->cObj->lastTypoLinkUrl;
00375 }
00376 }
00377 return $str;
00378 }
00379
00388 function pi_openAtagHrefInJSwindow($str,$winName='',$winParams='width=670,height=500,status=0,menubar=0,scrollbars=1,resizable=1') {
00389 if (eregi('(.*)(<a[^>]*>)(.*)',$str,$match)) {
00390 $aTagContent = t3lib_div::get_tag_attributes($match[2]);
00391 $match[2]='<a href="#" onclick="'.
00392 htmlspecialchars('vHWin=window.open(\''.$GLOBALS['TSFE']->baseUrlWrap($aTagContent['href']).'\',\''.($winName?$winName:md5($aTagContent['href'])).'\',\''.$winParams.'\');vHWin.focus();return false;').
00393 '">';
00394 $str=$match[1].$match[2].$match[3];
00395 }
00396 return $str;
00397 }
00398
00399
00400
00401
00402
00403
00404
00405
00406
00407
00408
00409
00410
00411
00412
00413
00414
00415
00416
00417
00418
00428 function pi_list_browseresults($showResultCount=1,$tableParams='') {
00429
00430
00431 $pointer=$this->piVars['pointer'];
00432 $count=$this->internal['res_count'];
00433 $results_at_a_time = t3lib_div::intInRange($this->internal['results_at_a_time'],1,1000);
00434 $maxPages = t3lib_div::intInRange($this->internal['maxPages'],1,100);
00435 $max = t3lib_div::intInRange(ceil($count/$results_at_a_time),1,$maxPages);
00436 $pointer=intval($pointer);
00437 $links=array();
00438
00439
00440 if ($this->pi_alwaysPrev>=0) {
00441 if ($pointer>0) {
00442 $links[]='
00443 <td nowrap="nowrap"><p>'.$this->pi_linkTP_keepPIvars($this->pi_getLL('pi_list_browseresults_prev','< Previous',TRUE),array('pointer'=>($pointer-1?$pointer-1:'')),0).'</p></td>';
00444 } elseif ($this->pi_alwaysPrev) {
00445 $links[]='
00446 <td nowrap="nowrap"><p>'.$this->pi_getLL('pi_list_browseresults_prev','< Previous',TRUE).'</p></td>';
00447 }
00448 }
00449 for($a=0;$a<$max;$a++) {
00450 $links[]='
00451 <td'.($pointer==$a?$this->pi_classParam('browsebox-SCell'):'').' nowrap="nowrap"><p>'.
00452 $this->pi_linkTP_keepPIvars(trim($this->pi_getLL('pi_list_browseresults_page','Page',TRUE).' '.($a+1)),array('pointer'=>($a?$a:'')),$this->pi_isOnlyFields($this->pi_isOnlyFields)).
00453 '</p></td>';
00454 }
00455 if ($pointer<ceil($count/$results_at_a_time)-1) {
00456 $links[]='
00457 <td nowrap="nowrap"><p>'.
00458 $this->pi_linkTP_keepPIvars($this->pi_getLL('pi_list_browseresults_next','Next >',TRUE),array('pointer'=>$pointer+1)).
00459 '</p></td>';
00460 }
00461
00462 $pR1 = $pointer*$results_at_a_time+1;
00463 $pR2 = $pointer*$results_at_a_time+$results_at_a_time;
00464 $sTables = '
00465
00466 <!--
00467 List browsing box:
00468 -->
00469 <div'.$this->pi_classParam('browsebox').'>'.
00470 ($showResultCount ? '
00471 <p>'.
00472 ($this->internal['res_count'] ?
00473 sprintf(
00474 str_replace('###SPAN_BEGIN###','<span'.$this->pi_classParam('browsebox-strong').'>',$this->pi_getLL('pi_list_browseresults_displays','Displaying results ###SPAN_BEGIN###%s to %s</span> out of ###SPAN_BEGIN###%s</span>')),
00475 $this->internal['res_count'] > 0 ? $pR1 : 0,
00476 min(array($this->internal['res_count'],$pR2)),
00477 $this->internal['res_count']
00478 ) :
00479 $this->pi_getLL('pi_list_browseresults_noResults','Sorry, no items were found.')).'</p>':''
00480 ).
00481 '
00482
00483 <'.trim('table '.$tableParams).'>
00484 <tr>
00485 '.implode('',$links).'
00486 </tr>
00487 </table>
00488 </div>';
00489
00490 return $sTables;
00491 }
00492
00500 function pi_list_searchBox($tableParams='') {
00501
00502 $sTables = '
00503
00504 <!--
00505 List search box:
00506 -->
00507 <div'.$this->pi_classParam('searchbox').'>
00508 <form action="'.htmlspecialchars(t3lib_div::getIndpEnv('REQUEST_URI')).'" method="post" style="margin: 0 0 0 0;">
00509 <'.trim('table '.$tableParams).'>
00510 <tr>
00511 <td><input type="text" name="'.$this->prefixId.'[sword]" value="'.htmlspecialchars($this->piVars['sword']).'"'.$this->pi_classParam('searchbox-sword').' /></td>
00512 <td><input type="submit" value="'.$this->pi_getLL('pi_list_searchBox_search','Search',TRUE).'"'.$this->pi_classParam('searchbox-button').' />'.
00513 '<input type="hidden" name="no_cache" value="1" />'.
00514 '<input type="hidden" name="'.$this->prefixId.'[pointer]" value="" />'.
00515 '</td>
00516 </tr>
00517 </table>
00518 </form>
00519 </div>';
00520
00521 return $sTables;
00522 }
00523
00531 function pi_list_modeSelector($items=array(),$tableParams='') {
00532 $cells=array();
00533 reset($items);
00534 while(list($k,$v)=each($items)) {
00535 $cells[]='
00536 <td'.($this->piVars['mode']==$k?$this->pi_classParam('modeSelector-SCell'):'').'><p>'.
00537 $this->pi_linkTP_keepPIvars(htmlspecialchars($v),array('mode'=>$k),$this->pi_isOnlyFields($this->pi_isOnlyFields)).
00538 '</p></td>';
00539 }
00540
00541 $sTables = '
00542
00543 <!--
00544 Mode selector (menu for list):
00545 -->
00546 <div'.$this->pi_classParam('modeSelector').'>
00547 <'.trim('table '.$tableParams).'>
00548 <tr>
00549 '.implode('',$cells).'
00550 </tr>
00551 </table>
00552 </div>';
00553
00554 return $sTables;
00555 }
00556
00569 function pi_list_makelist($res,$tableParams='') {
00570
00571 $tRows=array();
00572 $this->internal['currentRow']='';
00573 $tRows[] = $this->pi_list_header();
00574
00575
00576 $c=0;
00577 while($this->internal['currentRow'] = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
00578 $tRows[] = $this->pi_list_row($c);
00579 $c++;
00580 }
00581
00582 $out = '
00583
00584 <!--
00585 Record list:
00586 -->
00587 <div'.$this->pi_classParam('listrow').'>
00588 <'.trim('table '.$tableParams).'>
00589 '.implode('',$tRows).'
00590 </table>
00591 </div>';
00592
00593 return $out;
00594 }
00595
00604 function pi_list_row($c) {
00605
00606 return '<tr'.($c%2 ? $this->pi_classParam('listrow-odd') : '').'><td><p>[dummy row]</p></td></tr>';
00607 }
00608
00616 function pi_list_header() {
00617 return '<tr'.$this->pi_classParam('listrow-header').'><td><p>[dummy header row]</p></td></tr>';
00618 }
00619
00620
00621
00622
00623
00624
00625
00626
00627
00628
00629
00630
00631
00632
00633
00634
00635
00636
00637
00638
00639
00640
00647 function pi_getClassName($class) {
00648 return str_replace('_','-',$this->prefixId).($this->prefixId?'-':'').$class;
00649 }
00650
00659 function pi_classParam($class) {
00660 return ' class="'.$this->pi_getClassName($class).'"';
00661 }
00662
00673 function pi_setClassStyle($class,$data,$selector='') {
00674 $GLOBALS['TSFE']->setCSS($this->pi_getClassName($class).($selector?' '.$selector:''),'.'.$this->pi_getClassName($class).($selector?' '.$selector:'').' {'.$data.'}');
00675 }
00676
00684 function pi_wrapInBaseClass($str) {
00685 return '
00686
00687
00688 <!--
00689
00690 BEGIN: Content of extension "'.$this->extKey.'", plugin "'.$this->prefixId.'"
00691
00692 -->
00693 <div class="'.str_replace('_','-',$this->prefixId).'">
00694 '.$str.'
00695 </div>
00696 <!-- END: Content of extension "'.$this->extKey.'", plugin "'.$this->prefixId.'" -->
00697
00698 ';
00699 }
00700
00701
00702
00703
00704
00705
00706
00707
00708
00709
00710
00711
00712
00713
00714
00715
00716
00717
00718
00719
00720
00721
00722
00733 function pi_getEditPanel($row='',$tablename='',$label='',$conf=Array()) {
00734 $panel='';
00735 if (!$row || !$tablename) {
00736 $row = $this->internal['currentRow'];
00737 $tablename = $this->internal['currentTable'];
00738 }
00739
00740 if ($GLOBALS['TSFE']->beUserLogin) {
00741
00742 if (!is_object($this->pi_EPtemp_cObj)) {
00743 $this->pi_EPtemp_cObj = t3lib_div::makeInstance('tslib_cObj');
00744 $this->pi_EPtemp_cObj->setParent($this->cObj->data,$this->cObj->currentRecord);
00745 }
00746
00747
00748 $this->pi_EPtemp_cObj->start($row,$tablename);
00749
00750
00751 $conf['allow'] = 'edit,new,delete,move,hide';
00752 $panel = $this->pi_EPtemp_cObj->cObjGetSingle('EDITPANEL',$conf,'editpanel');
00753 }
00754
00755 if ($panel) {
00756 if ($label) {
00757 return '<!-- BEGIN: EDIT PANEL --><table border="0" cellpadding="0" cellspacing="0" width="100%"><tr><td valign="top">'.$label.'</td><td valign="top" align="right">'.$panel.'</td></tr></table><!-- END: EDIT PANEL -->';
00758 } else return '<!-- BEGIN: EDIT PANEL -->'.$panel.'<!-- END: EDIT PANEL -->';
00759 } else return $label;
00760 }
00761
00775 function pi_getEditIcon($content,$fields,$title='',$row='',$tablename='',$oConf=array()) {
00776 if ($GLOBALS['TSFE']->beUserLogin){
00777 if (!$row || !$tablename) {
00778 $row = $this->internal['currentRow'];
00779 $tablename = $this->internal['currentTable'];
00780 }
00781 $conf=array_merge(array(
00782 'beforeLastTag'=>1,
00783 'iconTitle' => $title
00784 ),$oConf);
00785 $content=$this->cObj->editIcons($content,$tablename.':'.$fields,$conf,$tablename.':'.$row['uid'],$row,'&viewUrl='.rawurlencode(t3lib_div::getIndpEnv('REQUEST_URI')));
00786 }
00787 return $content;
00788 }
00789
00790
00791
00792
00793
00794
00795
00796
00797
00798
00799
00800
00801
00802
00803
00804
00805
00806
00807
00808
00809
00810
00811
00812
00822 function pi_getLL($key,$alt='',$hsc=FALSE) {
00823 if (isset($this->LOCAL_LANG[$this->LLkey][$key])) {
00824 $word = $GLOBALS['TSFE']->csConv($this->LOCAL_LANG[$this->LLkey][$key]);
00825 } elseif (isset($this->LOCAL_LANG['default'][$key])) {
00826 $word = $this->LOCAL_LANG['default'][$key];
00827 } else {
00828 $word = $this->LLtestPrefixAlt.$alt;
00829 }
00830
00831 $output = $this->LLtestPrefix.$word;
00832 if ($hsc) $output = htmlspecialchars($output);
00833
00834 return $output;
00835 }
00836
00843 function pi_loadLL() {
00844 if (!$this->LOCAL_LANG_loaded && $this->scriptRelPath) {
00845 $basePath = t3lib_extMgm::siteRelPath($this->extKey).dirname($this->scriptRelPath).'/locallang.php';
00846 if (@is_file($basePath)) {
00847 include('./'.$basePath);
00848 $this->LOCAL_LANG = $LOCAL_LANG;
00849 if (is_array($this->conf['_LOCAL_LANG.'])) {
00850 reset($this->conf['_LOCAL_LANG.']);
00851 while(list($k,$lA)=each($this->conf['_LOCAL_LANG.'])) {
00852 if (is_array($lA)) {
00853 $k = substr($k,0,-1);
00854 $this->LOCAL_LANG[$k] = t3lib_div::array_merge_recursive_overrule(is_array($this->LOCAL_LANG[$k])?$this->LOCAL_LANG[$k]:array(), $lA);
00855 }
00856 }
00857 }
00858 }
00859 }
00860 $this->LOCAL_LANG_loaded = 1;
00861 }
00862
00863
00864
00865
00866
00867
00868
00869
00870
00871
00872
00873
00874
00875
00876
00877
00878
00879
00880
00881
00882
00883
00884
00885
00886
00887
00888
00889
00890
00908 function pi_list_query($table,$count=0,$addWhere='',$mm_cat='',$groupBy='',$orderBy='',$query='',$returnQueryArray=FALSE) {
00909
00910
00911 if (!$query) {
00912
00913
00914
00915 $pidList = $this->pi_getPidList($this->conf['pidList'],$this->conf['recursive']);
00916 if (is_array($mm_cat)) {
00917 $query='FROM '.$table.','.$mm_cat['table'].','.$mm_cat['mmtable'].chr(10).
00918 ' WHERE '.$table.'.uid='.$mm_cat['mmtable'].'.uid_local AND '.$mm_cat['table'].'.uid='.$mm_cat['mmtable'].'.uid_foreign '.chr(10).
00919 (strcmp($mm_cat['catUidList'],'')?' AND '.$mm_cat['table'].'.uid IN ('.$mm_cat['catUidList'].')':'').chr(10).
00920 ' AND '.$table.'.pid IN ('.$pidList.')'.chr(10).
00921 $this->cObj->enableFields($table).chr(10);
00922 } else {
00923 $query='FROM '.$table.' WHERE pid IN ('.$pidList.')'.chr(10).
00924 $this->cObj->enableFields($table).chr(10);
00925 }
00926 }
00927
00928
00929 list($TABLENAMES,$WHERE) = spliti('WHERE', trim($query), 2);
00930 $TABLENAMES = trim(substr(trim($TABLENAMES),5));
00931 $WHERE = trim($WHERE);
00932
00933
00934 if ($addWhere) {$WHERE.=' '.$addWhere.chr(10);}
00935
00936
00937 if ($this->piVars['sword'] && $this->internal['searchFieldList']) {
00938 $WHERE.=$this->cObj->searchWhere($this->piVars['sword'],$this->internal['searchFieldList'],$table).chr(10);
00939 }
00940
00941 if ($count) {
00942 $queryParts = array(
00943 'SELECT' => 'count(*)',
00944 'FROM' => $TABLENAMES,
00945 'WHERE' => $WHERE,
00946 'GROUPBY' => '',
00947 'ORDERBY' => '',
00948 'LIMIT' => ''
00949 );
00950 } else {
00951
00952 if (!$orderBy) {
00953 if (t3lib_div::inList($this->internal['orderByList'],$this->internal['orderBy'])) {
00954 $orderBy = 'ORDER BY '.$table.'.'.$this->internal['orderBy'].($this->internal['descFlag']?' DESC':'');
00955 }
00956 }
00957
00958
00959 $pointer = $this->piVars['pointer'];
00960 $pointer = intval($pointer);
00961 $results_at_a_time = t3lib_div::intInRange($this->internal['results_at_a_time'],1,1000);
00962 $LIMIT = ($pointer*$results_at_a_time).','.$results_at_a_time;
00963
00964
00965 $queryParts = array(
00966 'SELECT' => $this->pi_prependFieldsWithTable($table,$this->pi_listFields),
00967 'FROM' => $TABLENAMES,
00968 'WHERE' => $WHERE,
00969 'GROUPBY' => $GLOBALS['TYPO3_DB']->stripGroupBy($groupBy),
00970 'ORDERBY' => $GLOBALS['TYPO3_DB']->stripOrderBy($orderBy),
00971 'LIMIT' => $LIMIT
00972 );
00973 }
00974
00975 $query = $GLOBALS['TYPO3_DB']->SELECTquery (
00976 $queryParts['SELECT'],
00977 $queryParts['FROM'],
00978 $queryParts['WHERE'],
00979 $queryParts['GROUPBY'],
00980 $queryParts['ORDERBY'],
00981 $queryParts['LIMIT']
00982 );
00983 return $returnQueryArray ? $queryParts : $query;
00984 }
00985
01000 function pi_exec_query($table,$count=0,$addWhere='',$mm_cat='',$groupBy='',$orderBy='',$query='') {
01001 $queryParts = $this->pi_list_query($table,$count,$addWhere,$mm_cat,$groupBy,$orderBy,$query, TRUE);
01002
01003 return $GLOBALS['TYPO3_DB']->exec_SELECT_queryArray($queryParts);
01004 }
01005
01015 function pi_getRecord($table,$uid,$checkPage=0) {
01016 return $GLOBALS['TSFE']->sys_page->checkRecord($table,$uid,$checkPage);
01017 }
01018
01026 function pi_getPidList($pid_list,$recursive=0) {
01027 if (!strcmp($pid_list,'')) $pid_list = $GLOBALS['TSFE']->id;
01028 $recursive = t3lib_div::intInRange($recursive,0);
01029
01030 $pid_list_arr = array_unique(t3lib_div::trimExplode(',',$pid_list,1));
01031 $pid_list = array();
01032
01033 foreach($pid_list_arr as $val) {
01034 $val = t3lib_div::intInRange($val,0);
01035 if ($val) {
01036 $_list = $this->cObj->getTreeList(-1*$val, $recursive);
01037 if ($_list) $pid_list[] = $_list;
01038 }
01039 }
01040
01041 return implode(',', $pid_list);
01042 }
01043
01051 function pi_prependFieldsWithTable($table,$fieldList) {
01052 $list=t3lib_div::trimExplode(',',$fieldList,1);
01053 $return=array();
01054 while(list(,$listItem)=each($list)) {
01055 $return[]=$table.'.'.$listItem;
01056 }
01057 return implode(',',$return);
01058 }
01059
01071 function pi_getCategoryTableContents($table,$pid,$whereClause='',$groupBy='',$orderBy='',$limit='') {
01072 $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery(
01073 '*',
01074 $table,
01075 'pid='.intval($pid).
01076 $this->cObj->enableFields($table).' '.
01077 $whereClause,
01078 $groupBy,
01079 $orderBy,
01080 $limit
01081 );
01082 $outArr = array();
01083 while($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
01084 $outArr[$row['uid']] = $row;
01085 }
01086 $GLOBALS['TYPO3_DB']->sql_free_result($res);
01087 return $outArr;
01088 }
01089
01090
01091
01092
01093
01094
01095
01096
01097
01098
01099
01100
01101
01102
01103
01104
01105
01106
01115 function pi_isOnlyFields($fList,$lowerThan=-1) {
01116 $lowerThan = $lowerThan==-1 ? $this->pi_lowerThan : $lowerThan;
01117
01118 $fList = t3lib_div::trimExplode(',',$fList,1);
01119 $tempPiVars = $this->piVars;
01120 while(list(,$k)=each($fList)) {
01121 if (!t3lib_div::testInt($tempPiVars[$k]) || $tempPiVars[$k]<$lowerThan) unset($tempPiVars[$k]);
01122 }
01123 if (!count($tempPiVars)) return 1;
01124 }
01125
01135 function pi_autoCache($inArray) {
01136 if (is_array($inArray)) {
01137 reset($inArray);
01138 while(list($fN,$fV)=each($inArray)) {
01139 if (!strcmp($inArray[$fN],'')) {
01140 unset($inArray[$fN]);
01141 } elseif (is_array($this->pi_autoCacheFields[$fN])) {
01142 if (is_array($this->pi_autoCacheFields[$fN]['range'])
01143 && intval($inArray[$fN])>=intval($this->pi_autoCacheFields[$fN]['range'][0])
01144 && intval($inArray[$fN])<=intval($this->pi_autoCacheFields[$fN]['range'][1])) {
01145 unset($inArray[$fN]);
01146 }
01147 if (is_array($this->pi_autoCacheFields[$fN]['list'])
01148 && in_array($inArray[$fN],$this->pi_autoCacheFields[$fN]['list'])) {
01149 unset($inArray[$fN]);
01150 }
01151 }
01152 }
01153 }
01154 if (!count($inArray)) return 1;
01155 }
01156
01166 function pi_RTEcssText($str) {
01167 $parseFunc = $GLOBALS['TSFE']->tmpl->setup['lib.']['parseFunc_RTE.'];
01168 if (is_array($parseFunc)) $str = $this->cObj->parseFunc($str, $parseFunc);
01169 return $str;
01170 }
01171
01172
01173
01174
01175
01176
01177
01178
01179
01180
01181
01187 function pi_initPIflexForm() {
01188
01189 if (!is_array($this->cObj->data['pi_flexform']) && $this->cObj->data['pi_flexform']) {
01190 $this->cObj->data['pi_flexform'] = t3lib_div::xml2array($this->cObj->data['pi_flexform']);
01191 if (!is_array($this->cObj->data['pi_flexform'])) $this->cObj->data['pi_flexform']=array();
01192 }
01193 }
01194
01205 function pi_getFFvalue($T3FlexForm_array,$fieldName,$sheet='sDEF',$lang='lDEF',$value='vDEF') {
01206 $sheetArray = $T3FlexForm_array['data'][$sheet][$lang];
01207 if (is_array($sheetArray)) {
01208 return $this->pi_getFFvalueFromSheetArray($sheetArray,explode('/',$fieldName),$value);
01209 }
01210 }
01211
01222 function pi_getFFvalueFromSheetArray($sheetArray,$fieldNameArr,$value) {
01223
01224 $tempArr=$sheetArray;
01225 foreach($fieldNameArr as $k => $v) {
01226 if (t3lib_div::testInt($v)) {
01227 if (is_array($tempArr)) {
01228 $c=0;
01229 foreach($tempArr as $values) {
01230 if ($c==$v) {
01231 #debug($values);
01232 $tempArr=$values;
01233 break;
01234 }
01235 $c++;
01236 }
01237 }
01238 } else {
01239 $tempArr = $tempArr[$v];
01240 }
01241 }
01242 return $tempArr[$value];
01243 }
01244 }
01245
01246
01247 ?>