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

Початок розробки ocStore 4 / Начало разработки ocStore 4


dinox

Recommended Posts

UA: Як було повідомлено раніше, ми створили гілку на Github та розпочали локалізацію і міграцію функционалу з попередніх версій ocStore, якщо у Вас є конкретні пропозиції  і можливо рішення, які на Вашу думку є сенс додати в збірку ocStore 4, чекаємо Ваші pull реквести і коментарі в даній темі, попередньо було багато дискусій в темі, був там і флуд і хороші рекомендації. Зараз ми переходимо від дискусій до реалізації. 
Для тих хто не читав раніше: Для власників інтернет магазинів, місце діяльності яких в Україні, в релізі ocStore 4 буде базово додана українська мова, крім російської. 

 

RU: Как было уже сказано ранее, мы создали ветку на Github и начали локализацию и миграцию функционала с предыдущих версий ocStore, если у Вас есть конкретные предложения и возможно решения, которые по Вашему мнению есть смысл добавить в сборник ocStore 4, ждем Ваши pull реквесты и комментарии в данной теме, предварительно было много дискуссий в теме, был там и флуд и хорошие рекомендации. Сейчас мы переходим от дискуссий к реализации. Старая тема буде закрыта

 

  • +1 15
Надіслати
Поділитися на інших сайтах


  • dinox unpinned та pinned this topic

Як на мене, то не раджу апгрейд до OP-4. Мої аргументи:

1. найбільш стабільна 2.3 - то моє ообисте ставлення.

Змінено користувачем esculapra
  • +1 1
Надіслати
Поділитися на інших сайтах

Заморочка с | - ну нафига это надо?

Вот админы меня не понимают.

смотрите, я передаю в пост-запрос параметр, типа, task=truncaneTable

контроллер обрабатывает типа

Цитата

if(isset($this->request->post['task'])&&!empty($this->request->post['task']))
          $function=$this->request->post['task'];
      elseif(isset($this->request->get['task']))
          $function=$this->request->get['task'];
     if(isset($function))
       {
         $this->$function();
       }
        else
          $this->getList();
     }

То есть все функции protected или private

Далее

В модели только одна функция публичная

Цитата

     public function _FUN($type,$fn,$options = null)
         {
           $function = $type.$fn;
             return $this->$function($options);
         }

Дв, тум есть и мой зашквар, бо вызывается типа

Цитата

$this->model_tool_tool_antihacker_base->_FUN('get','ConfigContent',$this->request->get);

В итоге срабатывает функция getConfigContent - уж извините меня за паранойю.

Надіслати
Поділитися на інших сайтах

10.06.2022 в 22:06, esculapra сказал:

Заморочка с | - ну нафига это надо?

Не совсем
ранее проверялся путь до файла .. пока не упрешься
А сейчас сразу - [контроллер, метод]
 

 

10.06.2022 в 22:06, esculapra сказал:

if(isset($this->request->post['task'])&&!empty($this->request->post['task']))

кто вас этому учил?

У себя вы можете делать что хотите

method_exists

Вот потому для вас 2.3..

Надіслати
Поділитися на інших сайтах

Пока что не сильно обращайте внимание, где лежат языковые файлы :) Когда закончим основные переводы уже тогда подумаем и разместим переводы в оптимальном месте. Также вопрос возникает по поводу использования кода языка uk или ua, в некоторых js библиотеках используется ua, в других uk.

Надіслати
Поділитися на інших сайтах


uk-ua

Не так много js либ..
В крайнем случае, например date-picker - uk

на офсайте есть мод перевода (uk) для четверки..

  • +1 4
Надіслати
Поділитися на інших сайтах

Кто, что думает, чтобы при переносе и создании модулей добавлять к названиям файлов и языковых перемен префикс ocstore_ или ocs_

Добавление префикса уберёт на корню вероятность, что попадётся модуль с таким названием файлов и языковыми переменами.

