PageRenderTime 75ms CodeModel.GetById 45ms RepoModel.GetById 1ms app.codeStats 0ms

/tags/1_0_BETA/TimeIt/pnuser.php

https://github.com/planetenkiller/TimeIt-zk-12
PHP | 258 lines | 201 code | 37 blank | 20 comment | 41 complexity | ad3a36f3d032b1da1b89742563161d91 MD5 | raw file
  1. <?php
  2. Loader::includeOnce('modules/TimeIt/common.php');
  3. function TimeIt_user_main()
  4. {
  5. return pnModFunc('TimeIt', 'user', 'view');
  6. }
  7. function TimeIt_user_view()
  8. {
  9. // Security check
  10. if (!SecurityUtil::checkPermission( 'TimeIt::', "::", ACCESS_OVERVIEW)) {
  11. return LogUtil::registerPermissionError();
  12. }
  13. $GETYear = (int)FormUtil::getPassedValue('year', date("Y"), 'GETPOST');
  14. $GETMonth = (int)FormUtil::getPassedValue('month', date("n"), 'GETPOST');
  15. $GETWeek = (int)FormUtil::getPassedValue('week', date("W"), 'GETPOST');
  16. $GETDay = (int)FormUtil::getPassedValue('day', date("j"), 'GETPOST');
  17. $GETType = FormUtil::getPassedValue('viewType', pnModGetVar('TimeIt', 'defaultView'), 'GETPOST');
  18. $catFilter = null;
  19. $cats = array();
  20. $shareFilter = null;
  21. // $GETType is a possible security hole. we check the values.
  22. if($GETType != 'month' && $GETType != 'week' && $GETType != 'day')
  23. {
  24. $GETType = pnModGetVar('TimeIt', 'defaultView');
  25. }
  26. // valid Date?
  27. if(!pnModAPIFunc('TimeIt','user','checkDate',array('day'=>$GETDay,'month'=>$GETMonth,'year'=>$GETYear,'week'=>$GETWeek)))
  28. {
  29. LogUtil::registerError (_TIMEIT_INVALIDDATE);
  30. // invalid date, we use today as date
  31. $GETYear = (int)date("Y");
  32. $GETMonth = (int)date("n");
  33. $GETWeek = (int)date("W");
  34. $GETDay = (int)date("j");
  35. }
  36. if($GETType == 'week')
  37. { // update $GETMonth and $GETDay
  38. $timestamp = pnModAPIFunc('TimeIt', 'user', 'getFirstDayOfWeek', array('year'=>$GETYear,'weeknr'=>$GETWeek));
  39. $getDate = getDate($timestamp);
  40. $GETDay = $getDate['mday'];
  41. $GETMonth = $getDate['mon'];
  42. }
  43. // caching
  44. switch ($GETType) {
  45. case 'month':
  46. $pnRender->cache_id = 'month'.$GETYear.$GETMonth;
  47. break;
  48. case 'week':
  49. $pnRender->cache_id = 'week'.$GETYear.$GETWeek;
  50. break;
  51. case 'day':
  52. $pnRender->cache_id = 'day'.$GETYear.$GETMonth.$GETDay;
  53. break;
  54. }
  55. // create pnRender
  56. $pnRender = pnRender::getInstance('TimeIt');
  57. // check out if the contents are cached.
  58. if ($pnRender->is_cached(TimeIt_templateWithTheme($pnRender,'TimeIt_user_'.DataUtil::formatForOS($GETType).'.htm'))) {
  59. return $pnRender->fetch(TimeIt_templateWithTheme($pnRender,'TimeIt_user_'.DataUtil::formatForOS($GETType).'.htm'));
  60. }
  61. // categorie/share filter
  62. if(FormUtil::getPassedValue('submit', null, 'GETPOST') != null && FormUtil::getPassedValue('submit', null, 'GETPOST') == "filter")
  63. {
  64. $cats = FormUtil::getPassedValue('cat', null, 'GETPOST');
  65. $catFilter = array();
  66. foreach($cats AS $prop => $val)
  67. {
  68. if($val != 0)
  69. {
  70. $catFilter[$prop] = $val;
  71. }
  72. }
  73. if(empty($catFilter))
  74. {
  75. $catFilter = null;
  76. }
  77. if(FormUtil::getPassedValue('share', null, 'GETPOST') != null)
  78. {
  79. $shareFilter = FormUtil::getPassedValue('share', null, 'GETPOST');
  80. if($shareFilter != 1 && $shareFilter != 2 && $shareFilter != 3)
  81. {
  82. $shareFilter = null;
  83. }
  84. }
  85. }
  86. // get events
  87. $events = pnModAPIFunc('TimeIt', 'user', $GETType.'Events',
  88. array('year' => $GETYear,
  89. 'month' => $GETMonth,
  90. 'week' => $GETWeek,
  91. 'day' => $GETDay,
  92. 'catFilter' => $catFilter,
  93. 'shareFilter' => $shareFilter)
  94. );
  95. $pnRender->assign('events', $events);
  96. $pnRender->assign('viewType', $GETType);
  97. $pnRender->assign('selectedCats', $cats);
  98. $pnRender->assign('selectedShare', $shareFilter);
  99. // load the categories system
  100. if (!Loader::loadClass('CategoryRegistryUtil'))
  101. pn_exit ('Unable to load class [CategoryRegistryUtil] ...');
  102. $categories = CategoryRegistryUtil::getRegisteredModuleCategories ('TimeIt', 'TimeIt_events');
  103. $pnRender->assign('categories', $categories);
  104. $pnRender->assign('year', $GETYear);
  105. $pnRender->assign('month', $GETMonth);
  106. $pnRender->assign('week', $GETWeek);
  107. $pnRender->assign('dayAsNum', $GETDay);
  108. $pnRender->assign('dayNumNow', DateUtil::getDatetime(null, _DATEINPUT));
  109. $pnRender->assign('dayAsDate', DateUtil::getDatetime(mktime(0, 0, 0, $GETMonth, $GETDay, $GETYear), _DATEINPUT));
  110. $pnRender->assign('month_startDate', DateUtil::getDatetime(mktime(0, 0, 0, $GETMonth, 1, $GETYear), _DATEINPUT) );
  111. $pnRender->assign('month_endDate', DateUtil::getDatetime(mktime(0, 0, 0, $GETMonth, DateUtil::getDaysInMonth($GETMonth, $GETYear), $GETYear), _DATEINPUT) );
  112. $pnRender->assign('monthtoday', pnModGetVar('TimeIt', 'monthtoday'));
  113. $pnRender->assign('monthoff', pnModGetVar('TimeIt', 'monthoff'));
  114. $pnRender->assign('monthon', pnModGetVar('TimeIt', 'monthon'));
  115. // render template and return
  116. return $pnRender->fetch(TimeIt_templateWithTheme($pnRender,'TimeIt_user_'.DataUtil::formatForOS($GETType).'.htm'));
  117. }
  118. function TimeIt_user_event()
  119. {
  120. if (!($class = Loader::loadClassFromModule ('TimeIt', 'Event'))) {
  121. pn_exit (pnML('_UNABLETOLOADCLASS', array('s' => 'Event')));
  122. }
  123. $id = (int)FormUtil::getPassedValue('id', null, 'GET');
  124. // create pnRender
  125. $pnRender = pnRender::getInstance('TimeIt');
  126. // set cache id
  127. $pnRender->cache_id = $id;
  128. // check out if the contents are cached.
  129. if ($pnRender->is_cached(TimeIt_templateWithTheme($pnRender, 'TimeIt_user_event.htm'))) {
  130. return $pnRender->fetch(TimeIt_templateWithTheme($pnRender,'TimeIt_user_event.htm'));
  131. }
  132. // get event
  133. $object = new $class();
  134. $obj = $object->getEvent($id);
  135. if(empty($obj) || (isset($obj) && $obj['status'] == 0))
  136. {
  137. return LogUtil::registerError(pnML('_TIMEIT_IDNOTEXIST',array('s'=>$id)), 404);
  138. }
  139. // Security check
  140. if (!SecurityUtil::checkPermission( 'TimeIt::Event', $id."::", ACCESS_READ)) {
  141. return LogUtil::registerPermissionError();
  142. }
  143. // set the page title
  144. PageUtil::setVar('title', $obj['title']);
  145. $obj['cr_name'] = pnUserGetVar('uname', (int)$obj['cr_uid']);
  146. $obj['cr_datetime'] = DateUtil::getDatetime(strtotime($obj['cr_date']), _DATETIMEBRIEF);
  147. $obj['text'] = pnModCallHooks('item', 'transform', '', array($obj['text']));
  148. $obj['text'] = $obj['text'][0];
  149. $temp = explode(' ', $obj['repeatSpec']);
  150. $obj['repeat21'] = $temp[0];
  151. $obj['repeat22'] = $temp[1];
  152. if($obj['group'] == 'all')
  153. {
  154. $groupObj = array('name'=>'all'); // group irrelevant
  155. } else {
  156. $groupObj = UserUtil::getPNGroup((int)$obj['group']);
  157. }
  158. $obj['group_name'] = $groupObj['name'];
  159. $getDate = getDate(strtotime($obj['startDate']));
  160. // load the categories system
  161. if (!($class = Loader::loadClass('CategoryRegistryUtil')))
  162. {
  163. pn_exit (pnML('_UNABLETOLOADCLASS', array('s' => 'CategoryRegistryUtil')));
  164. }
  165. $categories = CategoryRegistryUtil::getRegisteredModuleCategories ('TimeIt', 'TimeIt_events');
  166. $pnRender->assign('categories', $categories);
  167. // data vor naviation
  168. $pnRender->assign('year', $getDate['year']);
  169. $pnRender->assign('month', $getDate['mon']);
  170. $pnRender->assign('week', date('W', $getDate[0]));
  171. $pnRender->assign('dayAsNum', $getDate['mday']);
  172. // data for event
  173. $pnRender->assign('event', $obj);
  174. $pnRender->assign('dayNames', explode(" ", _DAY_OF_WEEK_SHORT));
  175. $pnRender->assign('dayFrec', array('day' => _DAYS,
  176. 'week' => _WEEKS,
  177. 'month' => _MONTHS,
  178. 'year' => _YEARS));
  179. $pnRender->assign('frec', array(1 => 'First',
  180. 2 => 'Second',
  181. 3 => 'Third',
  182. 4 => 'Fourth',
  183. 5 => 'Last'));
  184. $pnRender->assign('dataIdToML', array('contactPerson' => _TIMEIT_CONTACTPERSON,
  185. 'email' => _EMAIL,
  186. 'phoneNr' => _TIMEIT_PHONE,
  187. 'website' => _TIMEIT_WEBSITE,
  188. 'city' => _TIMEIT_CITY,
  189. 'streat' => _TIMEIT_STREAT,
  190. 'houseNumber' => _TIMEIT_HOUSENUMBER,
  191. 'country' => _TIMEIT_COUNTRY,
  192. 'zip' => _TIMEIT_ZIP,
  193. 'fee' => _TIMEIT_FEE));
  194. return $pnRender->fetch(TimeIt_templateWithTheme($pnRender,'TimeIt_user_event.htm'));
  195. }
  196. function TimeIt_user_rss()
  197. {
  198. if (!($class = Loader::loadClassFromModule ('TimeIt', 'Event', true))) {
  199. pn_exit ("Unable to load class [Event] ...");
  200. }
  201. $pntable = pnDBGetTables();
  202. $cols = $pntable['TimeIt_events_column'];
  203. $class = new $class();
  204. $array = $class->get('', $cols['lu_date'].' DESC', -1, (int)pnModGetVar('TimeIt', 'rssatomitems'));
  205. $pnRender = pnRender::getInstance('TimeIt');
  206. $pnRender->assign('events', $array);
  207. return $pnRender->fetch('TimeIt_user_rss.htm');
  208. }
  209. function TimeIt_user_atom()
  210. {
  211. if (!($class = Loader::loadClassFromModule ('TimeIt', 'Event', true))) {
  212. pn_exit ("Unable to load class [Event] ...");
  213. }
  214. $pntable = pnDBGetTables();
  215. $cols = $pntable['TimeIt_events_column'];
  216. $class = new $class();
  217. $array = $class->get('', $cols['lu_date'].' DESC', -1, (int)pnModGetVar('TimeIt', 'rssatomitems'));
  218. $pnRender = pnRender::getInstance('TimeIt');
  219. $pnRender->assign('events', $array);
  220. return $pnRender->fetch('TimeIt_user_atom.htm');
  221. }