Renaming "Samples" directory
authorfab1en <fab1en@735d13b6-9817-0410-8766-e36946ffe9aa>
Thu, 25 Oct 2012 11:44:01 +0000 (11:44 +0000)
committerfab1en <fab1en@735d13b6-9817-0410-8766-e36946ffe9aa>
Thu, 25 Oct 2012 11:44:01 +0000 (11:44 +0000)
git-svn-id: https://svn.typo3.org/TYPO3v4/Extensions/phpdisplay/trunk@67421 735d13b6-9817-0410-8766-e36946ffe9aa

Configuration/TCA/tx_phpdisplay_displays.php
Samples/Advanced.php [new file with mode: 0644]
Samples/Simple.php [new file with mode: 0644]
class.tx_phpdisplay.php

index 5cc4ba6..563c01d 100644 (file)
@@ -41,7 +41,7 @@ $TCA['tx_phpdisplay_displays'] = array(
                                'type' => 'input',
                                'size' => '30',
                                'eval' => 'trim',
-                               'default' => 'FILE:EXT:phpdisplay/samples/dummy.php',
+                               'default' => 'EXT:phpdisplay/Samples/Simple.php',
                                'wizards' => Array(
                                        '_PADDING' => 2,
                                        'link' => Array(
diff --git a/Samples/Advanced.php b/Samples/Advanced.php
new file mode 100644 (file)
index 0000000..016656d
--- /dev/null
@@ -0,0 +1 @@
+<?php\r\r// Parameters\r$parameters = t3lib_div::_GP('tx_displaycontroller');\r\r// Default language of this website is 'fr'\r$language = 'fr';\rif (!empty($GLOBALS['TSFE']->tmpl->setup['config.']['language'])) {\r $language = $GLOBALS['TSFE']->tmpl->setup['config.']['language'];\r}\r\rsaveParameters($parameters);\r?>\r\r<h2><?php translate('search_result') ?></h2>\r\r<div class="row-fluid">\r    <div class="span4">\r            <?php numberOfResults($datastructure, $filter); ?>\r     </div>\r <div class="span8 pull-right">\r         <?php pageBrowser($datastructure, $filter); ?>\r </div>\r</div>\r\r<table class="table table-striped">\r     <thead>\r        <tr>\r           <th><?php translate('title');?></th>\r           <th><?php translate('location');?></th>\r                <th><?php translate('type');?></th>\r            <th><?php translate('companyType');?></th>\r             <th>\r                   <a href="<?php linkSort() ?>">\r                         <?php translate('date');?>\r                             <?php if ($parameters['sort'] == 'job_publicationdate' && $parameters['order'] == 'desc'): ?>\r                          <?php image('bullet_arrow_down.png'); ?>\r                               <?php elseif ($parameters['sort'] == 'job_publicationdate' && $parameters['order'] == 'asc'): ?>\r                               <?php image('bullet_arrow_up.png'); ?>\r                         <?php endif ?>\r                 </a>\r           </th>\r  </tr>\r  </thead>\r       <tbody>\r        <?php foreach ($datastructure['tx_manpower_jobs']['records'] as $job): ?>\r      <tr>\r           <td>\r                   <a href="<?php linkToDetail($job['uid']) ?>">\r                          <?php print $job['job_name'] ?>\r                        </a>\r           </td>\r          <td><?php puts($job, 'job_workingplace') ?></td>\r               <td><?php puts($job['__substructure']['tx_manpower_jobtypes']['records'][0], 'jobtype_name_' . $language); ?></td>\r             <td><?php puts($job['__substructure']['tx_manpower_businesssectors']['records'][0], 'businesssector_name_' . $language); ?></td>\r               <td><?php putsDate($job, 'job_publicationdate') ?></td>\r        </tr>\r          <?php endforeach ?>\r    </tbody>\r</table>\r\r\r<?php\r\r/**\r * Helper function for translating a key\r *\r * @param string $key\r */\rfunction translate($key) {\r        $extensionName = 'manpower_searchform';\r        print Tx_Extbase_Utility_Localization::translate($key, $extensionName);\r}\r\r/**\r * Helper function for displaying a key of a record\r *\r * @param array $record\r * @param string $key\r */\rfunction puts($record, $key) {\r if (!empty($record[$key])) {\r           print $record[$key];\r   }\r}\r\r/**\r * Helper function for displaying a key of a record\r *\r * @param array $record\r * @param string $key\r */\rfunction putsDate($record, $key) {\r   if (!empty($record[$key])) {\r           $value = $record[$key];\r                print date("d.m.Y", $value);\r   }\r}\r\r/**\r * Helper function for display an image from default location\r *\r * @param string $key\r */\rfunction image($key) {\r     $image = '<img src="/fileadmin/templates/general/images/%s" alt="" />';\r        print sprintf($image, $key);\r\r}\r\r/**\r * Helper function for displaying a key of a record\r */\rfunction linkSort() {\r\r    // Parameters\r  $parameters = t3lib_div::_GP('tx_displaycontroller');\r\r // Set default sorting value\r   if (empty($parameters['sort'])) {\r              $parameters['sort'] = 'job_publicationdate';\r   }\r\r     // Set ordering value\r  if (!empty($parameters['order']) && $parameters['order'] == 'asc') {\r           $parameters['order'] = 'desc';\r } else {\r               $parameters['order'] = 'asc';\r  }\r\r     $additionalParams = '';\r        foreach ($parameters as $parameter => $value) {\r                $additionalParams .= sprintf("&tx_displaycontroller[%s]=%s", $parameter, $value);\r      }\r\r     /** @var $contentObject tslib_cObj */\r  $contentObject = $GLOBALS['TSFE']->cObj;\r       $config['returnLast'] = 'url';\r $config['parameter'] = $GLOBALS['TSFE']->id;\r   $config['additionalParams'] = $additionalParams;\r       print $contentObject->typolink('', $config);\r}\r\r/**\r * @param $uid\r */\rfunction linkToDetail($uid) {\r   /** @var $contentObject tslib_cObj */\r  $contentObject = $GLOBALS['TSFE']->cObj;\r       $config = array();\r     $config['returnLast'] = 'url';\r $config['parameter'] = 314;\r    $config['additionalParams'] = '&tx_displaycontroller[job]=' . $uid;\r    print $contentObject->typolink('', $config);\r}\r\r/**\r * @param array $datastructure\r * @param array $filter\r */\rfunction numberOfResults($datastructure, $filter) {\r     $extensionName = 'manpower_searchform';\r\r       $total = $datastructure['tx_manpower_jobs']['totalCount'];\r     if ($datastructure['tx_manpower_jobs']['totalCount'] > ($filter['limit']['offset'] + 1) * $filter['limit']['max']) {\r           $total = ($filter['limit']['offset'] + 1) * $filter['limit']['max'];\r   }\r\r     print sprintf('%s %d-%d %s %d',\r                Tx_Extbase_Utility_Localization::translate('advertisements', $extensionName),\r          $filter['limit']['offset'] * $filter['limit']['max'] + 1,\r              $total,\r                Tx_Extbase_Utility_Localization::translate('on', $extensionName),\r              $datastructure['tx_manpower_jobs']['totalCount']\r       );\r}\r\r/**\r * Helper function to display the page browser\r *\r * @param array $datastructure\r * @param array $filter\r */\rfunction pageBrowser($datastructure, $filter) {\r\r        /** @var $contentObject tslib_cObj */\r  $contentObject = $GLOBALS['TSFE']->cObj;\r       $conf = $GLOBALS['TSFE']->tmpl->setup['plugin.']['tx_pagebrowse_pi1.'];\r        $conf['pageParameterName'] = 'tx_displaycontroller|page';\r\r     // Adds limit to the query and calculates the number of pages.\r if ($filter['limit']['max'] != '' && $filter['limit']['max'] != '0') {\r\r                // Defines other possible pagebrowse configuration options\r             $conf['templateFile'] = 'fileadmin/templates/general/ext/pagebrowse_job.html';\r         $conf['numberOfPages'] = ceil($datastructure['tx_manpower_jobs']['totalCount'] / $filter['limit']['max']);\r             $conf['items_per_page'] = $filter['limit']['max'];\r             $conf['disableCacheHash'] = TRUE;\r              $conf['total_items'] = $datastructure['tx_manpower_jobs']['totalCount'];\r               $conf['total_pages'] = $conf['numberOfPages']; // duplicated, because $conf['numberOfPages'] is protected\r      } else {\r               $conf['numberOfPages'] = 1;\r    }\r\r     print $contentObject->cObjGetSingle('USER', $conf);\r}\r\r/**\r * Save parameters in Session\r *\r * NOTICE: One could argue Tesseract offers a mechanism to store filter in session as well\r * However, it turned out to be fairly complicated to write the correct syntax.\r * Consider the key below which contains a "0" index which is influenced by the position of the filter.\r *\r * E.g job_search|filters|score|0|value\r *\r * This could quickly become  error-prone.\r * \r * @param $parameters the parameters coming from the URL\r */\rfunction saveParameters($parameters) {\r        /** @var $user tslib_feUserAuth */\r     $user = $GLOBALS['TSFE']->fe_user;\r\r    if (empty($parameters['sort'])) {\r              $parameters['sort'] = 'no_filter.score';\r               $parameters['order'] = '';\r     }\r\r     $values = array();\r     foreach ($parameters as $parameter => $value) {\r                $values['filters'][$parameter] = $value;\r       }\r      $user->setKey('ses', 'job_search', $values);\r}\r\r?>
\ No newline at end of file
diff --git a/Samples/Simple.php b/Samples/Simple.php
new file mode 100644 (file)
index 0000000..7055494
--- /dev/null
@@ -0,0 +1 @@
+<!-- Looping around $records -->\r<b>It works!</b> See content of EXT:phpdisplay/Samples/Simple.php to have more examples.\r<br />\r\r<!-- PHP TEMPLATE SYNTAX FOR HTML -->\r<?php if (! empty($datastructure['page']['records'])): ?>\r     <?php foreach($datastructure['page']['records'] as $record): ?>\r                <?php print $record['title'] ?>\r        <?php endforeach ?>\r<?php endif ?>\r\r<?php\r      // debug\r       #t3lib_div::debug($datastructure,'debug');\r     #t3lib_div::debug($filter,'debug');\r\r   // CObj\r        $localCObj = t3lib_div::makeInstance('tslib_cObj');\r    $localCObj->start(array(), '');\r\r       // Parameters\r  $parameters = t3lib_div::_GP('tx_displaycontroller');\r\r // FE USER\r     $feUser = $GLOBALS['TSFE']->fe_user->user;\r     $feUserUid = $GLOBALS['TSFE']->fe_user->user['uid'];\r\r  // link\r        $localCObj->start($record);\r    $config = array();\r     $config['returnLast'] = 'url';\r $config['parameter.']['data'] = 'TSFE:tmpl|setup|plugin.|tx_speciality.|courses_detail_pid';\r   $config['additionalParams'] = '&tx_displaycontroller[table]=courses&tx_displaycontroller[showUid]={field:uid}';\r        $config['additionalParams.']['insertData'] = 1;\r        $link = $localCObj->typolink('',$config);\r\r     // Generating thumbnails\r       $configThumbnail = array();\r    $configThumbnail['file'] = $record['file'];\r    $configThumbnail['altText'] = $record['title'];\r        $configThumbnail['file.']['height'] = 70;\r      $configThumbnail['file.']['width'] = 50;\r       $configThumbnail['file.']['minW'] = 70;\r        $configThumbnail['file.']['minH'] = 50;\r        $htmlThumbnail = $localCObj->IMAGE($configThumbnail);\r\r\r        // Generating thumbnails from PDF\r      $configThumbnail = array();\r    $configThumbnail['file'] = $record['file'];\r    $configThumbnail['altText'] = $record['title'];\r        #$configThumbnail['file.']['height'] = 70;\r     $configThumbnail['file.']['width'] = 50;\r       #$configThumbnail['file.']['minW'] = 70;\r       #$configThumbnail['file.']['minH'] = 50;\r       $configThumbnail['file.']['import.']['cObject'] = 'IMG_RESOURCE';\r      $configThumbnail['file.']['import.']['cObject.']['ext'] = 'jpg';\r       $configThumbnail['file.']['import.']['cObject.']['quality'] = '100';\r   $configThumbnail['file.']['import.']['cObject.']['file.']['params'] = '-trim';\r $configThumbnail['file.']['import.']['cObject.']['file'] = $configThumbnail['file'];\r   #$configThumbnail['file.']['import.']['cObject.']['file.']['width'] = '1080';\r  $htmlThumbnail = $localCObj->IMAGE($configThumbnail);\r\r // TypoScript configuration\r    $configuration = $TSFE->tmpl->setup['config.'];\r\r       // Language support\r    $LANG = t3lib_div::makeInstance('Language');\r   $LANG->lang = $configuration['language'];\r      $LANG->charSet = 'utf-8';\r      $LANG->includeLLFile('EXT:speciality/Resources/Private/locallang.xml');\r\r       print $LANG->getLL('cat');\r     print $LANG->sL('LLL:EXT:speciality/Resources/Private/locallang.xml');\r\r        // RTE\r $config['parseFunc.'] = $GLOBALS['TSFE']->tmpl->setup['lib.']['parseFunc_RTE.'];\r       $config['value'] = $record['bodytext'];\r        $value = $localCObj->TEXT($config);\r\r   // PAGEBROWSE\r  $conf = $GLOBALS['TSFE']->tmpl->setup['plugin.']['tx_pagebrowse_pi1.'];\r        $conf['pageParameterName'] = 'tx_displaycontroller|page';\r\r\r    // Adds limit to the query and calculates the number of pages.\r if ($filter['limit']['max'] != '' && $filter['limit']['max'] != '0') {\r         //$conf['extraQueryString'] .= '&' . $this->pObj->getPrefixId() . '[max]=' . $filter['limit']['max'];\r          $conf['numberOfPages'] = ceil($datastructure['news']['totalCount'] / $filter['limit']['max']);\r         $conf['items_per_page'] = $filter['limit']['max'];\r             $conf['total_items'] = $datastructure['news']['totalCount'];\r           $conf['total_pages'] = $conf['numberOfPages']; // duplicated, because $conf['numberOfPages'] is protected\r      }\r      else {\r         $conf['numberOfPages'] = 1;\r    }\r\r     // Defines other possible pagebrowse configuration options\r     #$conf['enableMorePages'] = '';\r        #$conf['enableLessPages'] = '';\r        #$conf['pagesBefore'] = '';\r    #$conf['pagesAfter'] = '';\r\r    /* @var $cObj tslib_cObj */\r    print $localCObj->cObjGetSingle('USER', $conf);\r?>\r
\ No newline at end of file
index be3d1d2..0fd8d73 100644 (file)
@@ -171,8 +171,8 @@ class tx_phpdisplay extends tx_tesseract_feconsumerbase {
 
                if (preg_match('/^FILE:/isU', $templateFile)) {
                        $filePath = str_replace('FILE:', '' , $templateFile);
-                       $templateFile = t3lib_div::getFileAbsFileName($filePath);
                }
+               $templateFile = t3lib_div::getFileAbsFileName($filePath);
 
                if (is_file($templateFile)) {
                                /** @var $template tx_phpdisplay_template */
@@ -203,6 +203,14 @@ class tx_phpdisplay extends tx_tesseract_feconsumerbase {
                }
        }
 
+       /**
+        * Returns a reference to the component's controller
+        *
+        * @return tx_tesseract_datacontroller_output The controller
+        */
+       public function getController() {
+               return $this->controller;
+       }
 }
 
 if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/phpdisplay/class.tx_phpdisplay.php']){