Надіслати
Поділитися на інших сайтах

10.06.2022 в 22:37, chukcha сказал:

Вот потому для вас 2.3..

Та мне пофиг как версии опенкарт, так и пхп - у меня всегда все работает! И не опенкартом единым, так сказать.... Я и престашоп делал для Англии, Швейцарии и пр. Просто счас мой менеджер в ЗСУ

Надіслати
Поділитися на інших сайтах

11.06.2022 в 02:26, buslikdrev сказал:

Кто, что думает, чтобы при переносе и создании модулей добавлять к названиям файлов и языковых перемен префикс ocstore_ или ocs_

Добавление префикса уберёт на корню вероятность, что попадётся модуль с таким названием файлов и языковыми переменами.

но точно такая же проблема была и  у 2-3x

 

Надіслати
Поділитися на інших сайтах

uk-ua как-то давно вроде уже обсуждалось и пришли к такому выводу, жаль что много где наоборот встречается))

bootstrap-select код к примеру ua_UA
Надіслати
Поділитися на інших сайтах

10.06.2022 в 22:37, chukcha сказал:

method_exists

есть еще и class_exists, function_exists, но прекрасно справляется и проверка на существовани, то есть isset

 

Надіслати
Поділитися на інших сайтах

Предлагаю для таблиц модулей сборки добавлять префикс "ocStore_"

Прихований текст

oc_ocStore_article

oc_ocStore_article_description

oc_ocStore_article_image

oc_ocStore_article_related

oc_ocStore_article_related_mn

oc_ocStore_article_related_product

oc_ocStore_article_related_wb

oc_ocStore_article_to_blog_category

oc_ocStore_article_to_download

oc_ocStore_article_to_layout

oc_ocStore_article_to_store

oc_ocStore_blog_category

oc_ocStore_blog_category_description

oc_ocStore_blog_category_path

oc_ocStore_blog_category_to_layout

oc_ocStore_blog_category_to_store

oc_ocStore_customer_blog_search

oc_ocStore_review_article

 

Что будем делать с производителями и тегом meta_h1?

  • +1 2
Надіслати
Поділитися на інших сайтах

Сейчас через демо сайт\заказы можно спамить по email, если хостинг отправляет сообщение.

Надіслати
Поділитися на інших сайтах

12.06.2022 в 13:02, buslikdrev сказал:

Предлагаю для таблиц модулей сборки добавлять префикс "ocStore_"

  Показать содержимое

oc_ocStore_article

oc_ocStore_article_description

oc_ocStore_article_image

oc_ocStore_article_related

oc_ocStore_article_related_mn

oc_ocStore_article_related_product

oc_ocStore_article_related_wb

oc_ocStore_article_to_blog_category

oc_ocStore_article_to_download

oc_ocStore_article_to_layout

oc_ocStore_article_to_store

oc_ocStore_blog_category

oc_ocStore_blog_category_description

oc_ocStore_blog_category_path

oc_ocStore_blog_category_to_layout

oc_ocStore_blog_category_to_store

oc_ocStore_customer_blog_search

oc_ocStore_review_article

 

Что будем делать с производителями и тегом meta_h1?

также - добавлять
Но имя бренда оставить одноязычным

Надіслати
Поділитися на інших сайтах

13.06.2022 в 12:39, chukcha сказал:

Но имя бренда оставить одноязычным

Почему? Есть же названия на разных языках.

Надіслати
Поділитися на інших сайтах

13.06.2022 в 13:44, buslikdrev сказал:

Почему? Есть же названия на разных языках.

1. Совместимость
2. По сути - название бренда - основной язык
Adidas != Адидас
McDonald’s != Вкусно и точка

  • +1 4
Надіслати
Поділитися на інших сайтах

13.06.2022 в 12:48, chukcha сказал:

1. Совместимость
2. По сути - название бренда - основной язык

