Advertisement
Guest User

Untitled

a guest
Apr 19th, 2019
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 23.65 KB | None | 0 0
  1. <?php
  2.  
  3. namespace Shopware\Themes\CosmeticsShop;
  4.  
  5. use Shopware\Components\Form as Form;
  6. use Doctrine\Common\Collections\ArrayCollection;
  7. use Shopware\Components\Theme\ConfigSet;
  8.  
  9. class Theme extends \Shopware\Components\Theme
  10. {
  11. protected $extend = 'Responsive';
  12.  
  13. protected $name = <<<'SHOPWARE_EOD'
  14. GoodDay - CosmeticsShop Theme
  15. SHOPWARE_EOD;
  16.  
  17. protected $description = <<<'SHOPWARE_EOD'
  18.  
  19. SHOPWARE_EOD;
  20.  
  21. protected $author = <<<'SHOPWARE_EOD'
  22. Daniel Bohusz
  23. SHOPWARE_EOD;
  24.  
  25. protected $license = <<<'SHOPWARE_EOD'
  26. GoodDay
  27. SHOPWARE_EOD;
  28.  
  29.  
  30.  
  31. protected $injectBeforePlugins = true;
  32.  
  33. /**
  34. * Javascript files which will be used in the theme
  35. *
  36. * @var array
  37. */
  38. protected $javascript = [
  39. 'src/js/custom.js'
  40. ];
  41.  
  42. private function getLabel($snippetName)
  43. {
  44. $description = Shopware()->Snippets()->getNamespace('themes/CosmeticsShop/backend/config')->get($snippetName);
  45. return $description;
  46. }
  47.  
  48. public function createConfig(Form\Container\TabContainer $container)
  49. {
  50. $tab = $this->createTab(
  51. 'cosmeticshop_settings',
  52. 'CosmeticShop settings',
  53. [
  54. 'attributes' => [
  55. 'autoScroll' => true
  56. ]
  57. ]
  58. );
  59. $container->addTab($tab);
  60. $tab->addElement($this->createCustomTabPanel());
  61. }
  62. public function createCustomTabPanel()
  63. {
  64. $tabPanel = $this->createTabPanel(
  65. 'custom_tab_panel',
  66. [
  67. 'attributes' => [
  68. 'plain' => true,
  69. ],
  70. ]
  71. );
  72.  
  73. $tabPanel->addTab($this->createColorSettingsTab());
  74. $tabPanel->addTab($this->createFooterSettingsTab());
  75. return $tabPanel;
  76. }
  77. public function createColorSettingsTab(){
  78. $tab = $this->createTab(
  79. 'color_settings_tab',
  80. 'CosmeticShop color settings',
  81. [
  82. 'attributes' => [
  83. 'autoScroll' => true
  84. ]
  85. ]
  86. );
  87. $fieldSet = $this->createFieldSet(
  88. 'color_settings',
  89. 'Color Settings',
  90. array(
  91. 'attributes' => array(
  92. 'layout' => 'column',
  93. 'flex' => 0,
  94. 'defaults' => array(
  95. 'columnWidth' => 0.5,
  96. 'labelWidth' => 180,
  97. 'margin' => '2 15 2 0'
  98. )
  99. )
  100. )
  101. );
  102.  
  103. // Create the base color picker fields
  104. $fieldSet->addElement(
  105. $this->createColorPickerField(
  106. 'cosmetics-light-prime',
  107. '@cosmetics-light-prime',
  108. '#fe9699'
  109. )
  110. );
  111.  
  112.  
  113. $fieldSet->addElement(
  114. $this->createColorPickerField(
  115. 'banner-border',
  116. '@banner-border',
  117. '#fe9699'
  118. )
  119. );
  120.  
  121. $fieldSet->addElement(
  122. $this->createColorPickerField(
  123. 'banner-text-title',
  124. '@banner-text-title',
  125. '#793436'
  126. )
  127. );
  128.  
  129. $fieldSet->addElement(
  130. $this->createColorPickerField(
  131. 'banner-text-subtitle',
  132. '@banner-text-subtitle',
  133. '#3f3e3e'
  134. )
  135. );
  136.  
  137. $fieldSet->addElement(
  138. $this->createColorPickerField(
  139. 'product-headline',
  140. '@product-headline',
  141. '#f96a6e'
  142. )
  143. );
  144.  
  145. $fieldSet->addElement(
  146. $this->createColorPickerField(
  147. 'line',
  148. '@line',
  149. '#8e8e8e'
  150. )
  151. );
  152.  
  153. $fieldSet->addElement(
  154. $this->createColorPickerField(
  155. 'banner-line',
  156. '@banner-line',
  157. '#f96a6e'
  158. )
  159. );
  160.  
  161.  
  162. $fieldSet->addElement(
  163. $this->createColorPickerField(
  164. 'newsletter',
  165. '@newsletter',
  166. '#f96a6e'
  167. )
  168. );
  169.  
  170. $tab->addElement($fieldSet);
  171. return $tab;
  172. }
  173.  
  174. public function createFooterSettingsTab(){
  175. $tab = $this->createTab(
  176. 'color_footer_tab',
  177. 'CosmeticShop footer settings',
  178. [
  179. 'attributes' => [
  180. 'autoScroll' => true
  181. ]
  182. ]
  183. );
  184. $footerSettingsfieldSet = $this->createFieldSet(
  185. 'footer_settings',
  186. 'Footer Settings',
  187. array(
  188. 'attributes' => array(
  189. 'layout' => 'column',
  190. 'flex' => 0,
  191. 'defaults' => array(
  192. 'columnWidth' => 0.5,
  193. 'labelWidth' => 180,
  194. 'margin' => '2 15 2 0'
  195. )
  196. )
  197. )
  198. );
  199.  
  200. // mail
  201. $footerSettingsfieldSet->addElement(
  202. $textField = $this->createTextField(
  203. 'cosmetics_footer_mail',
  204. $this->getLabel('cosmetics_footer_mail'),
  205. 'examplecompany.com',
  206. array(
  207. 'attributes' => array(
  208. 'lessCompatible' => false
  209. )
  210. )
  211. )
  212. );
  213. $footerSettingsfieldSet->addElement(
  214. $checkboxField = $this->createCheckboxField(
  215. 'cosmetics_footer_mail_active',
  216. $this->getLabel('cosmetics_footer_mail_active'),
  217. false
  218. )
  219. );
  220.  
  221. // phone
  222. $footerSettingsfieldSet->addElement(
  223. $textField = $this->createTextField(
  224. 'cosmetics_footer_phone',
  225. $this->getLabel('cosmetics_footer_phone'),
  226. array(
  227. 'attributes' => array(
  228. 'lessCompatible' => false
  229. )
  230. )
  231. )
  232. );
  233. $footerSettingsfieldSet->addElement(
  234. $checkboxField = $this->createCheckboxField(
  235. 'cosmetics_footer_phone_active',
  236. $this->getLabel('cosmetics_footer_phone_active'),
  237. false
  238. )
  239. );
  240.  
  241. // facebook
  242. $footerSettingsfieldSet->addElement(
  243. $textField = $this->createTextField(
  244. 'cosmetics_facebook_url',
  245. $this->getLabel('cosmetics_facebook_url'),
  246. '#',
  247. array(
  248. 'attributes' => array(
  249. 'lessCompatible' => false
  250. )
  251. )
  252. )
  253. );
  254. $footerSettingsfieldSet->addElement(
  255. $checkboxField = $this->createCheckboxField(
  256. 'cosmetics_facebook_active',
  257. $this->getLabel('cosmetics_facebook_active'),
  258. false
  259. )
  260. );
  261.  
  262. // instagram
  263. $footerSettingsfieldSet->addElement(
  264. $textField = $this->createTextField(
  265. 'cosmetics_instagram_url',
  266. $this->getLabel('cosmetics_instagram_url'),
  267. '#',
  268. array(
  269. 'attributes' => array(
  270. 'lessCompatible' => false
  271. )
  272. )
  273. )
  274. );
  275. $footerSettingsfieldSet->addElement(
  276. $checkboxField = $this->createCheckboxField(
  277. 'cosmetics_instagram_active',
  278. $this->getLabel('cosmetics_instagram_active'),
  279. false
  280. )
  281. );
  282.  
  283. // twitter
  284. $footerSettingsfieldSet->addElement(
  285. $textField = $this->createTextField(
  286. 'cosmetics_twitter_url',
  287. $this->getLabel('cosmetics_twitter_url'),
  288. '#',
  289. array(
  290. 'attributes' => array(
  291. 'lessCompatible' => false
  292. )
  293. )
  294. )
  295. );
  296. $footerSettingsfieldSet->addElement(
  297. $checkboxField = $this->createCheckboxField(
  298. 'cosmetics_twitter_active',
  299. $this->getLabel('cosmetics_twitter_active'),
  300. false
  301. )
  302. );
  303.  
  304. // privacy
  305. $footerSettingsfieldSet->addElement(
  306. $checkboxField = $this->createCheckboxField(
  307. 'privacy_policy',
  308. $this->getLabel('privacy_policy'),
  309. false
  310. )
  311. );
  312.  
  313. // dropdown menu
  314. $footerSettingsfieldSet->addElement(
  315. $checkboxField = $this->createCheckboxField(
  316. 'dropdown_menu',
  317. $this->getLabel('dropdown_menu'),
  318. false
  319. )
  320. );
  321.  
  322. $tab->addElement($footerSettingsfieldSet);
  323. return $tab;
  324. }
  325.  
  326.  
  327. /**
  328. * Helper function to merge default theme colors with color schemes
  329. * @param ArrayCollection $collection
  330. */
  331. public function createConfigSets(ArrayCollection $collection)
  332. {
  333. $set = new ConfigSet();
  334. $set->setName('CosmeticsShopPink Set')->setDescription(
  335. ''
  336. )->setValues(
  337. [
  338. 'brand-primary' => '#f96a6e',
  339. 'brand-primary-light' => 'saturate(lighten(@brand-primary,12%), 5%)',
  340. 'brand-secondary' => '#3f3e3e',
  341. 'brand-secondary-dark' => 'darken(@brand-secondary, 15%)',
  342. 'gray' => '#F5F5F8',
  343. 'gray-light' => 'lighten(@gray, 1%)',
  344. 'gray-dark' => 'darken(@gray-light, 10%)',
  345. 'border-color' => '#8e8e8e',
  346. 'highlight-success' => '#2ECC71',
  347. 'highlight-error' => '#E74C3C',
  348. 'highlight-notice' => '#F1C40F',
  349. 'highlight-info' => '#4AA3DF',
  350. 'body-bg' => '#ffffff',
  351. 'overlay-bg' => '#000000',
  352. 'overlay-dark-bg' => '@overlay-bg',
  353. 'overlay-light-bg' => '#FFFFFF',
  354. 'overlay-opacity' => '0.7',
  355. 'text-color' => '@brand-secondary',
  356. 'text-color-dark' => '@brand-secondary-dark',
  357. 'link-color' => '@brand-primary',
  358. 'link-hover-color' => 'darken(@link-color, 10%)',
  359. 'rating-star-color' => '@highlight-notice',
  360. 'btn-default-top-bg' => '#FFFFFF',
  361. 'btn-default-bottom-bg' => '@gray-light',
  362. 'btn-default-hover-bg' => '#FFFFFF',
  363. 'btn-default-text-color' => '@text-color',
  364. 'btn-default-hover-text-color' => '@brand-primary',
  365. 'btn-default-border-color' => '@border-color',
  366. 'btn-default-hover-border-color' => '@brand-primary',
  367. 'btn-primary-top-bg' => '@brand-primary-light',
  368. 'btn-primary-bottom-bg' => '@brand-primary',
  369. 'btn-primary-hover-bg' => '@cosmetics-light-prime',
  370. 'btn-primary-text-color' => '#FFFFFF',
  371. 'btn-primary-hover-text-color' => '@btn-primary-text-color',
  372. 'btn-secondary-top-bg' => '@brand-secondary',
  373. 'btn-secondary-bottom-bg' => '@brand-secondary-dark',
  374. 'btn-secondary-hover-bg' => '@brand-secondary-dark',
  375. 'btn-secondary-text-color' => '#FFFFFF',
  376. 'btn-secondary-hover-text-color' => '@btn-secondary-text-color',
  377. 'panel-header-bg' => '@gray-light',
  378. 'panel-header-color' => '@text-color',
  379. 'panel-border' => '@border-color',
  380. 'panel-bg' => '#FFFFFF',
  381. 'label-color' => '@text-color',
  382. 'input-bg' => '@gray-light',
  383. 'input-color' => '@brand-secondary',
  384. 'input-placeholder-color' => 'lighten(@text-color, 15%)',
  385. 'input-border' => '@border-color',
  386. 'input-focus-bg' => '#FFFFFF',
  387. 'input-focus-border' => '@brand-primary',
  388. 'input-focus-color' => '@brand-secondary',
  389. 'input-error-bg' => 'desaturate(lighten(@highlight-error, 38%), 20%)',
  390. 'input-error-border' => '@highlight-error',
  391. 'input-error-color' => '@highlight-error',
  392. 'input-success-bg' => '#FFFFFF',
  393. 'input-success-border' => '@highlight-success',
  394. 'input-success-color' => '@brand-secondary-dark',
  395. 'panel-table-header-bg' => '@panel-bg',
  396. 'panel-table-header-color' => '@text-color-dark',
  397. 'table-row-bg' => '#FFFFFF',
  398. 'table-row-color' => '@brand-secondary',
  399. 'table-row-highlight-bg' => 'darken(@table-row-bg, 4%)',
  400. 'table-header-bg' => '@brand-secondary',
  401. 'table-header-color' => '#FFFFFF',
  402. 'badge-discount-bg' => '#793436',
  403. 'badge-discount-color' => '#FFFFFF',
  404. 'badge-newcomer-bg' => '@brand-primary',
  405. 'badge-newcomer-color' => '#FFFFFF',
  406. 'badge-recommendation-bg' => '#c65457',
  407. 'badge-recommendation-color' => '#FFFFFF',
  408. 'badge-download-bg' => '@highlight-info',
  409. 'badge-download-color' => '#FFFFFF',
  410. 'cosmetics-light-prime' => '#fe9699',
  411. 'banner-border' => '#fe9699',
  412. 'banner-text-title' => '#793436',
  413. 'banner-text-subtitle' => '#3f3e3e',
  414. 'product-headline' => '#f96a6e',
  415. 'line' => '#8e8e8e',
  416. 'banner-line' => '#f96a6e',
  417. 'newsletter' => '#fe9699',
  418.  
  419. "font-base-stack" => "'Assistant', sans-serif",
  420. "font-base-weight" => "400",
  421.  
  422. ]
  423. );
  424.  
  425. $collection->add($set);
  426.  
  427.  
  428. $set = new ConfigSet();
  429. $set->setName('CosmeticsShopBlue Set')->setDescription(
  430. ''
  431. )->setValues(
  432. [
  433. 'brand-primary' => '#1f3f7c',
  434. 'brand-primary-light' => 'saturate(lighten(@brand-primary,12%), 5%)',
  435. 'brand-secondary' => '#3f3e3e',
  436. 'brand-secondary-dark' => 'darken(@brand-secondary, 15%)',
  437. 'gray' => '#F5F5F8',
  438. 'gray-light' => 'lighten(@gray, 1%)',
  439. 'gray-dark' => 'darken(@gray-light, 10%)',
  440. 'border-color' => '#9ca6ad',
  441. 'highlight-success' => '#2ECC71',
  442. 'highlight-error' => '#E74C3C',
  443. 'highlight-notice' => '#F1C40F',
  444. 'highlight-info' => '#4AA3DF',
  445. 'body-bg' => '#ffffff',
  446. 'overlay-bg' => '#000000',
  447. 'overlay-dark-bg' => '@overlay-bg',
  448. 'overlay-light-bg' => '#FFFFFF',
  449. 'overlay-opacity' => '0.7',
  450. 'text-color' => '@brand-secondary',
  451. 'text-color-dark' => '@brand-secondary-dark',
  452. 'link-color' => '@brand-primary',
  453. 'link-hover-color' => 'darken(@link-color, 10%)',
  454. 'rating-star-color' => '@highlight-notice',
  455. 'btn-default-top-bg' => '#FFFFFF',
  456. 'btn-default-bottom-bg' => '@gray-light',
  457. 'btn-default-hover-bg' => '#FFFFFF',
  458. 'btn-default-text-color' => '@text-color',
  459. 'btn-default-hover-text-color' => '@brand-primary',
  460. 'btn-default-border-color' => '@border-color',
  461. 'btn-default-hover-border-color' => '@brand-primary',
  462. 'btn-primary-top-bg' => '@brand-primary-light',
  463. 'btn-primary-bottom-bg' => '@brand-primary',
  464. 'btn-primary-hover-bg' => '@cosmetics-light-prime',
  465. 'btn-primary-text-color' => '#FFFFFF',
  466. 'btn-primary-hover-text-color' => '@btn-primary-text-color',
  467. 'btn-secondary-top-bg' => '@brand-secondary',
  468. 'btn-secondary-bottom-bg' => '@brand-secondary-dark',
  469. 'btn-secondary-hover-bg' => '@brand-secondary-dark',
  470. 'btn-secondary-text-color' => '#FFFFFF',
  471. 'btn-secondary-hover-text-color' => '@btn-secondary-text-color',
  472. 'panel-header-bg' => '@gray-light',
  473. 'panel-header-color' => '@text-color',
  474. 'panel-border' => '@border-color',
  475. 'panel-bg' => '#FFFFFF',
  476. 'label-color' => '@text-color',
  477. 'input-bg' => '@gray-light',
  478. 'input-color' => '@brand-secondary',
  479. 'input-placeholder-color' => 'lighten(@text-color, 15%)',
  480. 'input-border' => '@border-color',
  481. 'input-focus-bg' => '#FFFFFF',
  482. 'input-focus-border' => '@brand-primary',
  483. 'input-focus-color' => '@brand-secondary',
  484. 'input-error-bg' => 'desaturate(lighten(@highlight-error, 38%), 20%)',
  485. 'input-error-border' => '@highlight-error',
  486. 'input-error-color' => '@highlight-error',
  487. 'input-success-bg' => '#FFFFFF',
  488. 'input-success-border' => '@highlight-success',
  489. 'input-success-color' => '@brand-secondary-dark',
  490. 'panel-table-header-bg' => '@panel-bg',
  491. 'panel-table-header-color' => '@text-color-dark',
  492. 'table-row-bg' => '#FFFFFF',
  493. 'table-row-color' => '@brand-secondary',
  494. 'table-row-highlight-bg' => 'darken(@table-row-bg, 4%)',
  495. 'table-header-bg' => '@brand-secondary',
  496. 'table-header-color' => '#FFFFFF',
  497. 'badge-discount-bg' => '#9ca6ad',
  498. 'badge-discount-color' => '#FFFFFF',
  499. 'badge-newcomer-bg' => '#1f3f7c',
  500. 'badge-newcomer-color' => '#FFFFFF',
  501. 'badge-recommendation-bg' => '#1a2a40',
  502. 'badge-recommendation-color' => '#FFFFFF',
  503. 'badge-download-bg' => '@highlight-info',
  504. 'badge-download-color' => '#FFFFFF',
  505. 'cosmetics-light-prime' => '#1a2a40',
  506. 'banner-border' => '#9ca6ad',
  507. 'banner-text-title' => '#253759',
  508. 'banner-text-subtitle' => '#3f3e3e',
  509. 'product-headline' => '#1a2a40',
  510. 'line' => '#8e8e8e',
  511. 'banner-line' => '#9ca6ad',
  512. 'newsletter' => '#1a2a40',
  513.  
  514. "font-base-stack" => "'Assistant', sans-serif",
  515. "font-base-weight" => "400",
  516.  
  517. ]
  518. );
  519.  
  520. $collection->add($set);
  521.  
  522.  
  523. $set = new ConfigSet();
  524. $set->setName('CosmeticsShopBrown Set')->setDescription(
  525. ''
  526. )->setValues(
  527. [
  528. 'brand-primary' => '#a3897e',
  529. 'brand-primary-light' => 'saturate(lighten(@brand-primary,12%), 5%)',
  530. 'brand-secondary' => '#3f3e3e',
  531. 'brand-secondary-dark' => 'darken(@brand-secondary, 15%)',
  532. 'gray' => '#F5F5F8',
  533. 'gray-light' => 'lighten(@gray, 1%)',
  534. 'gray-dark' => 'darken(@gray-light, 10%)',
  535. 'border-color' => '#2f343a',
  536. 'highlight-success' => '#2ECC71',
  537. 'highlight-error' => '#E74C3C',
  538. 'highlight-notice' => '#F1C40F',
  539. 'highlight-info' => '#4AA3DF',
  540. 'body-bg' => '#ffffff',
  541. 'overlay-bg' => '#000000',
  542. 'overlay-dark-bg' => '@overlay-bg',
  543. 'overlay-light-bg' => '#FFFFFF',
  544. 'overlay-opacity' => '0.7',
  545. 'text-color' => '@brand-secondary',
  546. 'text-color-dark' => '@brand-secondary-dark',
  547. 'link-color' => '@brand-primary',
  548. 'link-hover-color' => 'darken(@link-color, 10%)',
  549. 'rating-star-color' => '@highlight-notice',
  550. 'btn-default-top-bg' => '#FFFFFF',
  551. 'btn-default-bottom-bg' => '@gray-light',
  552. 'btn-default-hover-bg' => '#FFFFFF',
  553. 'btn-default-text-color' => '@text-color',
  554. 'btn-default-hover-text-color' => '@brand-primary',
  555. 'btn-default-border-color' => '@border-color',
  556. 'btn-default-hover-border-color' => '@brand-primary',
  557. 'btn-primary-top-bg' => '@brand-primary-light',
  558. 'btn-primary-bottom-bg' => '@brand-primary',
  559. 'btn-primary-hover-bg' => '@cosmetics-light-prime',
  560. 'btn-primary-text-color' => '#FFFFFF',
  561. 'btn-primary-hover-text-color' => '@btn-primary-text-color',
  562. 'btn-secondary-top-bg' => '@brand-secondary',
  563. 'btn-secondary-bottom-bg' => '@brand-secondary-dark',
  564. 'btn-secondary-hover-bg' => '@brand-secondary-dark',
  565. 'btn-secondary-text-color' => '#FFFFFF',
  566. 'btn-secondary-hover-text-color' => '@btn-secondary-text-color',
  567. 'panel-header-bg' => '@gray-light',
  568. 'panel-header-color' => '@text-color',
  569. 'panel-border' => '@border-color',
  570. 'panel-bg' => '#FFFFFF',
  571. 'label-color' => '@text-color',
  572. 'input-bg' => '@gray-light',
  573. 'input-color' => '@brand-secondary',
  574. 'input-placeholder-color' => 'lighten(@text-color, 15%)',
  575. 'input-border' => '@border-color',
  576. 'input-focus-bg' => '#FFFFFF',
  577. 'input-focus-border' => '@brand-primary',
  578. 'input-focus-color' => '@brand-secondary',
  579. 'input-error-bg' => 'desaturate(lighten(@highlight-error, 38%), 20%)',
  580. 'input-error-border' => '@highlight-error',
  581. 'input-error-color' => '@highlight-error',
  582. 'input-success-bg' => '#FFFFFF',
  583. 'input-success-border' => '@highlight-success',
  584. 'input-success-color' => '@brand-secondary-dark',
  585. 'panel-table-header-bg' => '@panel-bg',
  586. 'panel-table-header-color' => '@text-color-dark',
  587. 'table-row-bg' => '#FFFFFF',
  588. 'table-row-color' => '@brand-secondary',
  589. 'table-row-highlight-bg' => 'darken(@table-row-bg, 4%)',
  590. 'table-header-bg' => '@brand-secondary',
  591. 'table-header-color' => '#FFFFFF',
  592. 'badge-discount-bg' => '#a3897e',
  593. 'badge-discount-color' => '#FFFFFF',
  594. 'badge-newcomer-bg' => '#b58a6a',
  595. 'badge-newcomer-color' => '#FFFFFF',
  596. 'badge-recommendation-bg' => '#e3bf96',
  597. 'badge-recommendation-color' => '#FFFFFF',
  598. 'badge-download-bg' => '@highlight-info',
  599. 'badge-download-color' => '#FFFFFF',
  600. 'cosmetics-light-prime' => '#b58a6a',
  601. 'banner-border' => '#ffddb3',
  602. 'banner-text-title' => '#2c333d',
  603. 'banner-text-subtitle' => '#2c333d',
  604. 'product-headline' => '#a3897e',
  605. 'line' => '#b58a6a',
  606. 'banner-line' => '#a3897e',
  607. 'newsletter' => '#a3897e',
  608.  
  609. "font-base-stack" => "'Assistant', sans-serif",
  610. "font-base-weight" => "400",
  611.  
  612. ]
  613. );
  614.  
  615. $collection->add($set);
  616.  
  617. }
  618. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement