/_Includes/Sitengine/Blog/Backend/Blogs/Posts/Comments/ViewHelper.php

https://github.com/sitengine/sitengine · PHP · 282 lines · 182 code · 49 blank · 51 comment · 17 complexity · 9fceff03679889b3691497ed2de68a41 MD5 · raw file

  1. <?php
  2. /**
  3. * Sitengine - An example serving as a pattern
  4. *
  5. * LICENSE
  6. *
  7. * This source file is subject to the new BSD license that is bundled
  8. * with this package in the file LICENSE.txt.
  9. *
  10. * @category Sitengine
  11. * @package Sitengine_Blog
  12. * @copyright Copyright (c) 2007, Christian Hoegl, Switzerland (http://sitengine.org)
  13. * @license http://sitengine.org/license/new-bsd New BSD License
  14. */
  15. require_once 'Sitengine/View.php';
  16. abstract class Sitengine_Blog_Backend_Blogs_Posts_Comments_ViewHelper extends Sitengine_View {
  17. protected $_controller = null;
  18. protected $_queries = array();
  19. protected $_settings = array();
  20. protected $_sections = array();
  21. public function __construct(array $config)
  22. {
  23. if(isset($config['controller']) && $config['controller'] instanceof Sitengine_Blog_Backend_Blogs_Posts_Comments_Controller)
  24. {
  25. $this->_controller = $config['controller'];
  26. }
  27. else {
  28. require_once 'Sitengine/Exception.php';
  29. throw new Sitengine_Exception('construct error');
  30. }
  31. }
  32. public function setSection($name, array $data)
  33. {
  34. $this->_sections[$name] = $data;
  35. }
  36. public function getSections()
  37. {
  38. return $this->_sections;
  39. }
  40. public function getSettings()
  41. {
  42. return $this->_settings;
  43. }
  44. public function getQueries()
  45. {
  46. return $this->_queries;
  47. }
  48. public function build()
  49. {
  50. try {
  51. $this->_queries = $this->_controller->getFrontController()->getQueries();
  52. $this->setSection(
  53. 'GLOBALNAV',
  54. $this->_controller->getFrontController()->getGlobalNavSection(
  55. $this->_controller->getTranslate(),
  56. $this->_queries,
  57. 'blogBackendBlogs'
  58. )
  59. );
  60. /*
  61. if($this->_controller->getEnv()->getDebugControl()) {
  62. require_once 'Sitengine/Debug/Sections.php';
  63. $this->setSection(
  64. 'DBG',
  65. Sitengine_Debug_Sections::getForm(
  66. $this->_controller->getRequest(),
  67. $this->_controller->getPreferences()->getDebugMode(),
  68. array('queries' => 'Queries', 'templateData' => 'Template Data'),
  69. 'dbg'
  70. )
  71. );
  72. }
  73. require_once 'Sitengine/Env/Preferences/Sections.php';
  74. if(sizeof($this->_controller->getTranslate()->getAvailableLanguages()) > 1) {
  75. $this->setSection(
  76. 'LANGUAGE',
  77. Sitengine_Env_Preferences_Sections::getLanguageForm(
  78. $this->_controller->getPreferences()->getLanguage(),
  79. $this->_controller->getTranslate()->getAvailableLanguages(),
  80. $this->_controller->getTranslate()->translateGroup('loclangs')->toArray(),
  81. 'language'
  82. )
  83. );
  84. }
  85. $this->setSection(
  86. 'TIMEZONE',
  87. Sitengine_Env_Preferences_Sections::getTimezoneForm(
  88. $this->_controller->getPreferences()->getTimezone(),
  89. $this->_controller->getEnv()->getTimezones(),
  90. 'timezone'
  91. )
  92. );
  93. */
  94. $breadcrumbs = $this->_makeBreadcrumbsData();
  95. $this->setSection(
  96. 'BREADCRUMBS',
  97. array(
  98. #'title' => $this->_controller->getTranslate()->translate('breadcrumbsTitle'),
  99. 'DATA' => $breadcrumbs
  100. )
  101. );
  102. $this->setSection(
  103. 'ABSTRACT',
  104. array(
  105. 'title' => $breadcrumbs['post']['title'],
  106. 'uri' => $breadcrumbs['post']['uriUpdate'],
  107. 'help' => ''
  108. )
  109. );
  110. $args = array(
  111. Sitengine_Env::PARAM_GREATANCESTORID => $this->_controller->getEntity()->getGreatAncestorSlug(),
  112. Sitengine_Env::PARAM_ANCESTORID => $this->_controller->getEntity()->getAncestorId()
  113. );
  114. $route = $this->_controller->getFrontController()->getRouter()->getRoute(Sitengine_Blog_Backend_Front::ROUTE_BLOGS_POSTS_COMMENTS);
  115. $uriIndex = $this->_controller->getRequest()->getBasePath().'/'.$route->assemble($args, true);
  116. $args = array(
  117. Sitengine_Env::PARAM_GREATANCESTORID => $this->_controller->getEntity()->getGreatAncestorSlug(),
  118. Sitengine_Env::PARAM_ANCESTORID => $this->_controller->getEntity()->getAncestorId()
  119. );
  120. $route = $this->_controller->getFrontController()->getRouter()->getRoute(Sitengine_Blog_Backend_Front::ROUTE_BLOGS_POSTS_COMMENTS_NEW);
  121. $uriInsert = $this->_controller->getRequest()->getBasePath().'/'.$route->assemble($args, true);
  122. $this->setSection(
  123. 'ACTIONS',
  124. array(
  125. array(
  126. 'uri' => $uriIndex,
  127. 'label' => $this->_controller->getTranslate()->translate('labelsActionsSectionIndex')
  128. ),
  129. array(
  130. 'uri' => $uriInsert,
  131. 'label' => $this->_controller->getTranslate()->translate('labelsActionsSectionInsert')
  132. )
  133. )
  134. );
  135. return $this;
  136. }
  137. catch (Exception $exception) {
  138. require_once 'Sitengine/Blog/Backend/Blogs/Posts/Comments/Exception.php';
  139. throw new Sitengine_Blog_Backend_Blogs_Posts_Comments_Exception('build page error', $exception);
  140. }
  141. }
  142. protected function _makeBreadcrumbsData()
  143. {
  144. $data = array();
  145. $breadcrumbs = $this->_controller->getEntity()->getBreadcrumbs();
  146. $blogSlug = $this->_controller->getFrontController()->getBlogPackage()->getBlogSlug();
  147. if($blogSlug === null)
  148. {
  149. $table = $this->_controller->getFrontController()->getBlogPackage()->getBlogsTable();
  150. $table->setTranscript($this->_controller->getPreferences()->getTranscript());
  151. $blog = $table->complementRow($breadcrumbs['blog']);
  152. $args = array(
  153. Sitengine_Env::PARAM_ID => $this->_controller->getEntity()->getGreatAncestorSlug()
  154. );
  155. $route = $this->_controller->getFrontController()->getRouter()->getRoute(Sitengine_Blog_Backend_Front::ROUTE_BLOGS_SHARP);
  156. $uriUpdate = $this->_controller->getRequest()->getBasePath().'/'.$route->assemble($args, true);
  157. $args = array();
  158. $route = $this->_controller->getFrontController()->getRouter()->getRoute(Sitengine_Blog_Backend_Front::ROUTE_BLOGS);
  159. $uriIndex = $this->_controller->getRequest()->getBasePath().'/'.$route->assemble($args, true);
  160. $data['blog'] = array(
  161. 'name' => $this->_controller->getTranslate()->translate('breadcrumbsBlogEntity'),
  162. 'uriIndex' => $uriIndex,
  163. 'title' => $blog['title'],
  164. 'uriUpdate' => $uriUpdate
  165. );
  166. }
  167. $table = $this->_controller->getFrontController()->getBlogPackage()->getPostsTable();
  168. $table->setTranscript($this->_controller->getPreferences()->getTranscript());
  169. $post = $table->complementRow($breadcrumbs['post']);
  170. $args = array(
  171. Sitengine_Env::PARAM_ANCESTORID => $this->_controller->getEntity()->getGreatAncestorSlug(),
  172. Sitengine_Env::PARAM_ID => $post['id']
  173. );
  174. $route = $this->_controller->getFrontController()->getRouter()->getRoute(Sitengine_Blog_Backend_Front::ROUTE_BLOGS_POSTS_SHARP);
  175. $uriUpdate = $this->_controller->getRequest()->getBasePath().'/'.$route->assemble($args, true);
  176. $args = array(
  177. Sitengine_Env::PARAM_ANCESTORID => $this->_controller->getEntity()->getGreatAncestorSlug()
  178. );
  179. $route = $this->_controller->getFrontController()->getRouter()->getRoute(Sitengine_Blog_Backend_Front::ROUTE_BLOGS_POSTS);
  180. $uriIndex = $this->_controller->getRequest()->getBasePath().'/'.$route->assemble($args, true);
  181. if($post['type'] == Sitengine_Blog_Posts_Table::TYPE_PHOTO) {
  182. $title = $post['file1OriginalSource'];
  183. }
  184. else if($post['type'] == Sitengine_Blog_Posts_Table::TYPE_QUOTE) {
  185. $title = $post['teaser'];
  186. }
  187. else if($post['type'] == Sitengine_Blog_Posts_Table::TYPE_AUDIO) {
  188. $title = $post['file1OriginalSource'];
  189. }
  190. else if($post['type'] == Sitengine_Blog_Posts_Table::TYPE_VIDEO) {
  191. $title = $post['title'];
  192. }
  193. else {
  194. $title = $post['title'];
  195. }
  196. $data['post'] = array(
  197. 'name' => $this->_controller->getTranslate()->translate('breadcrumbsPostEntity'),
  198. 'uriIndex' => $uriIndex,
  199. 'title' => $title,
  200. 'uriUpdate' => $uriUpdate
  201. );
  202. $table = $this->_controller->getFrontController()->getBlogPackage()->getCommentsTable();
  203. $args = array(
  204. Sitengine_Env::PARAM_GREATANCESTORID => $this->_controller->getEntity()->getGreatAncestorSlug(),
  205. Sitengine_Env::PARAM_ANCESTORID => $post['id']
  206. );
  207. $route = $this->_controller->getFrontController()->getRouter()->getRoute(Sitengine_Blog_Backend_Front::ROUTE_BLOGS_POSTS_COMMENTS);
  208. $uriIndex = $this->_controller->getRequest()->getBasePath().'/'.$route->assemble($args, true);
  209. $type = $this->_controller->getEntity()->getAncestorType();
  210. $level = array();
  211. $level['name'] = $this->_controller->getTranslate()->translate('breadcrumbsCommentEntity');
  212. $level['uriIndex'] = $uriIndex;
  213. if($breadcrumbs['comment'])
  214. {
  215. $comment = $breadcrumbs['comment']->toArray();
  216. $args = array(
  217. Sitengine_Env::PARAM_GREATANCESTORID => $this->_controller->getEntity()->getGreatAncestorSlug(),
  218. Sitengine_Env::PARAM_ANCESTORID => $post['id'],
  219. Sitengine_Env::PARAM_ID => $comment['id']
  220. );
  221. $route = $this->_controller->getFrontController()->getRouter()->getRoute(Sitengine_Blog_Backend_Front::ROUTE_BLOGS_POSTS_COMMENTS_SHARP);
  222. $uriUpdate = $this->_controller->getRequest()->getBasePath().'/'.$route->assemble($args, true);
  223. $level['title'] = $comment['comment'];
  224. $level['uriUpdate'] = $uriUpdate;
  225. }
  226. $data['comment'] = $level;
  227. return $data;
  228. }
  229. }
  230. ?>