Hello Dimitry,

thanks for your answere.
> Basically you did what I said: you moved "$GLOBALS['BE_USER']->user['admin'] 
> = 1" above "$tce->start(...)".

This line was in the beginning of the function in the first post, thats 
why i meant, thats not the goal - as far as i understand what you meant.

For some reason the following code is working now, I've debugged all the
variables again and again - it was a small typo ...

Perhaps it's helpfully for someone else ;)

Thanks a lot.
Best regards

Kay



function setTSConstantValue($pid,$name,$value) {
                        
                        $userStatus = $GLOBALS['BE_USER']->user['admin'];
                        $GLOBALS['BE_USER']->user['admin']=1;

                        $template_uid = 0;
                        $pageId = $pid;
                        $tmpl = t3lib_div::makeInstance("t3lib_tsparser_ext");  
// Defined 
global here!
                        $tmpl->tt_track = 0;    // Do not log time-performance 
information
                        $tmpl->init();
        
                        $tplRow = 
$tmpl->ext_getFirstTemplate($pageId,$template_uid);
                        if (is_array($tplRow) || 1)     {
                                $sys_page = 
t3lib_div::makeInstance("t3lib_pageSelect");
                                $rootLine = $sys_page->getRootLine($pageId);
                                
$tmpl->runThroughTemplates($rootLine,$template_uid);    // This 
generates the constants/config + hierarchy info for the template.
                                $theConstants = 
$tmpl->generateConfig_constants();      // The editable 
constants are returned in an array.
                                
$tmpl->ext_categorizeEditableConstants($theConstants);  // The 
returned constants are sorted in categories, that goes into the 
$tmpl->categories array
                                
$tmpl->ext_regObjectPositions($tplRow["constants"]);            // This array 
will contain key=[expanded constantname], value=linenumber in template. 
(after edit_divider, if any)
                                
                                $tmpl->ext_putValueInConf($name,$value);
                                
                                $recData=array();
                                $saveId = $tplRow['_ORIG_uid'] ? 
$tplRow['_ORIG_uid'] : $tplRow['uid'];
                                $recData["sys_template"][$saveId]["constants"] 
= 
implode($tmpl->raw,chr(10));
                                                        
                                print_r($saveId);
                                
                                // Create new  tce-object
                                $tce = t3lib_div::makeInstance("t3lib_TCEmain");
                                $tce->stripslashes_values=0;
                                // Initialize
                                $tce->start($recData,Array());
                                // Saved the stuff
                                $tce->process_datamap();
                                // Clear the cache (note: currently only 
admin-users can clear the 
cache in tce_main.php)
                                $tce->clear_cacheCmd("all");
                                
                                
                                $tce->admin = $userStatus;
                                $GLOBALS['BE_USER']->user['admin']=$userStatus;
                                
                        } else {
                                throw new Exception('No Template found!!!');
                        }
                }


                function getTSConstantValue($pid,$name) {
                        $template_uid = 0;
                        $pageId = $pid;
                        $tmpl = t3lib_div::makeInstance("t3lib_tsparser_ext");  
// Defined 
global here!
                        $tmpl->tt_track = 0;    // Do not log time-performance 
information
                        $tmpl->init();
        
                        $tplRow = 
$tmpl->ext_getFirstTemplate($pageId,$template_uid);
                        if (is_array($tplRow) || 1)     {       // IF there was 
a template...
                                        // Gets the rootLine
                                $sys_page = 
t3lib_div::makeInstance("t3lib_pageSelect");
                                $rootLine = $sys_page->getRootLine($pageId);
                                
$tmpl->runThroughTemplates($rootLine,$template_uid);    // This 
generates the constants/config + hierarchy info for the template.
                                $theConstants = 
$tmpl->generateConfig_constants();      // The editable 
constants are returned in an array.
                                
$tmpl->ext_categorizeEditableConstants($theConstants);  // The 
returned constants are sorted in categories, that goes into the 
$tmpl->categories array
                                
$tmpl->ext_regObjectPositions($tplRow["constants"]);            // This array 
will contain key=[expanded constantname], value=linenumber in template. 
(after edit_divider, if any)
                        } else {
                                throw new Exception('No Template found!!!');
                        }
                        return $tmpl->setup['constants'][$name];
                }
_______________________________________________
TYPO3-english mailing list
TYPO3-english@lists.netfielders.de
http://lists.netfielders.de/cgi-bin/mailman/listinfo/typo3-english

Reply via email to