PageRenderTime 46ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/protected/modules/page/widgets/PageView.php

https://bitbucket.org/rohitrox/hotc
PHP | 124 lines | 110 code | 11 blank | 3 comment | 14 complexity | 8502aab886195f462758687966303f47 MD5 | raw file
Possible License(s): MIT
  1. <?php
  2. class PageView extends CWidget {
  3. public $model;
  4. public $fields = array();
  5. private $page;
  6. public function init() {
  7. //check for required arguments
  8. if (!$this->model)
  9. throw new CHttpException('500', '$model must be provided for PageView Widget');
  10. //users do not tend to use array for single item
  11. if (!is_array($this->fields)) {
  12. $tmp = array();
  13. $tmp[0] = $this->fields;
  14. $this->fields = $tmp;
  15. }
  16. //get Page
  17. if (get_class($this->model) == 'Page')
  18. $this->page = $this->model;
  19. else
  20. $this->page = $this->model->page; //for update
  21. }
  22. public function run() {
  23. $page = $this->page;
  24. foreach ($this->fields as $field) {
  25. switch ($field) {
  26. case 'title':
  27. ?>
  28. <h1 itemprop="headline"><?php echo $page->title; ?></h1>
  29. <?php
  30. break;
  31. case 'content':
  32. echo '<div class="rte-text" itemprop="articleBody">' . $page->content . "</div>";
  33. break;
  34. case 'created_at':
  35. echo '<div class="post-time">' . Yii::t('app', 'Posted on ') . '<span itemprop="datePublished">' . date('F d, Y h:m A', strtotime($page->created_at)) . "</span></div>";
  36. break;
  37. case 'excerpt':
  38. if (!empty($page->content)) {
  39. ?>
  40. <div class="field">
  41. <div class="field_value">
  42. <?php echo $page->getExcerpt(); ?>
  43. </div>
  44. </div>
  45. <?php
  46. }
  47. break;
  48. case 'sub-pages':
  49. if (count($page->pages)) {
  50. ?>
  51. <h2><?php echo CHtml::link(Yii::t('app', Awecms::pluralize('Sub-Page', 'Sub-Pages', count($page->pages))), array('/page/page')); ?></h2>
  52. <ul class="sub_pages">
  53. <?php
  54. if (is_array($page->pages))
  55. foreach ($page->pages as $foreignobj) {
  56. echo '<li>';
  57. echo CHtml::link($foreignobj->title, array('/page/page/view', 'id' => $foreignobj->id));
  58. }
  59. ?>
  60. </ul>
  61. <?php
  62. }
  63. break;
  64. case 'categories':
  65. if (Yii::app()->hasModule('category') && count($page->categories)) {
  66. ?>
  67. <h2><?php echo CHtml::link(Yii::t('app', Awecms::pluralize('Category', 'Categories', count($page->categories))), array('/category/category')); ?></h2>
  68. <ul class="categories">
  69. <?php
  70. if (is_array($page->categories))
  71. foreach ($page->categories as $foreignobj) {
  72. echo '<li>
  73. <a href="' . Yii::app()->createUrl('/category/category/view', array('id' => $foreignobj->id)) . '">
  74. <span itemprop="articleSection">' . $foreignobj->name . '</span>
  75. </a>
  76. </li>';
  77. }
  78. ?>
  79. </ul>
  80. <?php
  81. }
  82. break;
  83. case 'views':
  84. if (!empty($page->views)) {
  85. ?>
  86. <div class="field">
  87. <?php echo CHtml::encode($page->getAttributeLabel('views')); ?>:
  88. <?php echo $page->views; ?>
  89. </div>
  90. <?php
  91. }
  92. break;
  93. case 'tags':
  94. if (Yii::app()->hasModule('tag')) {
  95. $tags = $page->getTags();
  96. if (!empty($tags)) {
  97. ?>
  98. <div class="field">
  99. <?php echo Yii::t('app', 'Tags'); ?>:
  100. <?php
  101. echo '<span class="tags" itemprop="keywords">' . implode(', ', $tags) . '</span>';
  102. ?>
  103. </div>
  104. <?php
  105. }
  106. }
  107. break;
  108. default :
  109. break;
  110. }
  111. }
  112. }
  113. }