Hi Christian,

Thanks for your help, especially the gifbuilder hint! I ended up
having a look at typo3/show_item.php which in some cases, shows
thumbnails in the TYPO3 backend.

It showed me that it used t3lib_stdGraphic, and I was able to strip
out the code for generating thumbnails, which I will like to share
below:

$this->stdGraphic = t3lib_div::makeInstance('t3lib_stdGraphic');
$this->stdGraphic->init();
$this->stdGraphic->absPrefix = PATH_site;

$imageInfo = $this->stdGraphic->imageMagickConvert(
  PATH_site . 'uploads/tx_templavoila/' . $templateObject['previewicon'],
  'web',
  '200m',
  '200m',
  '',
  '',
  '',
  1
);
$imageInfo[3] = '/' . str_replace(PATH_site, '', $imageInfo[3]);
$this->content .= $this->stdGraphic->imgTag($imageInfo);

Documentation for the imageMagickConvert function can be found here:

http://doxygen.frozenkiwi.net/typo3/html/d4/d55/classt3lib__stdGraphic.html#a55f09814b58a8e995965cd665a6eafe6

Once again, thanks - and I hope, that somebody else can use this aswell! :)

Best regards,

Søren Malling

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



On Wed, Jan 5, 2011 at 7:07 PM, "Christian Müller (Kitsunet)"
<[email protected]> wrote:
> 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
>
_______________________________________________
TYPO3-english mailing list
[email protected]
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-english

Reply via email to