[ Index ] |
PHP Cross Reference of Joomla 4.2.2 documentation |
[Summary view] [Print] [Text view]
1 <?php 2 3 /** 4 * @package Joomla.Administrator 5 * @subpackage com_banners 6 * 7 * @copyright (C) 2017 Open Source Matters, Inc. <https://www.joomla.org> 8 * @license GNU General Public License version 2 or later; see LICENSE.txt 9 */ 10 11 namespace Joomla\Component\Banners\Administrator\Helper; 12 13 use Joomla\CMS\Component\ComponentHelper; 14 use Joomla\CMS\Factory; 15 use Joomla\CMS\Helper\ContentHelper; 16 use Joomla\CMS\HTML\HTMLHelper; 17 use Joomla\CMS\Language\Text; 18 use Joomla\CMS\Table\Table; 19 use Joomla\Database\ParameterType; 20 21 // phpcs:disable PSR1.Files.SideEffects 22 \defined('_JEXEC') or die; 23 // phpcs:enable PSR1.Files.SideEffects 24 25 /** 26 * Banners component helper. 27 * 28 * @since 1.6 29 */ 30 class BannersHelper extends ContentHelper 31 { 32 /** 33 * Update / reset the banners 34 * 35 * @return boolean 36 * 37 * @since 1.6 38 */ 39 public static function updateReset() 40 { 41 $db = Factory::getDbo(); 42 $date = Factory::getDate(); 43 $app = Factory::getApplication(); 44 $user = $app->getIdentity(); 45 46 $query = $db->getQuery(true) 47 ->select('*') 48 ->from($db->quoteName('#__banners')) 49 ->where( 50 [ 51 $db->quoteName('reset') . ' <= :date', 52 $db->quoteName('reset') . ' IS NOT NULL', 53 ] 54 ) 55 ->bind(':date', $date) 56 ->extendWhere( 57 'AND', 58 [ 59 $db->quoteName('checked_out') . ' IS NULL', 60 $db->quoteName('checked_out') . ' = :userId', 61 ], 62 'OR' 63 ) 64 ->bind(':userId', $user->id, ParameterType::INTEGER); 65 66 $db->setQuery($query); 67 68 try { 69 $rows = $db->loadObjectList(); 70 } catch (\RuntimeException $e) { 71 $app->enqueueMessage($e->getMessage(), 'error'); 72 73 return false; 74 } 75 76 foreach ($rows as $row) { 77 $purchaseType = $row->purchase_type; 78 79 if ($purchaseType < 0 && $row->cid) { 80 /** @var \Joomla\Component\Banners\Administrator\Table\ClientTable $client */ 81 $client = Table::getInstance('ClientTable', '\\Joomla\\Component\\Banners\\Administrator\\Table\\'); 82 $client->load($row->cid); 83 $purchaseType = $client->purchase_type; 84 } 85 86 if ($purchaseType < 0) { 87 $params = ComponentHelper::getParams('com_banners'); 88 $purchaseType = $params->get('purchase_type'); 89 } 90 91 switch ($purchaseType) { 92 case 1: 93 $reset = null; 94 break; 95 case 2: 96 $date = Factory::getDate('+1 year ' . date('Y-m-d')); 97 $reset = $date->toSql(); 98 break; 99 case 3: 100 $date = Factory::getDate('+1 month ' . date('Y-m-d')); 101 $reset = $date->toSql(); 102 break; 103 case 4: 104 $date = Factory::getDate('+7 day ' . date('Y-m-d')); 105 $reset = $date->toSql(); 106 break; 107 case 5: 108 $date = Factory::getDate('+1 day ' . date('Y-m-d')); 109 $reset = $date->toSql(); 110 break; 111 } 112 113 // Update the row ordering field. 114 $query = $db->getQuery(true) 115 ->update($db->quoteName('#__banners')) 116 ->set( 117 [ 118 $db->quoteName('reset') . ' = :reset', 119 $db->quoteName('impmade') . ' = 0', 120 $db->quoteName('clicks') . ' = 0', 121 ] 122 ) 123 ->where($db->quoteName('id') . ' = :id') 124 ->bind(':reset', $reset, $reset === null ? ParameterType::NULL : ParameterType::STRING) 125 ->bind(':id', $row->id, ParameterType::INTEGER); 126 127 $db->setQuery($query); 128 129 try { 130 $db->execute(); 131 } catch (\RuntimeException $e) { 132 $app->enqueueMessage($e->getMessage(), 'error'); 133 134 return false; 135 } 136 } 137 138 return true; 139 } 140 141 /** 142 * Get client list in text/value format for a select field 143 * 144 * @return array 145 */ 146 public static function getClientOptions() 147 { 148 $options = array(); 149 150 $db = Factory::getDbo(); 151 $query = $db->getQuery(true) 152 ->select( 153 [ 154 $db->quoteName('id', 'value'), 155 $db->quoteName('name', 'text'), 156 ] 157 ) 158 ->from($db->quoteName('#__banner_clients', 'a')) 159 ->where($db->quoteName('a.state') . ' = 1') 160 ->order($db->quoteName('a.name')); 161 162 // Get the options. 163 $db->setQuery($query); 164 165 try { 166 $options = $db->loadObjectList(); 167 } catch (\RuntimeException $e) { 168 Factory::getApplication()->enqueueMessage($e->getMessage(), 'error'); 169 } 170 171 array_unshift($options, HTMLHelper::_('select.option', '0', Text::_('COM_BANNERS_NO_CLIENT'))); 172 173 return $options; 174 } 175 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Wed Sep 7 05:41:13 2022 | Chilli.vc Blog - For Webmaster,Blog-Writer,System Admin and Domainer |