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