Gentics Portal.Node PHP API
 All Classes Namespaces Functions Variables Pages
PersonalizedContentWidget.php
1 <?php
2  /**
3  * Gentics Portal.Node PHP
4  * Author & Copyright (c) by Gentics Software GmbH
5  * sales@gentics.com
6  * http://www.gentics.com
7  * Licenses can be found in the LICENSE.txt file in the root-folder of this installation
8  * You must not use this software without a valid license agreement.
9  *
10  */
11 ?>
12 
13 <?php
14  foreach ($contentList as $resultItem) {
15  $resultItem['attributes']['updatetimestamp'] = !empty($resultItem['attributes']['updatetimestamp']) ? $resultItem['attributes']['updatetimestamp'] : 0;
16 
17  foreach ($resultItem['attributes'] as $attributekey => $attributevalue ) {
18  if ( isset( $attributevalue ) && $attributevalue != '' ) $replace_array1['{{'.$attributekey.'}}'] = $attributevalue;
19  else $replace_array1['{{'.$attributekey.'}}'] = 'empty';
20  }
21  $replace_array2 = array(
22  '{{name}}' => !empty($resultItem['attributes']['name']) ? $resultItem['attributes']['name'] : '',
23  '{{url}}' => Yii::app()->CreateUrl($resultItem['attributes']['url']),
24  '{{content}}' => !empty($resultItem['attributes']['content']) ? $resultItem['attributes']['content'] : '',
25  '{{datetime}}' => Yii::app()->dateFormatter->formatDateTime($resultItem['attributes']['updatetimestamp'], 'medium', 'medium'),
26  '{{date}}' => Yii::app()->dateFormatter->formatDateTime($resultItem['attributes']['updatetimestamp'], 'medium', null),
27  '{{time}}' => Yii::app()->dateFormatter->formatDateTime($resultItem['attributes']['updatetimestamp'], null, 'medium'),
28  );
29  $replace_array = array_merge($replace_array1,$replace_array2);
30  $content = PersonalizedContentModule::t($this->tplString, $replace_array);
31  //The following expression would remove not replaced parameters
32  $content = preg_replace('/{{\w+}}/','',$content);
33  echo $content;
34  unset($replace_array1, $replace_array2, $resultItem, $replace_array, $content);
35  }
36 
37  if ($this->totalQty > $this->perPage) {
38  $isArrows = Yii::app()->getModule('personalizedContent')->enableArrowsInPaging;
39  $pages = array();
40  $p = ceil($this->offset / $this->perPage);
41  $pagesQty = ceil($this->totalQty / $this->perPage);
42 
43  if($p > 0){
44  $pages[] = '<a href="'.rtrim($this->baseHref, '&?').'">'.PersonalizedContentModule::t('First').'</a>';
45 
46  if($p==1){
47  $pages[] = '<a href="'.rtrim($this->baseHref, '&?').'">'.($isArrows?"<<":PersonalizedContentModule::t('Previous')).'</a>&nbsp;&nbsp;';
48  }else{
49  $pages[] = '<a href="'.$this->baseHref.'offset='.(($p-1)*$this->perPage).'">'.($isArrows?"<<":PersonalizedContentModule::t('Previous')).'</a>&nbsp;&nbsp;';
50  }
51  }
52  for($i=0; $i < $pagesQty; $i++){
53  if($i == $p){
54  $pages[] = '<span class="current">'.($i+1).'</span>';
55  } else if($i>($p-5) && $i < ($p+5)){
56  $pages[] = '<a href="'.$this->baseHref.'offset='.($i*$this->perPage).'">'.($i+1).'</a>';
57  }
58  }
59  if($p < ($pagesQty-1) ){
60  $pages[] = '&nbsp;&nbsp;<a href="'.$this->baseHref.'offset='.(($p+1)*$this->perPage).'">'.($isArrows?">>":PersonalizedContentModule::t('Next')).'</a>';
61 
62  $pages[] = '<a href="'.$this->baseHref.'offset='.(($pagesQty-1)*$this->perPage).'">'.PersonalizedContentModule::t('Last').'</a>';
63  }
64 
65  $pages = implode(' | ', $pages);
66 
67  echo '<div class="search-result-pagination">&nbsp;'.$pages.'&nbsp;</div>';
68  }
69 ?>