Update advance example
authorfab1en <fab1en@735d13b6-9817-0410-8766-e36946ffe9aa>
Tue, 6 Nov 2012 16:06:55 +0000 (16:06 +0000)
committerfab1en <fab1en@735d13b6-9817-0410-8766-e36946ffe9aa>
Tue, 6 Nov 2012 16:06:55 +0000 (16:06 +0000)
git-svn-id: https://svn.typo3.org/TYPO3v4/Extensions/phpdisplay/trunk@67658 735d13b6-9817-0410-8766-e36946ffe9aa

Samples/Advanced.php

index 016656d..cfd4af4 100644 (file)
@@ -1 +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
+<?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['useCacheHash'] = 1;\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