PageRenderTime 53ms CodeModel.GetById 23ms RepoModel.GetById 0ms app.codeStats 0ms

/plugins/system/nnframework/helpers/assignments.php

https://bitbucket.org/organicdevelopment/joomla-2.5
PHP | 693 lines | 618 code | 38 blank | 37 comment | 148 complexity | 479297755527d75595b05b6bf25bbc40 MD5 | raw file
Possible License(s): LGPL-3.0, GPL-2.0, MIT, BSD-3-Clause, LGPL-2.1
  1. <?php
  2. /**
  3. * NoNumber Framework Helper File: Assignments
  4. *
  5. * @package NoNumber Framework
  6. * @version 12.8.2
  7. *
  8. * @author Peter van Westen <peter@nonumber.nl>
  9. * @link http://www.nonumber.nl
  10. * @copyright Copyright Š 2012 NoNumber All Rights Reserved
  11. * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
  12. */
  13. // No direct access
  14. defined('_JEXEC') or die;
  15. /**
  16. * Assignments
  17. * $assignment = no / include / exclude / none
  18. */
  19. class NNFrameworkAssignmentsHelper
  20. {
  21. var $_version = '12.8.2';
  22. var $_db = null;
  23. var $_params = null;
  24. var $_types = array();
  25. var $_passes = array();
  26. function __construct()
  27. {
  28. $this->_db = JFactory::getDBO();
  29. $config = JFactory::getConfig();
  30. $this->_date = JFactory::getDate();
  31. $this->_date->setTimeZone(new DateTimeZone($config->getValue('config.offset')));
  32. $this->_types = array(
  33. 'MenuItem',
  34. 'HomePage',
  35. 'Cats',
  36. 'Articles',
  37. 'Categories_FC',
  38. 'Tags_FC',
  39. 'Types_FC',
  40. 'Items_FC',
  41. 'Categories_K2',
  42. 'Tags_K2',
  43. 'Items_K2',
  44. 'Categories_MR',
  45. 'Categories_ZOO',
  46. 'Components',
  47. 'URL',
  48. 'OS',
  49. 'Browsers',
  50. 'Date',
  51. 'Seasons',
  52. 'Months',
  53. 'Days',
  54. 'Time',
  55. 'UserGroupLevels',
  56. 'Users',
  57. 'Languages',
  58. 'Templates',
  59. 'Categories_VirtueMart',
  60. 'Items_VirtueMart',
  61. 'PHP'
  62. );
  63. $this->_classes = array();
  64. }
  65. function getRequestParams()
  66. {
  67. $params = new stdClass();
  68. $params->option = JRequest::getCmd('option');
  69. $params->view = JRequest::getCmd('view');
  70. $params->task = JRequest::getCmd('task');
  71. $params->id = JRequest::getInt('id');
  72. $params->Itemid = JRequest::getInt('Itemid');
  73. switch ($params->option) {
  74. case 'com_categories':
  75. $params->option = 'com_content';
  76. $params->view = 'category';
  77. break;
  78. case 'com_sections':
  79. $params->option = 'com_content';
  80. $params->view = 'section';
  81. break;
  82. case 'com_mr':
  83. $params->item_id = JRequest::getInt('article');
  84. $params->category_id = JRequest::getInt('category_id');
  85. $params->id = ($params->item_id) ? $params->item_id : $params->category_id;
  86. break;
  87. case 'com_zoo':
  88. $params->item_id = JRequest::getInt('item_id');
  89. $params->category_id = JRequest::getInt('category_id');
  90. $params->id = ($params->item_id) ? $params->item_id : $params->category_id;
  91. break;
  92. case 'com_virtuemart':
  93. $params->item_id = JRequest::getInt('virtuemart_product_id');
  94. $params->category_id = JRequest::getInt('virtuemart_category_id');
  95. $params->id = ($params->item_id) ? $params->item_id : $params->category_id;
  96. break;
  97. }
  98. if (!$params->id) {
  99. $cid = JRequest::getVar('cid', array(0), 'method', 'array');
  100. $cid = array((int) $cid['0']);
  101. $params->id = $cid['0'];
  102. }
  103. return $params;
  104. }
  105. function initParams(&$params, $type = '')
  106. {
  107. if (!isset($params->assignment)) {
  108. $params->assignment = 'all';
  109. } else {
  110. $this->getAssignmentState($params->assignment);
  111. }
  112. if (!isset($params->selection)) {
  113. $params->selection = array();
  114. }
  115. if (!isset($params->params)) {
  116. $params->params = null;
  117. }
  118. $this->maintype = $type;
  119. switch ($type) {
  120. case 'MenuItem':
  121. $this->maintype = 'Menu';
  122. break;
  123. case 'Cats':
  124. case 'Articles':
  125. $this->maintype = 'Content';
  126. break;
  127. case 'Categories_FC':
  128. case 'Tags_FC':
  129. case 'Types_FC':
  130. case 'Items_FC':
  131. $this->maintype = 'FlexiContent';
  132. break;
  133. case 'Categories_K2':
  134. case 'Tags_K2':
  135. case 'Items_K2':
  136. $this->maintype = 'K2';
  137. break;
  138. case 'Categories_MR':
  139. $this->maintype = 'Resources';
  140. break;
  141. case 'Categories_ZOO':
  142. $this->maintype = 'ZOO';
  143. break;
  144. case 'OS':
  145. $this->maintype = 'Browsers';
  146. break;
  147. case 'Date':
  148. case 'Seasons':
  149. case 'Months':
  150. case 'Days':
  151. case 'Time':
  152. $this->maintype = 'DateTime';
  153. break;
  154. case 'UserGroupLevels':
  155. case 'Users':
  156. $this->maintype = 'Users';
  157. break;
  158. case 'Categories_VirtueMart':
  159. case 'Items_VirtueMart':
  160. $this->maintype = 'VirtueMart';
  161. break;
  162. }
  163. switch ($type) {
  164. case 'MenuItem':
  165. if (!isset($params->params->inc_children)) {
  166. $params->params->inc_children = 0;
  167. }
  168. if (!isset($params->params->inc_noItemid)) {
  169. $params->params->inc_noItemid = 0;
  170. }
  171. break;
  172. case 'Articles':
  173. if (!isset($params->params->keywords)) {
  174. $params->params->keywords = '';
  175. }
  176. break;
  177. case 'SecsCats':
  178. case 'Cats':
  179. if (!isset($params->params->inc_children)) {
  180. $params->params->inc_children = 1;
  181. }
  182. if (!isset($params->params->inc_sections)) {
  183. $params->params->inc_sections = 1;
  184. }
  185. if (!isset($params->params->inc_categories)) {
  186. $params->params->inc_categories = 1;
  187. }
  188. if (!isset($params->params->inc_articles)) {
  189. $params->params->inc_articles = 1;
  190. }
  191. if (!isset($params->params->inc_others)) {
  192. $params->params->inc_others = 0;
  193. }
  194. break;
  195. case 'Categories_FC':
  196. case 'Categories_K2':
  197. case 'Categories_MR':
  198. case 'Categories_ZOO':
  199. case 'Categories_VirtueMart':
  200. if (!isset($params->params->inc_children)) {
  201. $params->params->inc_children = 0;
  202. }
  203. if (!isset($params->params->inc_categories)) {
  204. $params->params->inc_categories = 1;
  205. }
  206. if (!isset($params->params->inc_items)) {
  207. $params->params->inc_items = 1;
  208. }
  209. break;
  210. case 'Tags_FC':
  211. case 'Tags_K2':
  212. if (!isset($params->params->inc_tags)) {
  213. $params->params->inc_tags = 1;
  214. }
  215. if (!isset($params->params->inc_items)) {
  216. $params->params->inc_items = 1;
  217. }
  218. break;
  219. case 'Date':
  220. case 'Time':
  221. if (!isset($params->params->publish_up)) {
  222. $params->params->publish_up = 0;
  223. }
  224. if (!isset($params->params->publish_down)) {
  225. $params->params->publish_down = 0;
  226. }
  227. break;
  228. case 'Seasons':
  229. if (!isset($params->params->hemisphere)) {
  230. $params->params->hemisphere = 'northern';
  231. }
  232. break;
  233. }
  234. }
  235. function passAll(&$params, $match_method = 'and', $article = 0)
  236. {
  237. if (empty($params)) {
  238. return 1;
  239. }
  240. jimport('joomla.filesystem.file');
  241. $app = JFactory::getApplication();
  242. $this->_params = $this->getRequestParams();
  243. // if no id is found, check if menuitem exists to get view and id
  244. if ($app->isSite() && (!$this->_params->option || !$this->_params->id)) {
  245. $menu = $app->getMenu('site');
  246. if (empty($this->_params->Itemid)) {
  247. $menuItem = $menu->getActive();
  248. } else {
  249. $menuItem = $menu->getItem($this->_params->Itemid);
  250. }
  251. if (!$this->_params->option) {
  252. $this->_params->option = (empty($menuItem->query['option'])) ? null : $menuItem->query['option'];
  253. }
  254. $this->_params->view = (empty($menuItem->query['view'])) ? null : $menuItem->query['view'];
  255. $this->_params->task = (empty($menuItem->query['task'])) ? null : $menuItem->query['task'];
  256. if (!$this->_params->id) {
  257. $this->_params->id = (empty($menuItem->query['id'])) ? null : $menuItem->query['id'];
  258. }
  259. unset($menuItem);
  260. }
  261. $aid = ($article && isset($article->id)) ? '['.$article->id.']' : '';
  262. $id = md5($aid.json_encode($params));
  263. if (isset($this->_passes[$id])) {
  264. $pass = $this->_passes[$id];
  265. } else {
  266. $pass = ($match_method == 'and') ? 1 : 0;
  267. foreach ($this->_types as $type) {
  268. if (isset($params[$type])) {
  269. $this->initParams($params[$type], $type);
  270. if (($pass && $match_method == 'and') || (!$pass && $match_method == 'or')) {
  271. $tid = md5($type.$aid.':'.json_encode($params[$type]));
  272. if (isset($this->_passes[$tid])) {
  273. $pass = $this->_passes[$tid];
  274. } else {
  275. if ($params[$type]->assignment == 'all') {
  276. $pass = 1;
  277. } else if ($params[$type]->assignment == 'none') {
  278. $pass = 0;
  279. } else {
  280. if (!isset($this->_classes[$this->maintype]) && JFile::exists(__DIR__.'/assignments/'.strtolower($this->maintype).'.php')) {
  281. require_once __DIR__.'/assignments/'.strtolower($this->maintype).'.php';
  282. $class = 'NNFrameworkAssignments'.$this->maintype;
  283. $this->_classes[$this->maintype] = new $class;
  284. }
  285. if (isset($this->_classes[$this->maintype])) {
  286. $func = 'pass'.$type;
  287. $pass = $this->_classes[$this->maintype]->$func($this, $params[$type]->params, $params[$type]->selection, $params[$type]->assignment, $article);
  288. }
  289. }
  290. $this->_passes[$tid] = $pass;
  291. }
  292. }
  293. }
  294. }
  295. $this->_passes[$id] = $pass;
  296. }
  297. return ($pass) ? 1 : 0;
  298. }
  299. /**
  300. * passSimple
  301. *
  302. * @param <string> $value
  303. * @param <array> $selection
  304. * @param <string> $assignment
  305. *
  306. * @return <bool>
  307. */
  308. function passSimple($values = '', $selection = array(), $assignment = 'all', $caseinsensitive = 0)
  309. {
  310. $values = $this->makeArray($values, 1);
  311. $selection = $this->makeArray($selection);
  312. $pass = 0;
  313. foreach ($values as $value) {
  314. if ($caseinsensitive) {
  315. if (in_array(strtolower($value), array_map('strtolower', $selection))) {
  316. $pass = 1;
  317. break;
  318. }
  319. } else {
  320. if (in_array($value, $selection)) {
  321. $pass = 1;
  322. break;
  323. }
  324. }
  325. }
  326. if ($pass) {
  327. return ($assignment == 'include');
  328. } else {
  329. return ($assignment == 'exclude');
  330. }
  331. }
  332. /**
  333. * getAssignmentState
  334. *
  335. * @param <string> $assignment
  336. */
  337. function getAssignmentState(&$assignment)
  338. {
  339. switch ($assignment) {
  340. case 1:
  341. case 'include':
  342. $assignment = 'include';
  343. break;
  344. case 2:
  345. case 'exclude':
  346. $assignment = 'exclude';
  347. break;
  348. case 3:
  349. case -1:
  350. case 'none':
  351. $assignment = 'none';
  352. break;
  353. default:
  354. $assignment = 'all';
  355. break;
  356. }
  357. }
  358. function getMenuItemParams($id = 0)
  359. {
  360. $query = $this->_db->getQuery(true);
  361. $query->select('m.params');
  362. $query->from('#__menu AS m');
  363. $query->where('m.id = '.(int) $id);
  364. $this->_db->setQuery($query);
  365. $params = $this->_db->loadResult();
  366. $parameters = NNParameters::getInstance();
  367. return $parameters->getParams($params);
  368. }
  369. function getParentIds($id = 0, $table = 'menu', $parent = 'parent_id', $child = 'id')
  370. {
  371. $parent_ids = array();
  372. if (!$id) {
  373. return $parent_ids;
  374. }
  375. while ($id) {
  376. $query = $this->_db->getQuery(true);
  377. $query->select($this->_db->qn($parent));
  378. $query->from('#__'.$table);
  379. $query->where($this->_db->qn($child).' = '.(int) $id);
  380. $this->_db->setQuery($query);
  381. $id = $this->_db->loadResult();
  382. if ($id) {
  383. $parent_ids[] = $id;
  384. }
  385. }
  386. return $parent_ids;
  387. }
  388. /**
  389. * makeArray
  390. *
  391. * @param <array> $array
  392. * @param <boolean> $onlycommas
  393. */
  394. function makeArray($array = '', $onlycommas = 0, $trim = 1)
  395. {
  396. if (!is_array($array)) {
  397. if (!$onlycommas && !(strpos($array, '|') === false)) {
  398. $array = explode('|', $array);
  399. } else {
  400. $array = explode(',', $array);
  401. }
  402. }
  403. if ($trim) {
  404. if ($trim && !empty($array)) {
  405. foreach ($array as $key => $val) {
  406. $array[$key] = trim($val);
  407. }
  408. }
  409. }
  410. return $array;
  411. }
  412. function passMenuItem(&$params, $selection = array(), $assignment = 'all')
  413. {
  414. if (!isset($this->_classes['Menu']) && JFile::exists(__DIR__.'/assignments/menu.php')) {
  415. require_once __DIR__.'/assignments/menu.php';
  416. $this->_classes[$this->maintype] = new NNFrameworkAssignmentsMenu;
  417. }
  418. if (isset($this->_classes['Menu'])) {
  419. return $this->_classes['Menu']->passMenuItem($this, $params, $selection, $assignment);
  420. }
  421. return 1;
  422. }
  423. function getAssignmentsFromParams(&$params, $use_sef = 2)
  424. {
  425. jimport('joomla.filesystem.file');
  426. $assignments = array();
  427. if (isset($params->assignto_menuitems) && $params->assignto_menuitems) {
  428. $assignments['MenuItem'] = new stdClass();
  429. $assignments['MenuItem']->assignment = $params->assignto_menuitems;
  430. $assignments['MenuItem']->selection = $params->assignto_menuitems_selection;
  431. $assignments['MenuItem']->params = new stdClass();
  432. $assignments['MenuItem']->params->inc_children = $params->assignto_menuitems_inc_children;
  433. $assignments['MenuItem']->params->inc_noItemid = $params->assignto_menuitems_inc_noitemid;
  434. }
  435. if (isset($params->assignto_homepage) && $params->assignto_homepage) {
  436. $assignments['HomePage'] = new stdClass();
  437. $assignments['HomePage']->assignment = $params->assignto_homepage;
  438. }
  439. if (isset($params->assignto_cats) && $params->assignto_cats) {
  440. $assignments['Cats'] = new stdClass();
  441. $assignments['Cats']->assignment = $params->assignto_cats;
  442. $assignments['Cats']->selection = $params->assignto_cats_selection;
  443. $assignments['Cats']->params = new stdClass();
  444. $incs = $this->makeArray($params->assignto_cats_inc);
  445. $assignments['Cats']->params->inc_categories = in_array('inc_cats', $incs);
  446. $assignments['Cats']->params->inc_articles = in_array('inc_arts', $incs);
  447. $assignments['Cats']->params->inc_others = in_array('inc_others', $incs);
  448. $assignments['Cats']->params->inc_children = $params->assignto_cats_inc_children;
  449. }
  450. if (isset($params->assignto_articles) && $params->assignto_articles) {
  451. $assignments['Articles'] = new stdClass();
  452. $assignments['Articles']->assignment = $params->assignto_articles;
  453. $assignments['Articles']->selection = $params->assignto_articles_selection;
  454. $assignments['Articles']->params = new stdClass();
  455. $assignments['Articles']->params->keywords = $params->assignto_articles_keywords;
  456. }
  457. if (JFile::exists( JPATH_ADMINISTRATOR.'/components/com_flexicontent/admin.flexicontent.php' )) {
  458. if (isset($params->assignto_fccats) && $params->assignto_fccats) {
  459. $assignments['Categories_FC'] = new stdClass();
  460. $assignments['Categories_FC']->assignment = $params->assignto_fccats;
  461. $assignments['Categories_FC']->selection = $params->assignto_fccats_selection;
  462. $assignments['Categories_FC']->params = new stdClass();
  463. $assignments['Categories_FC']->params->inc_children = $params->assignto_fccats_inc_children;
  464. $incs = $this->makeArray( $params->assignto_fccats_inc );
  465. $assignments['Categories_FC']->params->inc_categories = in_array( 'inc_cats', $incs );
  466. $assignments['Categories_FC']->params->inc_items = in_array( 'inc_items', $incs );
  467. }
  468. if (isset($params->assignto_fctags) && $params->assignto_fctags) {
  469. $assignments['Tags_FC'] = new stdClass();
  470. $assignments['Tags_FC']->assignment = $params->assignto_fctags;
  471. $assignments['Tags_FC']->selection = $params->assignto_fctags_selection;
  472. $assignments['Tags_FC']->params = new stdClass();
  473. $incs = $this->makeArray( $params->assignto_fctags_inc );
  474. $assignments['Tags_FC']->params->inc_tags = in_array( 'inc_tags', $incs );
  475. $assignments['Tags_FC']->params->inc_items = in_array( 'inc_items', $incs );
  476. }
  477. if (isset($params->assignto_fctypes) && $params->assignto_fctypes) {
  478. $assignments['Types_FC'] = new stdClass();
  479. $assignments['Types_FC']->assignment = $params->assignto_fctypes;
  480. $assignments['Types_FC']->selection = $params->assignto_fctypes_selection;
  481. $assignments['Types_FC']->params = new stdClass();
  482. }
  483. if (isset($params->assignto_fcitems) && $params->assignto_fcitems) {
  484. $assignments['Items_FC'] = new stdClass();
  485. $assignments['Items_FC']->assignment = $params->assignto_fcitems;
  486. $assignments['Items_FC']->selection = $params->assignto_fcitems_selection;
  487. }
  488. }
  489. if (JFile::exists(JPATH_ADMINISTRATOR.'/components/com_k2/admin.k2.php')) {
  490. if (isset($params->assignto_k2cats) && $params->assignto_k2cats) {
  491. $assignments['Categories_K2'] = new stdClass();
  492. $assignments['Categories_K2']->assignment = $params->assignto_k2cats;
  493. $assignments['Categories_K2']->selection = $params->assignto_k2cats_selection;
  494. $assignments['Categories_K2']->params = new stdClass();
  495. $assignments['Categories_K2']->params->inc_children = $params->assignto_k2cats_inc_children;
  496. $incs = $this->makeArray($params->assignto_k2cats_inc);
  497. $assignments['Categories_K2']->params->inc_categories = in_array('inc_cats', $incs);
  498. $assignments['Categories_K2']->params->inc_items = in_array('inc_items', $incs);
  499. }
  500. if (isset($params->assignto_k2tags) && $params->assignto_k2tags) {
  501. $assignments['Tags_K2'] = new stdClass();
  502. $assignments['Tags_K2']->assignment = $params->assignto_k2tags;
  503. $assignments['Tags_K2']->selection = $params->assignto_k2tags_selection;
  504. $assignments['Tags_K2']->params = new stdClass();
  505. $incs = $this->makeArray($params->assignto_k2tags_inc);
  506. $assignments['Tags_K2']->params->inc_tags = in_array('inc_tags', $incs);
  507. $assignments['Tags_K2']->params->inc_items = in_array('inc_items', $incs);
  508. }
  509. if (isset($params->assignto_k2items) && $params->assignto_k2items) {
  510. $assignments['Items_K2'] = new stdClass();
  511. $assignments['Items_K2']->assignment = $params->assignto_k2items;
  512. $assignments['Items_K2']->selection = $params->assignto_k2items_selection;
  513. }
  514. }
  515. if (JFile::exists( JPATH_ADMINISTRATOR.'/components/com_resource/resource.php' )) {
  516. if (isset($params->assignto_mrcats) && $params->assignto_mrcats) {
  517. $assignments['Categories_MR'] = new stdClass();
  518. $assignments['Categories_MR']->assignment = $params->assignto_mrcats;
  519. $assignments['Categories_MR']->selection = $params->assignto_mrcats_selection;
  520. $assignments['Categories_MR']->params = new stdClass();
  521. $assignments['Categories_MR']->params->inc_children = $params->assignto_mrcats_inc_children;
  522. $incs = $this->makeArray( $params->assignto_mrcats_inc );
  523. $assignments['Categories_MR']->params->inc_categories = in_array( 'inc_cats', $incs );
  524. $assignments['Categories_MR']->params->inc_items = in_array( 'inc_items', $incs );
  525. }
  526. }
  527. if (JFile::exists(JPATH_ADMINISTRATOR.'/components/com_zoo/zoo.php')) {
  528. if (isset($params->assignto_zoocats) && $params->assignto_zoocats) {
  529. $assignments['Categories_ZOO'] = new stdClass();
  530. $assignments['Categories_ZOO']->assignment = $params->assignto_zoocats;
  531. $assignments['Categories_ZOO']->selection = $params->assignto_zoocats_selection;
  532. $assignments['Categories_ZOO']->params = new stdClass();
  533. $assignments['Categories_ZOO']->params->inc_children = $params->assignto_zoocats_inc_children;
  534. $incs = $this->makeArray($params->assignto_zoocats_inc);
  535. $assignments['Categories_ZOO']->params->inc_apps = in_array('inc_apps', $incs);
  536. $assignments['Categories_ZOO']->params->inc_categories = in_array('inc_cats', $incs);
  537. $assignments['Categories_ZOO']->params->inc_items = in_array('inc_items', $incs);
  538. }
  539. }
  540. if (isset($params->assignto_components) && $params->assignto_components) {
  541. $assignments['Components'] = new stdClass();
  542. $assignments['Components']->assignment = $params->assignto_components;
  543. $assignments['Components']->selection = $params->assignto_components_selection;
  544. }
  545. if (isset($params->assignto_urls) && $params->assignto_urls) {
  546. $assignments['URL'] = new stdClass();
  547. $assignments['URL']->assignment = $params->assignto_urls;
  548. if ($use_sef == 2) {
  549. $config = JFactory::getConfig();
  550. $use_sef = ($config->getValue('config.sef') == 1);
  551. }
  552. $assignments['URL']->selection = $use_sef ? $params->assignto_urls_selection_sef : $params->assignto_urls_selection;
  553. $assignments['URL']->selection = str_replace("\r", '', $assignments['URL']->selection);
  554. $assignments['URL']->selection = explode("\n", $assignments['URL']->selection);
  555. }
  556. if (isset($params->assignto_os) && $params->assignto_os) {
  557. $assignments['OS'] = new stdClass();
  558. $assignments['OS']->assignment = $params->assignto_os;
  559. $selection = array();
  560. if (!empty($params->assignto_os_selection)) {
  561. $selection = array_merge($selection, $params->assignto_os_selection);
  562. }
  563. if (isset($params->assignto_searchbots_selection) && !empty($params->assignto_searchbots_selection)) {
  564. $selection = array_merge($selection, $params->assignto_searchbots_selection);
  565. }
  566. $assignments['OS']->selection = $selection;
  567. }
  568. if (isset($params->assignto_browsers) && $params->assignto_browsers) {
  569. $assignments['Browsers'] = new stdClass();
  570. $assignments['Browsers']->assignment = $params->assignto_browsers;
  571. $selection = array();
  572. if (!empty($params->assignto_browsers_selection)) {
  573. $selection = array_merge($selection, $params->assignto_browsers_selection);
  574. }
  575. if (isset($params->assignto_mobile_selection) && !empty($params->assignto_mobile_selection)) {
  576. $selection = array_merge($selection, $params->assignto_mobile_selection);
  577. }
  578. $assignments['Browsers']->selection = $selection;
  579. }
  580. if (isset($params->assignto_date) && $params->assignto_date) {
  581. $assignments['Date'] = new stdClass();
  582. $assignments['Date']->assignment = $params->assignto_date;
  583. $assignments['Date']->params = new stdClass();
  584. $assignments['Date']->params->publish_up = $params->assignto_date_publish_up;
  585. $assignments['Date']->params->publish_down = $params->assignto_date_publish_down;
  586. }
  587. if (isset($params->assignto_seasons) && $params->assignto_seasons) {
  588. $assignments['Seasons'] = new stdClass();
  589. $assignments['Seasons']->assignment = $params->assignto_seasons;
  590. $assignments['Seasons']->selection = $params->assignto_seasons_selection;
  591. $assignments['Seasons']->params = new stdClass();
  592. $assignments['Seasons']->params->hemisphere = $params->assignto_seasons_hemisphere;
  593. }
  594. if (isset($params->assignto_months) && $params->assignto_months) {
  595. $assignments['Months'] = new stdClass();
  596. $assignments['Months']->assignment = $params->assignto_months;
  597. $assignments['Months']->selection = $params->assignto_months_selection;
  598. }
  599. if (isset($params->assignto_days) && $params->assignto_days) {
  600. $assignments['Days'] = new stdClass();
  601. $assignments['Days']->assignment = $params->assignto_days;
  602. $assignments['Days']->selection = $params->assignto_days_selection;
  603. }
  604. if (isset($params->assignto_time) && $params->assignto_time) {
  605. $assignments['Time'] = new stdClass();
  606. $assignments['Time']->assignment = $params->assignto_time;
  607. $assignments['Time']->params = new stdClass();
  608. $assignments['Time']->params->publish_up = $params->assignto_time_publish_up;
  609. $assignments['Time']->params->publish_down = $params->assignto_time_publish_down;
  610. }
  611. if (isset($params->assignto_usergrouplevels) && $params->assignto_usergrouplevels) {
  612. $assignments['UserGroupLevels'] = new stdClass();
  613. $assignments['UserGroupLevels']->assignment = $params->assignto_usergrouplevels;
  614. $assignments['UserGroupLevels']->selection = $params->assignto_usergrouplevels_selection;
  615. }
  616. if (isset($params->assignto_users) && $params->assignto_users) {
  617. $assignments['Users'] = new stdClass();
  618. $assignments['Users']->assignment = $params->assignto_users;
  619. $assignments['Users']->selection = $params->assignto_users_selection;
  620. }
  621. if (isset($params->assignto_languages) && $params->assignto_languages) {
  622. $assignments['Languages'] = new stdClass();
  623. $assignments['Languages']->assignment = $params->assignto_languages;
  624. $assignments['Languages']->selection = $params->assignto_languages_selection;
  625. }
  626. if (isset($params->assignto_templates) && $params->assignto_templates) {
  627. $assignments['Templates'] = new stdClass();
  628. $assignments['Templates']->assignment = $params->assignto_templates;
  629. $assignments['Templates']->selection = $params->assignto_templates_selection;
  630. }
  631. if (JFile::exists(JPATH_ADMINISTRATOR.'/components/com_virtuemart/admin.virtuemart.php')) {
  632. if (isset($params->assignto_virtuemartcats) && $params->assignto_virtuemartcats) {
  633. $assignments['Categories_VirtueMart'] = new stdClass();
  634. $assignments['Categories_VirtueMart']->assignment = $params->assignto_virtuemartcats;
  635. $assignments['Categories_VirtueMart']->selection = $params->assignto_virtuemartcats_selection;
  636. $assignments['Categories_VirtueMart']->params = new stdClass();
  637. $assignments['Categories_VirtueMart']->params->inc_children = $params->assignto_virtuemartcats_inc_children;
  638. $incs = $this->makeArray($params->assignto_virtuemartcats_inc);
  639. $assignments['Categories_VirtueMart']->params->inc_categories = in_array('inc_cats', $incs);
  640. $assignments['Categories_VirtueMart']->params->inc_items = in_array('inc_items', $incs);
  641. }
  642. if (isset($params->assignto_virtuemartitems) && $params->assignto_virtuemartitems) {
  643. $assignments['Items_VirtueMart'] = new stdClass();
  644. $assignments['Items_VirtueMart']->assignment = $params->assignto_virtuemartitems;
  645. $assignments['Items_VirtueMart']->selection = $params->assignto_virtuemartitems_selection;
  646. }
  647. }
  648. if (isset($params->assignto_php) && $params->assignto_php) {
  649. $assignments['PHP'] = new stdClass();
  650. $assignments['PHP']->assignment = $params->assignto_php;
  651. $assignments['PHP']->selection = $params->assignto_php_selection;
  652. }
  653. return $assignments;
  654. }
  655. }