Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

spectre

Користувачі
  • Публікації

    5 930
  • З нами

  • Відвідування

Повідомлення, опубліковані користувачем spectre

  1. 22.03.2023 в 15:16, Xelen сказал:

    не видела ни одного, которое бы не работало на этом шаблоне

     

    так мое тоже работает))))

     

    но в новой версии разработчики журнала пиcали что third-party extensions not supported

    может они уже и отказались от этой затеи, я не слежу за их развитием

     

    ну и будем откровенны - в русскоязычном сегменте я наверное купленных журналов видел штук 5 за всю историю

     

    остальное - скачанное с варезных дерьмопомоек со всякими плюшечками и без смс

     

    так что даже если у уважаемых пользователей вареза на новой версии журнала не будут работать мои расширения я не расстроюсь

     

     

  2. Нужно сделать крон задачу которая запускается скажем раз в сутки и добавляет в эту категорию товары которые добавлены за последние 30 дней

    • +1 1
  3. 22.03.2023 в 11:35, markimax сказал:

    Л...но в красивій обгортці , але ж смак після розгортання обертки не зміниться )

    Ну, мне лично по барабану что мои модули не будут работать на одном шаблоне из тысячи пусть и самом популярном

  4. они давно писали что сторонние расширения не будут работать 

     

    это продукт не для нашего рынка, думаю никто спорить не будет что это самый успешный шаблон, а то что модули на него не ставятся видимо так и задумано 

  5. Можно, подключить в getProducts таблицу manufacturer и немножко поменять p.sort_order на m.sort_order

     

     

     

    получится примерно так

     

    Скрытый текст
    	public function getProducts($data = array()) {
    		$sql = "SELECT p.product_id, (SELECT AVG(rating) AS total FROM " . DB_PREFIX . "review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating, (SELECT price FROM " . DB_PREFIX . "product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '" . (int)$this->config->get('config_customer_group_id') . "' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < NOW()) AND (pd2.date_end = '0000-00-00' OR pd2.date_end > NOW())) ORDER BY pd2.priority ASC, pd2.price ASC LIMIT 1) AS discount, (SELECT price FROM " . DB_PREFIX . "product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '" . (int)$this->config->get('config_customer_group_id') . "' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW())) ORDER BY ps.priority ASC, ps.price ASC LIMIT 1) AS special";
    
    		if (!empty($data['filter_category_id'])) {
    			if (!empty($data['filter_sub_category'])) {
    				$sql .= " FROM " . DB_PREFIX . "category_path cp LEFT JOIN " . DB_PREFIX . "product_to_category p2c ON (cp.category_id = p2c.category_id)";
    			} else {
    				$sql .= " FROM " . DB_PREFIX . "product_to_category p2c";
    			}
    
    			if (!empty($data['filter_filter'])) {
    				$sql .= " LEFT JOIN " . DB_PREFIX . "product_filter pf ON (p2c.product_id = pf.product_id) LEFT JOIN " . DB_PREFIX . "product p ON (pf.product_id = p.product_id)";
    			} else {
    				$sql .= " LEFT JOIN " . DB_PREFIX . "product p ON (p2c.product_id = p.product_id)";
    			}
    		} else {
    			$sql .= " FROM " . DB_PREFIX . "product p";
    		}
    
    		$sql .= " LEFT JOIN " . DB_PREFIX . "manufacturer m ON (p.product_id = m.product_id) ";
    		
    		$sql .= " LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'";
    
    		if (!empty($data['filter_category_id'])) {
    			if (!empty($data['filter_sub_category'])) {
    				$sql .= " AND cp.path_id = '" . (int)$data['filter_category_id'] . "'";
    			} else {
    				$sql .= " AND p2c.category_id = '" . (int)$data['filter_category_id'] . "'";
    			}
    
    			if (!empty($data['filter_filter'])) {
    				$implode = array();
    
    				$filters = explode(',', $data['filter_filter']);
    
    				foreach ($filters as $filter_id) {
    					$implode[] = (int)$filter_id;
    				}
    
    				$sql .= " AND pf.filter_id IN (" . implode(',', $implode) . ")";
    			}
    		}
    
    		if (!empty($data['filter_name']) || !empty($data['filter_tag'])) {
    			$sql .= " AND (";
    
    			if (!empty($data['filter_name'])) {
    				$implode = array();
    
    				$words = explode(' ', trim(preg_replace('/\s+/', ' ', $data['filter_name'])));
    
    				foreach ($words as $word) {
    					$implode[] = "pd.name LIKE '%" . $this->db->escape($word) . "%'";
    				}
    
    				if ($implode) {
    					$sql .= " " . implode(" AND ", $implode) . "";
    				}
    
    				if (!empty($data['filter_description'])) {
    					$sql .= " OR pd.description LIKE '%" . $this->db->escape($data['filter_name']) . "%'";
    				}
    			}
    
    			if (!empty($data['filter_name']) && !empty($data['filter_tag'])) {
    				$sql .= " OR ";
    			}
    
    			if (!empty($data['filter_tag'])) {
    				$implode = array();
    
    				$words = explode(' ', trim(preg_replace('/\s+/', ' ', $data['filter_tag'])));
    
    				foreach ($words as $word) {
    					$implode[] = "pd.tag LIKE '%" . $this->db->escape($word) . "%'";
    				}
    
    				if ($implode) {
    					$sql .= " " . implode(" AND ", $implode) . "";
    				}
    			}
    
    			if (!empty($data['filter_name'])) {
    				$sql .= " OR LCASE(p.model) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'";
    				$sql .= " OR LCASE(p.sku) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'";
    				$sql .= " OR LCASE(p.upc) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'";
    				$sql .= " OR LCASE(p.ean) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'";
    				$sql .= " OR LCASE(p.jan) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'";
    				$sql .= " OR LCASE(p.isbn) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'";
    				$sql .= " OR LCASE(p.mpn) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'";
    			}
    
    			$sql .= ")";
    		}
    
    		if (!empty($data['filter_manufacturer_id'])) {
    			$sql .= " AND p.manufacturer_id = '" . (int)$data['filter_manufacturer_id'] . "'";
    		}
    
    		$sql .= " GROUP BY p.product_id";
    
    		$sort_data = array(
    			'pd.name',
    			'p.model',
    			'p.quantity',
    			'p.price',
    			'rating',
    			'm.sort_order',
    			'p.date_added'
    		);
    
    		if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
    			if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') {
    				$sql .= " ORDER BY LCASE(" . $data['sort'] . ")";
    			} elseif ($data['sort'] == 'p.price') {
    				$sql .= " ORDER BY (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)";
    			} else {
    				$sql .= " ORDER BY " . $data['sort'];
    			}
    		} else {
    			$sql .= " ORDER BY m.sort_order";
    		}
    
    		if (isset($data['order']) && ($data['order'] == 'DESC')) {
    			$sql .= " DESC, LCASE(pd.name) DESC";
    		} else {
    			$sql .= " ASC, LCASE(pd.name) ASC";
    		}
    
    		if (isset($data['start']) || isset($data['limit'])) {
    			if ($data['start'] < 0) {
    				$data['start'] = 0;
    			}
    
    			if ($data['limit'] < 1) {
    				$data['limit'] = 20;
    			}
    
    			$sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit'];
    		}
    
    		$product_data = array();
    
    		$query = $this->db->query($sql);
    
    		foreach ($query->rows as $result) {
    			$product_data[$result['product_id']] = $this->getProduct($result['product_id']);
    		}
    
    		return $product_data;
    	}

     

     

     

    ну и контроллер докрутить там где сортировки

    • +1 1
  6. 15.03.2023 в 11:35, zhizherinv сказал:

    Добрый день, подскажите, в версии 5.9 можно ли задать материал в виде? 

    и ещё вопрос - обновление на 6.1 платное?

     

    нет, нельзя 

     

    срок поддержки модуля и обновлений составляет 1 год с момента покупки 

     

    если год не прошёл то бесплатное

  7. 09.03.2023 в 23:11, SerginioWS сказал:

    Хотел уточнить вопрос по новой версии,а именно по Брошенным Корзинам и таким же просмотрам для Еспутника. 

    Насколько понял - это пока что нереализованно?

     

    как они пишут - веб трекинг для этого и нужен 

     

    тк в опенкарт нет таких понятий как брошенная корзина и просмотр, я пока не придумал как можно отследить что пользователь закрыл браузер и бросил просмотр)) 

  8. 08.03.2023 в 20:50, esculapra сказал:

    Я беру оплату за выполненную задачу. Можно выставит рейт 10-15 баков/час (кофе попил, в носу поковырял и пр.) Я просмотрел ТЗ, решили по бюджету... Недавно был проект, но я слег с пневмонией - все, мои наработки я оставил заказчику, он нашел другого. Я без обид - мы же форсмажор не обсуждали, значит я виноват.

     

    когда фрилансер заболел, начал переводить кота через дорогу, свет интернет выключили - с такими работать не нужно 

  9. 08.03.2023 в 16:55, niger сказал:

    Никогда не делаю сразу, а интересуюсь зачем им это, и что они хотят из этого получить. Какую идею это несет. Часто выходило, отговорить и вообще остаться без дене

     

    вот это правильно 

    я откровенную хрень не делаю даже за деньги 

  10. 08.03.2023 в 12:55, sv2109 сказал:

    то в таком случае какие-то мелочи вполне можно делать и бесплатно

     

    Так нельзя делать, разве что в рамках какой-то уже правки, а просто так бесплатных задач в принципе быть не может

    Подключиться к фтп, зайти в админку, скопировать папку модов, это же время все

     

    с такими клиентами нужно работать по системе депозита, закинул 500 денег и пиши хотелки, а разработчик просто "списывает" с баланса денежку

    денежка кончилась - нужно пополнить счет для продолжения сотрудничества

     

     

  11. забыл добавить 

    а от бреда вроде журнал на сборке не*****о и с вкмод можно просто смело отказываться и не думать как это оценить 

     

    такой треш на сайтах бывает только от одного - экономия на разработчиках

  12. 08.03.2023 в 12:22, sv2109 сказал:

    С другой стороны если за каждую мелочь очень категорично требовать плату то клиент просто перестанет с вами работать. 

     

    как показывает практика - то наоборот отсеются любители халявы в стиле в покрась там ещё кнопку, все равно уже подключился 

     

    если конечно у вас много свободного времени и много альтруизма то можно и бесплатно поработать 

    • +1 1
  13. 08.03.2023 в 10:11, EugeneVyd сказал:

    Возможно вы знаете в чем может быть дело у как это починить?

     

    это ошибка не моего модуля

     

    думаю проблема в том что 

     

    08.03.2023 в 10:11, EugeneVyd сказал:

    По ТЗ от агентства, программист добавлял дополнительные параметры для передачи данных в GA4

     

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.