Hi Søren,

Happy New Year!

cObj relies heavily on TSFE, so you need a full TSFE in backend to get a cObj. Alternative would be to look at tslib_gifbuilder directly.

a fire and forget function to get TSFE in backend that I have stored away is this, put it into your BE class or as I do in into a "lib_div" as static function:

function buildTSFE($pid = 1) {

                //needed for TSFE
                require_once(PATH_t3lib.'class.t3lib_timetrack.php');
                require_once(PATH_t3lib.'class.t3lib_tsparser_ext.php');
                require_once(PATH_t3lib.'class.t3lib_page.php');
                require_once(PATH_t3lib.'class.t3lib_stdgraphic.php');

                require_once($BACK_PATH.'sysext/cms/tslib/class.tslib_fe.php');
                
require_once($BACK_PATH.'sysext/cms/tslib/class.tslib_content.php');
                
require_once($BACK_PATH.'sysext/cms/tslib/class.tslib_gifbuilder.php');
                /* Declare */
                $temp_TSFEclassName = 
t3lib_div::makeInstanceClassName('tslib_fe');

                /* Begin */
                if (!is_object($GLOBALS['TT'])) {
                        $GLOBALS['TT'] = new t3lib_timeTrack;
                        $GLOBALS['TT']->start();
                }

                if (!is_object($GLOBALS['TSFE']) && $pid) {
                        //*** Builds TSFE object
$GLOBALS['TSFE'] = new $temp_TSFEclassName($GLOBALS['TYPO3_CONF_VARS'],$pid,0,0,0,0,0,0);

                        //*** Builds sub objects
                        $GLOBALS['TSFE']->tmpl = 
t3lib_div::makeInstance('t3lib_tsparser_ext');
                        $GLOBALS['TSFE']->sys_page = 
t3lib_div::makeInstance('t3lib_pageSelect');

                        //*** init template
$GLOBALS['TSFE']->tmpl->tt_track = 0;// Do not log time-performance information
                        $GLOBALS['TSFE']->tmpl->init();

                        $rootLine = 
$GLOBALS['TSFE']->sys_page->getRootLine($pid);

//*** This generates the constants/config + hierarchy info for the template.

                        
$GLOBALS['TSFE']->tmpl->runThroughTemplates($rootLine,$template_uid);
                        $GLOBALS['TSFE']->tmpl->generateConfig();
                        $GLOBALS['TSFE']->tmpl->loaded=1;

                        //*** Get config array and other init from pagegen
                        $GLOBALS['TSFE']->getConfigArray();
$GLOBALS['TSFE']->linkVars = ''.$GLOBALS['TSFE']->config['config']['linkVars'];

if ($GLOBALS['TSFE']->config['config']['simulateStaticDocuments_pEnc_onlyP'])
                        {
foreach (t3lib_div::trimExplode(',',$GLOBALS['TSFE']->config['config']['simulateStaticDocuments_pEnc_onlyP'],1) as $temp_p)
                                {
                                        
$GLOBALS['TSFE']->pEncAllowedParamNames[$temp_p]=1;
                                }
                        }
                        //*** Builds a cObj
                        $GLOBALS['TSFE']->newCObj();
                }
}

Christian

On 05.01.2011 18:30, Søren Malling wrote:
Hi,

Happy new year! :)

The short question: Is it possible to use a cObj in a backend module?

My real issue: A client have created some database records, where one
of the fields are a relation to a file/image. This image can be
uploaded in any resolution. I would like to use the function IMAGE
from tslib_cObj to  create some nice thumbnails of the uploaded
images.

In my backend module the cObj is initialized like this

function init() {
$this->cObj = t3lib_div::makeInstance('tslib_cObj');
}

and used in my main() function like this

$this->content .= $this->cObj->IMAGE(array(
                                                        'file' =>  
$templateObject['previewicon'],
                                                        'file.' =>  array(
                                                                'maxW' =>  200,
                                                                'maxH' =>  200
                                                        )
                                                ));

and the error I get is

Fatal error: Call to a member function getFileName() on a non-object
in /opt/local/apache2/htdocs/site/typo3/sysext/cms/tslib/class.tslib_content.php
on line 4916

Can someone shed some light on this issue?

Best regards,

Søren Malling

TYPO3 Brugergruppe Danmark: www.typo3danmark.dk
Twitter: twitter.com/sorenmalling

_______________________________________________
TYPO3-english mailing list
[email protected]
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-english

Reply via email to