Совместимость с чем? Можно сделать сохранение и в manufacturer и в manufacturer_description. Другие авторы пусть думают, что переопределить, что заменить и т.д.

По сути будут новые модули незнающие об manufacturer_description\name. Хозяин магазина, если захочет придёт на форум искать помощи, а ему скажут 20$ в час.

Надіслати
Поділитися на інших сайтах

13.06.2022 в 13:48, chukcha сказал:

1. Совместимость
2. По сути - название бренда - основной язык
Adidas != Адидас
McDonald’s != Вкусно и точка

Есть еще бренды на кириллице, много где требуется мультиязык для них.

 

13.06.2022 в 14:00, buslikdrev сказал:

По сути будут новые модули незнающие об manufacturer_description\name. Хозяин магазина, если захочет придёт на форум искать помощи, а ему скажут 20$ в час.

У себя сделал

 

  public function isUseManufacturerDescription() {
    return $this->isColumnExists('manufacturer_description', 'name');
  }  

  public function isColumnExists($table, $column) {
    if (!$this->isTableExists($table)) {
      return false;
    }
    
    $query = $this->db->query("SHOW COLUMNS FROM `" . DB_PREFIX . $this->db->escape($table) . "` LIKE '" . $this->db->escape($column) . "'");    
    
    return (bool)$query->num_rows;
  } 

 

Другое дело, что не у всех эта таблица задействована, а физически присутствует. 

  • +1 1
Надіслати
Поділитися на інших сайтах

20.06.2022 в 18:41, SooR сказал:

Другое дело, что не у всех эта таблица задействована, а физически присутствует. 

Не "дорого" такие проверки выходят в результате?

Надіслати
Поділитися на інших сайтах

23.06.2022 в 12:32, matroskin92 сказал:

Не "дорого" такие проверки выходят в результате?

такую проверку можно сделать в настройках модуля

  • +1 1
Надіслати
Поділитися на інших сайтах

23.06.2022 в 14:07, chukcha сказал:

такую проверку можно сделать в настройках модуля

В настройки модуля редко кто заходит и их обновляет, а после установки последующего модуля за работу предыдущего, шишки как правило на автора последующего. Но в целом, да, почему бы и нет

Надіслати
Поділитися на інших сайтах

23.06.2022 в 12:30, matroskin92 сказал:

В настройки модуля редко кто заходит и их обновляет,

Ошибка будет - зайдут и инструкцию прочтут.

Надіслати
Поділитися на інших сайтах

23.06.2022 в 12:32, matroskin92 сказал:

Не "дорого" такие проверки выходят в результате?

При сохранении настроек. Пока что этого хватает. Ничего не мешает записывать в кэш и иногда опрашивать.

  • +1 1
Надіслати
Поділитися на інших сайтах

Что касательно локализации

нет локализации  - нет текстов ( в старших версиях подгружался хотя бы en-gb

ЧПУ - реализовано красиво, просто, но ссылка всегда с языком (по умолчанию)
route - название сущности (product/product - product и тд
Т.е. ЧПУ не совместимы

Фронт пока не умет переключаться

форма переключения  реализована криво
нет переменной сессии языка, хотя в админке (заказ) - есть

Т.е. локализация не работает.


Пока не сильно смотрел, но при редактировании заказа формируется store instance

но и там ошибка.

Не знаю плюс или минус - списки реализованы через $.load  - pgination, filter

методы save - аяксовые  типа - сохранить и остаться

К сожалению, как всегда , не все списки фильтруются. например категории, события , startup

Инсталляция .. ладно смириться можно.. Есть интересный способ, если нужен vendor - используется composer.json и перестраивается autoload.php

при деинстале,  увы не перестраивается

 


 

Надіслати
Поділитися на інших сайтах

  • 3 months later...

Жду OcStore 4. Думаю что будет интересно

  • +1 1
Надіслати
Поділитися на інших сайтах


  • dinox unfeatured та unpinned this topic

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

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