PageRenderTime 46ms CodeModel.GetById 21ms RepoModel.GetById 0ms app.codeStats 1ms

/manager/includes/inc.tplparse_feeds.php

http://punchcms.googlecode.com/
PHP | 257 lines | 203 code | 39 blank | 15 comment | 37 complexity | 1c81418495187a20634c87882690a349 MD5 | raw file
Possible License(s): LGPL-2.1, MPL-2.0-no-copyleft-exception
  1. <?php
  2. function parseFeeds($intFeedId, $strCommand) {
  3. global $_PATHS,
  4. $_CLEAN_POST,
  5. $_CONF,
  6. $objLang,
  7. $objLiveUser;
  8. $objTpl = new HTML_Template_IT($_PATHS['templates']);
  9. $objTpl->loadTemplatefile("feed.tpl.htm");
  10. $blnError = false;
  11. switch ($strCommand) {
  12. case CMD_LIST:
  13. case CMD_ADD:
  14. case CMD_EDIT:
  15. //*** Post the profile form if submitted.
  16. if (count($_CLEAN_POST) > 0 && !empty($_CLEAN_POST['dispatch']) && $_CLEAN_POST['dispatch'] == "editFeed") {
  17. //*** The element form has been posted.
  18. //*** Check sanitized input.
  19. if (is_null($_CLEAN_POST["frm_active"])) {
  20. $blnError = true;
  21. }
  22. if (is_null($_CLEAN_POST["frm_name"])) {
  23. $blnError = true;
  24. }
  25. if (is_null($_CLEAN_POST["frm_feed"])) {
  26. $blnError = true;
  27. }
  28. if (is_null($_CLEAN_POST["frm_basepath"])) {
  29. $blnError = true;
  30. }
  31. if (is_null($_CLEAN_POST["frm_refresh"])) {
  32. $blnError = true;
  33. }
  34. if (is_null($_CLEAN_POST["dispatch"])) {
  35. $blnError = true;
  36. }
  37. if ($blnError === true) {
  38. //*** Display global error.
  39. $objTpl->setVariable("FORM_ACTIVE_VALUE", ($_POST["frm_active"] == "on") ? "checked=\"checked\"" : "");
  40. $objTpl->setVariable("FORM_NAME_VALUE", $_POST["frm_name"]);
  41. $objTpl->setVariable("FORM_FEED_VALUE", $_POST["frm_feed"]);
  42. $objTpl->setVariable("FORM_BASEPATH_VALUE", $_POST["frm_basepath"]);
  43. $objTpl->setVariable("FORM_REFRESH_VALUE", $_POST["frm_refresh"]);
  44. $objTpl->setVariable("ERROR_FEED_MAIN", $objLang->get("main", "formerror"));
  45. } else {
  46. //*** Input is valid. Save the feed.
  47. if ($strCommand == CMD_EDIT) {
  48. $objFeed = Feed::selectByPK($intFeedId);
  49. } else {
  50. $objFeed = new Feed();
  51. }
  52. $objFeed->setAccountId($_CONF['app']['account']->getId());
  53. $objFeed->setActive(($_POST["frm_active"] == "on") ? 1 : 0);
  54. $objFeed->setName($_CLEAN_POST["frm_name"]);
  55. $objFeed->setFeed($_CLEAN_POST["frm_feed"]);
  56. $objFeed->setBasepath($_CLEAN_POST["frm_basepath"]);
  57. $objFeed->setRefresh($_CLEAN_POST["frm_refresh"]);
  58. $objFeed->setLastUpdate(Date::toMysql());
  59. $objFeed->save();
  60. //*** Cache feed.
  61. $objFeed->cache();
  62. header("Location: " . Request::getURI() . "/?cid=" . NAV_PCMS_FEEDS);
  63. exit();
  64. }
  65. }
  66. //*** Initiate child element loop.
  67. $objFeeds = Feed::selectSorted();
  68. $listCount = 0;
  69. $intPosition = request("pos");
  70. $intPosition = (!empty($intPosition) && is_numeric($intPosition)) ? $intPosition : 0;
  71. $intPosition = floor($intPosition / $_SESSION["listCount"]) * $_SESSION["listCount"];
  72. $objFeeds->seek($intPosition);
  73. foreach ($objFeeds as $objFeed) {
  74. $objTpl->setCurrentBlock("multiview-item");
  75. $objTpl->setVariable("MULTIITEM_VALUE", $objFeed->getId());
  76. $objTpl->setVariable("BUTTON_REMOVE_HREF", "javascript:Feed.remove({$objFeed->getId()});");
  77. $objTpl->setVariable("BUTTON_REMOVE", $objLang->get("delete", "button"));
  78. $objTpl->setVariable("MULTIITEM_HREF", "?cid=" . NAV_PCMS_FEEDS . "&amp;eid={$objFeed->getId()}&amp;cmd=" . CMD_EDIT);
  79. $objTpl->setVariable("MULTIITEM_TYPE_CLASS", "feed");
  80. $objTpl->setVariable("MULTIITEM_NAME", $objFeed->getName());
  81. $objTpl->setVariable("MULTIITEM_POINTS_TO", $objLang->get("pointsTo", "label"));
  82. $objTpl->setVariable("MULTIITEM_FEED", $objFeed->getFeed());
  83. $objTpl->setVariable("MULTIITEM_FEED_HREF", $objFeed->getFeed());
  84. if (!$objFeed->getActive()) $objTpl->setVariable("MULTIITEM_ACTIVE", " class=\"inactive\"");
  85. $objTpl->parseCurrentBlock();
  86. $listCount++;
  87. if ($listCount >= $_SESSION["listCount"]) break;
  88. }
  89. //*** Render page navigation.
  90. $pageCount = ceil($objFeeds->count() / $_SESSION["listCount"]);
  91. if ($pageCount > 0) {
  92. $currentPage = ceil(($intPosition + 1) / $_SESSION["listCount"]);
  93. $previousPos = (($intPosition - $_SESSION["listCount"]) > 0) ? ($intPosition - $_SESSION["listCount"]) : 0;
  94. $nextPos = (($intPosition + $_SESSION["listCount"]) < $objFeeds->count()) ? ($intPosition + $_SESSION["listCount"]) : $intPosition;
  95. $objTpl->setVariable("PAGENAV_PAGE", sprintf($objLang->get("pageNavigation", "label"), $currentPage, $pageCount));
  96. $objTpl->setVariable("PAGENAV_PREVIOUS", $objLang->get("previous", "button"));
  97. $objTpl->setVariable("PAGENAV_PREVIOUS_HREF", "?cid=" . NAV_PCMS_FEEDS . "&amp;pos=$previousPos");
  98. $objTpl->setVariable("PAGENAV_NEXT", $objLang->get("next", "button"));
  99. $objTpl->setVariable("PAGENAV_NEXT_HREF", "?cid=" . NAV_PCMS_FEEDS . "&amp;pos=$nextPos");
  100. //*** Top page navigation.
  101. for ($intCount = 0; $intCount < $pageCount; $intCount++) {
  102. $objTpl->setCurrentBlock("multiview-pagenavitem-top");
  103. $position = $intCount * $_SESSION["listCount"];
  104. if ($intCount != $intPosition / $_SESSION["listCount"]) {
  105. $objTpl->setVariable("PAGENAV_HREF", "href=\"?cid=" . NAV_PCMS_FEEDS . "&amp;pos=$position\"");
  106. }
  107. $objTpl->setVariable("PAGENAV_VALUE", $intCount + 1);
  108. $objTpl->parseCurrentBlock();
  109. }
  110. //*** Bottom page navigation.
  111. for ($intCount = 0; $intCount < $pageCount; $intCount++) {
  112. $objTpl->setCurrentBlock("multiview-pagenavitem-bottom");
  113. $position = $intCount * $_SESSION["listCount"];
  114. if ($intCount != $intPosition / $_SESSION["listCount"]) {
  115. $objTpl->setVariable("PAGENAV_HREF", "href=\"?cid=" . NAV_PCMS_FEEDS . "&amp;pos=$position\"");
  116. }
  117. $objTpl->setVariable("PAGENAV_VALUE", $intCount + 1);
  118. $objTpl->parseCurrentBlock();
  119. }
  120. }
  121. //*** Render list action pulldown.
  122. $arrActions[$objLang->get("choose", "button")] = 0;
  123. $arrActions[$objLang->get("delete", "button")] = "delete";
  124. foreach ($arrActions as $key => $value) {
  125. $objTpl->setCurrentBlock("multiview-listactionitem");
  126. $objTpl->setVariable("LIST_ACTION_TEXT", $key);
  127. $objTpl->setVariable("LIST_ACTION_VALUE", $value);
  128. $objTpl->parseCurrentBlock();
  129. }
  130. $objTpl->setCurrentBlock("multiview");
  131. $objTpl->setVariable("LIST_LENGTH_HREF_10", "href=\"?list=10&amp;cid=" . NAV_PCMS_FEEDS . "\"");
  132. $objTpl->setVariable("LIST_LENGTH_HREF_25", "href=\"?list=25&amp;cid=" . NAV_PCMS_FEEDS . "\"");
  133. $objTpl->setVariable("LIST_LENGTH_HREF_100", "href=\"?list=100&amp;cid=" . NAV_PCMS_FEEDS . "\"");
  134. switch ($_SESSION["listCount"]) {
  135. case 10:
  136. $objTpl->setVariable("LIST_LENGTH_HREF_10", "");
  137. break;
  138. case 25:
  139. $objTpl->setVariable("LIST_LENGTH_HREF_25", "");
  140. break;
  141. case 100:
  142. $objTpl->setVariable("LIST_LENGTH_HREF_100", "");
  143. break;
  144. }
  145. $objTpl->setVariable("LIST_LENGTH_HREF", "&amp;cid=" . NAV_PCMS_FEEDS);
  146. $objTpl->setVariable("LIST_WITH_SELECTED", $objLang->get("withSelected", "label"));
  147. $objTpl->setVariable("LIST_ACTION_ONCHANGE", "Feed.multiDo(this, this[this.selectedIndex].value)");
  148. $objTpl->setVariable("LIST_ITEMS_PER_PAGE", $objLang->get("itemsPerPage", "label"));
  149. $objTpl->setVariable("BUTTON_LIST_SELECT", $objLang->get("selectAll", "button"));
  150. $objTpl->setVariable("BUTTON_LIST_SELECT_HREF", "javascript:Feed.multiSelect()");
  151. $objTpl->parseCurrentBlock();
  152. $objTpl->setVariable("FEEDS", $objLang->get("feeds", "label"));
  153. $objTpl->setVariable("BUTTON_ADD", $objLang->get("feedAdd", "button"));
  154. //*** Form variables.
  155. if ($strCommand == CMD_EDIT) {
  156. $objFeed = Feed::selectByPK($intFeedId);
  157. $objTpl->setVariable("FORM_ACTIVE_VALUE", ($objFeed->getActive()) ? "checked=\"checked\"" : "");
  158. $objTpl->setVariable("FORM_NAME_VALUE", $objFeed->getName());
  159. $objTpl->setVariable("FORM_FEED_VALUE", $objFeed->getFeed());
  160. $objTpl->setVariable("FORM_BASEPATH_VALUE", $objFeed->getBasepath());
  161. $objTpl->setVariable("FORM_REFRESH_VALUE", $objFeed->getRefresh());
  162. $objTpl->setVariable("FRM_HEADER", $objLang->get("editFeed", "form"));
  163. $objTpl->setVariable("FRM_STYLE", "");
  164. $objTpl->setVariable("CMD", CMD_EDIT);
  165. } else {
  166. $objTpl->setVariable("FORM_ACTIVE_VALUE", "checked=\"checked\"");
  167. $objTpl->setVariable("FRM_HEADER", $objLang->get("addFeed", "form"));
  168. if (!$blnError) $objTpl->setVariable("FRM_STYLE", " style=\"display:none\"");
  169. $objTpl->setVariable("CMD", CMD_ADD);
  170. $objElements = Elements::getFromParent(0);
  171. foreach ($objElements as $objElement) {
  172. $objTpl->setCurrentBlock("elements.item");
  173. $objTpl->setVariable("VALUE", $objElement->getId());
  174. $objTpl->setVariable("LABEL", $objElement->getName());
  175. $objTpl->parseCurrentBlock();
  176. }
  177. }
  178. $objTpl->setVariable("FRM_LABEL_ACTIVE", $objLang->get("active", "form"));
  179. $objTpl->setVariable("FRM_LABEL_FEED", $objLang->get("feed", "form"));
  180. $objTpl->setVariable("FRM_DESCR_FEED", $objLang->get("feed", "tip"));
  181. $objTpl->setVariable("FRM_LABEL_BASEPATH", $objLang->get("basepath", "form"));
  182. $objTpl->setVariable("FRM_DESCR_BASEPATH", $objLang->get("basepath", "tip"));
  183. $objTpl->setVariable("FRM_LABEL_NAME", $objLang->get("name", "form"));
  184. $objTpl->setVariable("FRM_DESCR_REFRESH", $objLang->get("refresh", "tip"));
  185. $objTpl->setVariable("FRM_LABEL_REFRESH", $objLang->get("refresh", "form"));
  186. $objTpl->setVariable("FRM_LABEL_SAVE", $objLang->get("save", "button"));
  187. $objTpl->setVariable("CID", NAV_PCMS_FEEDS);
  188. $objTpl->setVariable("EID", $intFeedId);
  189. $objTpl->parseCurrentBlock();
  190. $strReturn = $objTpl->get();
  191. break;
  192. case CMD_REMOVE:
  193. if (strpos($intFeedId, ',') !== false) {
  194. //*** Multiple elements submitted.
  195. $arrFeeds = explode(',', $intFeedId);
  196. $objFeeds = Feed::selectByPK($arrFeeds);
  197. foreach ($objFeeds as $objFeed) {
  198. $objFeed->delete();
  199. }
  200. } else {
  201. //*** Single element submitted.
  202. $objFeed = Feed::selectByPK($intFeedId);
  203. $objFeed->delete();
  204. }
  205. //*** Redirect the page.
  206. $strReturnTo = request('returnTo');
  207. if (empty($strReturnTo)) {
  208. header("Location: " . Request::getUri() . "/?cid=" . request("cid") . "&cmd=" . CMD_LIST);
  209. exit();
  210. } else {
  211. header("Location: " . Request::getURI() . $strReturnTo);
  212. exit();
  213. }
  214. break;
  215. }
  216. return $strReturn;
  217. }
  218. ?>