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

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


Recommended Posts

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

 

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

 

  • +1 10
Link to comment
Share on other sites


  • dinox unpinned and pinned this topic

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

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

Edited by esculapra
  • +1 1
Link to comment
Share on other sites

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

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

смотрите, я передаю в пост-запрос параметр, типа, 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 - уж извините меня за паранойю.

Link to comment
Share on other sites

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..

Link to comment
Share on other sites

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

Link to comment
Share on other sites


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

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

Link to comment
Share on other sites

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

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

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

Link to comment
Share on other sites

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

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

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

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

 

Link to comment
Share on other sites

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

method_exists

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

 

Link to comment
Share on other sites

Предлагаю для таблиц модулей сборки добавлять префикс "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
Link to comment
Share on other sites

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?

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

Link to comment
Share on other sites

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

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

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

  • +1 2
Link to comment
Share on other sites

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

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

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

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

Link to comment
Share on other sites

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
Link to comment
Share on other sites

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

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

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

Link to comment
Share on other sites

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

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

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

  • +1 1
Link to comment
Share on other sites

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

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

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

Link to comment
Share on other sites

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

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

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

Link to comment
Share on other sites

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

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

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

  • +1 1
Link to comment
Share on other sites

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

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

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

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

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

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


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

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

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

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

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

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

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

 


 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • 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.