Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Leaderboard

Popular Content

Showing content with the highest reputation on 05/24/2011 in all areas

  1. Внедрил elFinder в ocStore. Из недостатков (оба недостатка исправлены в версиях для ocstore 0.2.1 и выше): - он создаёт свои собственные превьюшки изображений (т.е. занимает лишнее место на диске); - эти его превьюшки масштабируются по высоте с обрезанием краёв по ширине, из-за чего некоторые длинные картинки бывает трудно узнать. Если кто-то заметит ещё какие-нибудь недостатки - прошу прокомментировать, возможно их удастся исправить. Основная цель этого тестирования - проверить работоспособность этого решения в различных браузерах. Установка (не забудьте перед этим сделать бэкап): Скачайте архив для вашей версии магазина, разархивируйте и скопируйте содержимое папки 'admin' в соответствующую папку вашего магазина. На вопросы о замене файлов отвечайте "Да". Затем зайдите в админку: Система->Пользователи->Группы. Для Главного администратора разрешите доступ и изменения в модуле 'common/elfinder' elfinder-for-ocstore0.2.0.zip elfinder-for-ocstore0.1.9.zip elfinder-for-ocstore0.1.8.zip elfinder-for-ocstore0.1.7.zip elfinder_new-for-ocstore0.2.1.tar.gz elfinder-for-ocstore0.2.2.tar.gz
    1 point
  2. Модуль доставки. Цена доставки зависит от суммы заказа. Просто зайдите в админку "Доставки" и укажите диапазон цен. К примеру: 50:90,100:40 Это означает, что если сумма заказа будет от 50 до 100 то доставка будет стоить 90 руб(грн), а если выше 100 руб то 40. от 0 до 50 будет 0. Так как мы ничего не прописали. Этот пакет был успешно протестирован для стандартных OpenCart 1.4.0. Автор: Email: [email protected] Web: http://www.somsak2004.net/ * Исправлено
    1 point
  3. поправлено сообщение в приведенной теме. пробуйте повторить трюк :)
    1 point
  4. банально....но всё же... htmlbook вам в помощь :rolleyes:
    1 point
  5. 1. Чтобы убрать вылидацию : Находите файл \www\catalog\controller\account\create.php Находите в районе 320 ой строки: private function validate() { if ((strlen(utf8_decode($this->request->post['firstname'])) < 1) || (strlen(utf8_decode($this->request->post['firstname'])) > 32)) { $this->error['firstname'] = $this->language->get('error_firstname'); } if ((strlen(utf8_decode($this->request->post['lastname'])) < 1) || (strlen(utf8_decode($this->request->post['lastname'])) > 32)) { $this->error['lastname'] = $this->language->get('error_lastname'); } if ((strlen(utf8_decode($this->request->post['email'])) > 96) || (!preg_match(EMAIL_PATTERN, $this->request->post['email']))) { $this->error['email'] = $this->language->get('error_email'); } if ($this->model_account_customer->getTotalCustomersByEmail($this->request->post['email'])) { $this->error['warning'] = $this->language->get('error_exists'); } if ((strlen(utf8_decode($this->request->post['telephone'])) < 3) || (strlen(utf8_decode($this->request->post['telephone'])) > 32)) { $this->error['telephone'] = $this->language->get('error_telephone'); } if ((strlen(utf8_decode($this->request->post['address_1'])) < 3) || (strlen(utf8_decode($this->request->post['address_1'])) > 128)) { $this->error['address_1'] = $this->language->get('error_address_1'); } if ((strlen(utf8_decode($this->request->post['city'])) < 3) || (strlen(utf8_decode($this->request->post['city'])) > 128)) { $this->error['city'] = $this->language->get('error_city'); } $this->load->model('localisation/country'); $country_info = $this->model_localisation_country->getCountry($this->request->post['country_id']); if ($country_info && $country_info['postcode_required']) { if ((strlen(utf8_decode($this->request->post['postcode'])) < 2) || (strlen(utf8_decode($this->request->post['postcode'])) > 10)) { $this->error['postcode'] = $this->language->get('error_postcode'); } } if ($this->request->post['country_id'] == 'FALSE') { $this->error['country'] = $this->language->get('error_country'); } if ($this->request->post['zone_id'] == 'FALSE') { $this->error['zone'] = $this->language->get('error_zone'); } if ((strlen(utf8_decode($this->request->post['password'])) < 4) || (strlen(utf8_decode($this->request->post['password'])) > 20)) { $this->error['password'] = $this->language->get('error_password'); } if ($this->request->post['confirm'] != $this->request->post['password']) { $this->error['confirm'] = $this->language->get('error_confirm'); } if ($this->config->get('config_account_id')) { $this->load->model('catalog/information'); $information_info = $this->model_catalog_information->getInformation($this->config->get('config_account_id')); if ($information_info) { if (!isset($this->request->post['agree'])) { $this->error['warning'] = sprintf($this->language->get('error_agree'), $information_info['title']); } } } if (!$this->error) { return TRUE; } else { return FALSE; } } Здесь можно снять обязательное заполнение какого-то поля, просто закомментировав его, например, чтобы не заполнять фамилию, надо поменять if ((strlen(utf8_decode($this->request->post['firstname'])) < 1) || (strlen(utf8_decode($this->request->post['firstname'])) > 32)) { $this->error['firstname'] = $this->language->get('error_firstname'); }на /* if ((strlen(utf8_decode($this->request->post['firstname'])) < 1) || (strlen(utf8_decode($this->request->post['firstname'])) > 32)) { $this->error['firstname'] = $this->language->get('error_firstname'); } */ Так проделываем для всех полей, которые нам не нужны(т.е. просто комментим их). 2. Чтобы поле не показывалось в форме регистрации: Находите файл \www\catalog\view\theme\default\template\account\create.tpl (default - ваша тема, может быть другой) В строках, которые хотим убрать, добавляем style="display:none" пример(убираем фамилию): меняем <tr> <td><span class="required">*</span> <?php echo $entry_lastname; ?></td> <td><input type="text" name="lastname" value="<?php echo $lastname; ?>" /> <?php if ($error_lastname) { ?> <span class="error"><?php echo $error_lastname; ?></span> <?php } ?></td> </tr>на <tr style="display:none"> <td><span class="required">*</span> <?php echo $entry_lastname; ?></td> <td><input type="text" name="lastname" value="<?php echo $lastname; ?>" /> <?php if ($error_lastname) { ?> <span class="error"><?php echo $error_lastname; ?></span> <?php } ?></td> </tr> 3. Ставим мне плюсик :rolleyes:
    1 point
  6. нужно что бы товары у которых стоит определенный stock_status_id не отображались на сайте. Думал сделать просто: в файле catalog/model/catalog/product.php в public function getProductsByCategoryId в запрос добавить условие типа WHERE p.stock_status_id !=11 Когда запрос выполняю в phpmyadmin работает, но на сайте нет изминений. Может кто делал подобное или может посоветовать... osStore 0.1.6, есть модуль фильтров. Код public function getProductsByCategoryId public function getProductsByCategoryId($category_id, $values, $sort = 'p.sort_order', $order = 'ASC', $start = 0, $limit = 20) { $sql = "SELECT *, pd.name AS name, p.image, m.name AS manufacturer, ss.name AS stock, (SELECT AVG(r.rating) FROM " . DB_PREFIX . "review r WHERE p.product_id = r.product_id GROUP BY r.product_id) AS rating FROM " . DB_PREFIX . "product p 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) LEFT JOIN " . DB_PREFIX . "manufacturer m ON (p.manufacturer_id = m.manufacturer_id) LEFT JOIN " . DB_PREFIX . "stock_status ss ON (p.stock_status_id = ss.stock_status_id)"; if($category_id != 0) { $sql .= "LEFT JOIN " . DB_PREFIX . "product_to_category p2c ON (p.product_id = p2c.product_id)"; } $sql .= " WHERE p.stock_status_id !=11 AND p.stock_status_id !=9 AND p.status = '1' AND p.date_available <= NOW() AND pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND ss.language_id = '" . (int)$this->config->get('config_language_id') . "'"; if($category_id != 0) { $sql .= " AND p2c.category_id = '" . (int)$category_id . "'"; } if (isset($values) && $values != '') { $values_without_underline = ""; $values_for_IN = ""; $values_arr = explode('_', $values); asort($values_arr); reset($values_arr); foreach ($values_arr as $value_id) { if (empty($values_for_IN)) { $values_for_IN = "'" . $value_id . "'"; } else { $values_for_IN .= ", '" . $value_id . "'"; } $values_without_underline .= $value_id; } $sql .= " AND (SELECT GROUP_CONCAT(DISTINCT value_id ORDER BY value_id ASC SEPARATOR '') FROM " . DB_PREFIX . "product_to_value WHERE product_id = p.product_id AND p.stock_status_id !=11 AND p.stock_status_id !=9 AND value_id IN (" . $values_for_IN . ")) = '" . $values_without_underline . "'"; } $sort_data = array( 'pd.name', 'p.sort_order', 'special', 'rating', 'p.price', 'p.model' ); if (in_array($sort, $sort_data)) { if ($sort == 'pd.name' || $sort == 'p.model') { $sql .= " ORDER BY LCASE(" . $sort . ")"; } else { $sql .= " ORDER BY " . $sort; } } else { $sql .= " ORDER BY p.sort_order"; } if ($order == 'DESC') { $sql .= " DESC"; } else { $sql .= " ASC"; } if ($start < 0) { $start = 0; } $sql .= " LIMIT " . (int)$start . "," . (int)$limit; $query = $this->db->query($sql); return $query->rows; }
    -1 points
×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.