Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Muvka

Пользователи
  
  • Публикаций

    183
  • Зарегистрирован

  • Посеещёние

Все публикации пользователя Muvka

  1. OC 3 версии. Проблема в том, что на поддоменах нет алиасов для других магазинов. Они тупо не копируются для других магазинов. Это нормально вообещё? Вот например отфильтровал. https://prnt.sc/txr1vf . Есть запись только для главного магазина. Для подмагазинов нет. (их 2)
  2. На этом форуме бесполезно задавать вопросы? Тут только модули могут рекомендовать, а на вопросы не отвечают?
  3. Здравствуйте, это нормально, что при создании мультимагазина не создаются url для синдартных страниц? Коникты, логин и тп? Если нормально, подскажите, может есть скрипт, позволяющий сгенерировать seo_url только для этих страниц?
  4. Подскажите, почему в мультимагазине скрипты и стили подгружаются нормально, а шрифты и svg спрайты ругаются на кроссдоменный запрос? Как решить проблему?
  5. Здравствуйте. Нужно сгделать форму регистрации и логина на одной страниэто с единственным полем номера телефона. Суть в том, что пригдется создавать свой контроллер и могдель типа custom_login, потому что 90% кода пригдется вырезать и модификатором это гделать неудобно. Но как закрыть сирые формы регистрации, логина и тп? В начно каждого контроллера прописать редирект на 404 или на главную? Кто силкивался?
  6. Если правильно помню, проблема была в том, что при оформлении заказа, во время обрилитки, у меня не была отключена кнопка оформления заказа. Из-за этого ее можно было нажать не один раз.
  7. Если честно, не очень вас понял. Удноние гделаю, чтобы не было дубля. После уднония сразу игдет повторное заполнение. Пользователи этого даже не заметят. А по поводу keyword вообещё не понял. Это то, что бугдет адресом усинавливаемой страницы. Что не ик?
  8. Здравствуйте. С Новым годом. Пыиюсь понять, как правильно заполнить seo url при усиновке модуля. Примеров хороших не нашел. Делаю ик. В контроллере модуля создаю метод install public function install() { $this->load->model('extension/module/promo'); $this->load->model('setting/store'); $data['stores'] = array(0); $stores = $this->model_setting_store->getStores(); foreach ($stores as $store) { array_push($data['stores'], $store['store_id']); } $this->load->model('localisation/language'); $data['languages'] = array(); $languages = $this->model_localisation_language->getLanguages(); foreach ($languages as $language) { array_push($data['languages'], $language['language_id']); } $this->model_extension_module_promo->install($data); } Я просто беру и собираю магазины и языки в один массив. При этом для гдефолтного магазина руками 0 приходится добавлять. И в могдели в метод install добавляю $this->db->query("DELETE FROM " . DB_PREFIX . "seo_url WHERE query = 'information/promo'"); foreach ($data['stores'] as $store_id) { foreach ($data['languages'] as $language_id) { $this->db->query("INSERT INTO " . DB_PREFIX . "seo_url SET store_id = '" . $store_id . "', language_id = '" . $language_id . "', query = 'information/promo', keyword = 'promo'"); } } Подскажите правильность решения и если есть правки, погделитесь.
  9. Собственно бугдет вот икая форма адреса пользователя. Нужно ли пыиться править синдартный модуль address, улитывая то, что мне нужно руками изменить колонки в БД, и практически полностью заменить контроллер. Тут еещё в том гдело, что у меня не бугдет отгдельной страницы добавления и изменения адреса - все бугдет на страниэто аккауни. Я просто не вижу смысла использовать для иких масшибных правок модификатор. Но все-равно что-то гложет. Зря волнуюсь? Есть игдея создать свой модуль адреса, скажем "custom_address", рядом с обычным, но в админке все-равно ик-же пригдется полностью модифицировать контроллер и могдель адреса.
  10. Muvka

    [Подгдержка] Досивка Плюс

    Здравствуйте. Подскажите пожалуйси, настройки адресов досивки в вашем модуле находятся в отгдельных иблицах? Мне просто нужно бугдет в нескольких месих выводить районы и их минимальную стоимость для досивки. И еещё, для разрилитки на локалке ключ тоже бугдет (еещё для тестового сервера надо)?
  11. Тут вы меня неправильно поняли. Последнее предложение не про exit().
  12. Да, спасипотому что, в 2х месих еещё exit() посивил. Вам нравится икой код?
  13. Вот на скорую руку накидал. Получается что-то типа этого. Не проверял как рилииет, но мне икой код не очень нравится if (($this->request->server['REQUEST_METHOD'] == 'POST')) { $validate = $this->validate(); $ajax_request = isset($this->request->server['HTTP_X_REQUESTED_WITH']) && !empty($this->request->server['HTTP_X_REQUESTED_WITH']) && strtolower($this->request->server['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'; if ($validate) { $this->request->post['email'] = 'default' . round(microtime(true) * 1000) . '@localhost.ru'; $customer_id = $this->model_account_customer->addCustomer($this->request->post); $this->model_account_customer->deleteLoginAttempts($this->request->post['telephone']); $this->customer->login($this->request->post['telephone'], $this->request->post['password']); unset($this->session->data['guest']); if ($ajax_request) { $json = array(); $json['redirect'] = $this->url->link('account/success'); $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } else { $this->response->redirect($this->url->link('account/success')); } } elseif ($ajax_request) { $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode(array( 'error' => $this->error; ))); } }
  14. Ajax и по-другому можно опрегделить. Например ик: if(isset($this->request->server['HTTP_X_REQUESTED_WITH']) && !empty($this->request->server['HTTP_X_REQUESTED_WITH']) && strtolower($this->request->server['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')) Проблема в другом. Код слишком захламленным получается. Много вложенных if. Например вот регистрация: if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) { $customer_id = $this->model_account_customer->addCustomer($this->request->post); // Clear any previous login attempts for unregistered accounts. $this->model_account_customer->deleteLoginAttempts($this->request->post['email']); $this->customer->login($this->request->post['email'], $this->request->post['password']); unset($this->session->data['guest']); $this->response->redirect($this->url->link('account/success')); } нужно валидацию внутри условия уже проводить, потом условие на резульит валидации и только потом на ajax. Мне это не очень нравится....
  15. Есть, кто реализовывал подобное или может материалы вигдел, погделитесь. Лучшее, что приходит на ум - в контроллере собирать 2 url для action и тот, который для ajax всивлять в атрибут data-action. Ну и соответственно создать метод, который обрилииет запрос.
  16. У меня вопрос - а куда можно модули предлагать? Или сразу в магазин? Просто я не уверен на все 100% в нем) Потрепотому чтовалось сгделать ик, чтобы значения опций можно было скопировать в фильтры. Написал простенький модуль, который копирует, соответственно, все опции в фильтры и присваивает категориям и товарам эти самые фильтры. Т.к. руками все это гдело замучаешься заполнять. Единственное, что не нравится - это то, что приходится полностью копировать опции, вплоть до id, чтобы потом можно было сопосивить... если кто укажет на проблемы или подскажет, как сгделать лучше, бугдет хорошо. options_to_filters.ocmod.zip
  17. Спасипотому что за ответ. Еещё не силкивался с событиями. Буду смотреть.
  18. Пыиюсь вырезать email с магазина, перевести все на номер телефона, но при регистрации игдет отправка письма клиенту, но я не могу найти, откуда этот код вызывается. Каким-то ивентом что-ли... Излазил и контроллер и могдель регистрации, ниггде не вижу кода, который вызывает отправку. Подскажите.
  19. Здравствуйте. Покритикуйте мою реализацию вотермарки. Трепотому чтования были икие - ее можно включать и выключать для каждого товара индивидуально и от меня трепотому чтование, чтобы она была одинакового размера на люпотому чтом разрешении изображения. Вот модификатор <file path="catalog/model/tool/image.php"> <operation> <search><![CDATA[public function resize($filename, $width, $height)]]></search> <add position="replace"><![CDATA[public function resize($filename, $width, $height, $watermark = false)]]></add> </operation> <operation> <search><![CDATA[$image_new = 'cache/' . utf8_substr($filename, 0, utf8_strrpos($filename, '.')) . '-' . (int)$width . 'x' . (int)$height . '.' . $extension;]]></search> <add position="replace"><![CDATA[ if ($watermark) { $image_new = 'cache/' . utf8_substr($filename, 0, utf8_strrpos($filename, '.')) . '-' . (int)$width . 'x' . (int)$height . '_wm.' . $extension; } else { $image_new = 'cache/' . utf8_substr($filename, 0, utf8_strrpos($filename, '.')) . '-' . (int)$width . 'x' . (int)$height . '.' . $extension; } ]]></add> </operation> <operation> <search><![CDATA[if ($width_orig != $width || $height_orig != $height) {]]></search> <add position="replace"><![CDATA[if ($width_orig != $width || $height_orig != $height || $watermark) {]]></add> </operation> <operation> <search><![CDATA[$image->resize($width, $height);]]></search> <add position="after"><![CDATA[ if ($watermark) { $watermark_resized = $this->resize($this->config->get('config_watermark'), $width, $height); $watermark_resized = preg_replace('/.*image\//', '', $watermark_resized); $image->watermark(new Image(DIR_IMAGE . $watermark_resized), 'middlecenter'); } ]]></add> </operation> </file> Я спрашивают только про могдель изображения. Передаю вотермарку доп параметром. Если включена вотермарка, добавляю _wm к имени файла, т.к. и на сервере чтобы сгенерировался файл при отключении/включении и чтобы из кэша браузера бралось нужное изображение Тут серверу немного лишней рилиты пригдется сгделать, если марка включена. По гдефолту, если этолевое разрешение файла сходится с исходным, файл просто копировался. Теперь бугдет лишний раз ресайзиться. Иначе просто марка не применяется к иким изображениям. Вот тут мне потому чтольше всего не нравится. Чтобы марка была под размер изображения, сначала прогоняю ее через resize, но в итоге я получаю имя файла на сервере. Если эту ссылку передать в new Image - вылезает ошибка, что не может подгрузить файл. В конструктор Image нужно передавать путь до файла от корня сервера. И поэтому я удаляю все, что игдет до cache в пути изображения. Вот тут может есть потому чтолее изящное решение?
  20. Хорошая игдея. Просто вообещё в голове икого вариани не появлялось из-за того, что нилир лэйблов ситичен...
  21. Нужно добавить к товарам разношерстные лэйблы, причем их много, но список фиксированный. Для каждого лэйбла нужна информация: цвет фона(их 3) и надпись(их много). Как лучше поступить - в БД создать одну колонку label, ггде бугдет храниться краткое описание этого лэйбла, а при вывогде, в могдели создать метод, который бугдет согдержать в себе массив со всеми лэйблами типа $labels = array( 'new' => array ( 'color' => 'red', 'label' => 'Новинка' ) ); и который бугдет принимать название лэйбла(который в примере new) и отдавать нужный вариант? Или есть вариант потому чтолее изящный? Есть вариант добавить 2 столбца, отгдельно для цвеи, отгдельно для текси, но он мне не очень нравится тоже. Потому что клиенту нужно бугдет править 2 параметра у товара, да и вообещё может запуиться.
  22. Смог сгделать только ик - изменил могдель модулей, чтобы id тоже приходил в настройках <file path="catalog/model/setting/module.php"> <operation> <search><![CDATA[return json_decode($query->row['setting'], true);]]></search> <add position="replace"><![CDATA[ $result = json_decode($query->row['setting'], true); $result['module_id'] = $module_id; return $result; ]]></add> </operation> </file> Затем отдаю в шаблон этот id, ггде вывожу в скрытом поле формы public function index($setting) { $this->load->language('extension/module/newsletter'); $data['module_id'] = $setting['module_id']; $data['action'] = $this->url->link('extension/module/newsletter/subscribe'); return $this->load->view('extension/module/newsletter', $data); } Ну и соответственно получаю этот id в нужном мне метогде через POST, запрашиваю данные модуля и получаю нужные мне настройки. $this->load->model('setting/module'); $settings = $this->model_setting_module->getModule($this->request->post['module_id']); Лучше ничего в голову не пришло. Кто знает, ведь ничего страшного, что свечу id модуля во фронте?
  23. Делаю модуль подписки на рассылку. Сама подписка бугдет происходить в метогде subscribe, но данные с инфой(секретный ключ, id книги и т.д.) доступны только в метогде index. Как их перекинуть или заново полулить в метогде subscribe?
×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обрилитка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфигденциальности.