/administrator/components/com_banners/helpers/banners.php

https://bitbucket.org/pastor399/newcastleunifc · PHP · 218 lines · 153 code · 27 blank · 38 comment · 10 complexity · 3b2137dd412cc46420ee99341379556e MD5 · raw file

  1. <?php
  2. /**
  3. * @package Joomla.Administrator
  4. * @subpackage com_banners
  5. *
  6. * @copyright Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
  7. * @license GNU General Public License version 2 or later; see LICENSE.txt
  8. */
  9. defined('_JEXEC') or die;
  10. /**
  11. * Banners component helper.
  12. *
  13. * @package Joomla.Administrator
  14. * @subpackage com_banners
  15. * @since 1.6
  16. */
  17. class BannersHelper
  18. {
  19. /**
  20. * Configure the Linkbar.
  21. *
  22. * @param string The name of the active view.
  23. *
  24. * @return void
  25. * @since 1.6
  26. */
  27. public static function addSubmenu($vName)
  28. {
  29. JHtmlSidebar::addEntry(
  30. JText::_('COM_BANNERS_SUBMENU_BANNERS'),
  31. 'index.php?option=com_banners&view=banners',
  32. $vName == 'banners'
  33. );
  34. JHtmlSidebar::addEntry(
  35. JText::_('COM_BANNERS_SUBMENU_CATEGORIES'),
  36. 'index.php?option=com_categories&extension=com_banners',
  37. $vName == 'categories'
  38. );
  39. if ($vName == 'categories')
  40. {
  41. JToolbarHelper::title(
  42. JText::sprintf('COM_CATEGORIES_CATEGORIES_TITLE', JText::_('com_banners')),
  43. 'banners-categories');
  44. }
  45. JHtmlSidebar::addEntry(
  46. JText::_('COM_BANNERS_SUBMENU_CLIENTS'),
  47. 'index.php?option=com_banners&view=clients',
  48. $vName == 'clients'
  49. );
  50. JHtmlSidebar::addEntry(
  51. JText::_('COM_BANNERS_SUBMENU_TRACKS'),
  52. 'index.php?option=com_banners&view=tracks',
  53. $vName == 'tracks'
  54. );
  55. }
  56. /**
  57. * Gets a list of the actions that can be performed.
  58. *
  59. * @param integer The category ID.
  60. *
  61. * @return JObject
  62. * @since 1.6
  63. */
  64. public static function getActions($categoryId = 0)
  65. {
  66. $user = JFactory::getUser();
  67. $result = new JObject;
  68. if (empty($categoryId))
  69. {
  70. $assetName = 'com_banners';
  71. $level = 'component';
  72. }
  73. else
  74. {
  75. $assetName = 'com_banners.category.'.(int) $categoryId;
  76. $level = 'category';
  77. }
  78. $actions = JAccess::getActions('com_banners', $level);
  79. foreach ($actions as $action)
  80. {
  81. $result->set($action->name, $user->authorise($action->name, $assetName));
  82. }
  83. return $result;
  84. }
  85. /**
  86. * @return boolean
  87. * @since 1.6
  88. */
  89. public static function updateReset()
  90. {
  91. $user = JFactory::getUser();
  92. $db = JFactory::getDbo();
  93. $nullDate = $db->getNullDate();
  94. $now = JFactory::getDate();
  95. $query = $db->getQuery(true)
  96. ->select('*')
  97. ->from('#__banners')
  98. ->where($db->quote($now) . ' >= ' . $db->quote('reset'))
  99. ->where($db->quoteName('reset') . ' != ' . $db->quote($nullDate) . ' AND ' . $db->quoteName('reset') . '!=NULL')
  100. ->where('(' . $db->quoteName('checked_out') . ' = 0 OR ' . $db->quoteName('checked_out') . ' = ' . (int) $db->quote($user->id) . ')');
  101. $db->setQuery($query);
  102. try
  103. {
  104. $rows = $db->loadObjectList();
  105. }
  106. catch (RuntimeException $e)
  107. {
  108. JError::raiseWarning(500, $e->getMessage());
  109. return false;
  110. }
  111. JTable::addIncludePath(JPATH_COMPONENT_ADMINISTRATOR . '/tables');
  112. foreach ($rows as $row)
  113. {
  114. $purchase_type = $row->purchase_type;
  115. if ($purchase_type < 0 && $row->cid)
  116. {
  117. $client = JTable::getInstance('Client', 'BannersTable');
  118. $client->load($row->cid);
  119. $purchase_type = $client->purchase_type;
  120. }
  121. if ($purchase_type < 0)
  122. {
  123. $params = JComponentHelper::getParams('com_banners');
  124. $purchase_type = $params->get('purchase_type');
  125. }
  126. switch($purchase_type)
  127. {
  128. case 1:
  129. $reset = $nullDate;
  130. break;
  131. case 2:
  132. $date = JFactory::getDate('+1 year '.date('Y-m-d', strtotime('now')));
  133. $reset = $db->quote($date->toSql());
  134. break;
  135. case 3:
  136. $date = JFactory::getDate('+1 month '.date('Y-m-d', strtotime('now')));
  137. $reset = $db->quote($date->toSql());
  138. break;
  139. case 4:
  140. $date = JFactory::getDate('+7 day '.date('Y-m-d', strtotime('now')));
  141. $reset = $db->quote($date->toSql());
  142. break;
  143. case 5:
  144. $date = JFactory::getDate('+1 day '.date('Y-m-d', strtotime('now')));
  145. $reset = $db->quote($date->toSql());
  146. break;
  147. }
  148. // Update the row ordering field.
  149. $query->clear()
  150. ->update($db->quoteName('#__banners'))
  151. ->set($db->quoteName('reset') . ' = ' . $db->quote($reset))
  152. ->set($db->quoteName('impmade') . ' = ' . $db->quote(0))
  153. ->set($db->quoteName('clicks') . ' = ' . $db->quote(0))
  154. ->where($db->quoteName('id') . ' = ' . $db->quote($row->id));
  155. $db->setQuery($query);
  156. try
  157. {
  158. $db->execute();
  159. }
  160. catch (RuntimeException $e)
  161. {
  162. JError::raiseWarning(500, $db->getMessage());
  163. return false;
  164. }
  165. }
  166. return true;
  167. }
  168. public static function getClientOptions()
  169. {
  170. $options = array();
  171. $db = JFactory::getDbo();
  172. $query = $db->getQuery(true)
  173. ->select('id As value, name As text')
  174. ->from('#__banner_clients AS a')
  175. ->order('a.name');
  176. // Get the options.
  177. $db->setQuery($query);
  178. try
  179. {
  180. $options = $db->loadObjectList();
  181. }
  182. catch (RuntimeException $e)
  183. {
  184. JError::raiseWarning(500, $e->getMessage());
  185. }
  186. // Merge any additional options in the XML definition.
  187. //$options = array_merge(parent::getOptions(), $options);
  188. array_unshift($options, JHtml::_('select.option', '0', JText::_('COM_BANNERS_NO_CLIENT')));
  189. return $options;
  190. }
  191. }