Ошибки в Open cart 3.0.1.1 и 3.0.2.0

Тема в разделе "Ошибки и их решения", создана пользователем serra328, 12 июл 2017.

  1. Chukcha

    Chukcha Специалист

    Сообщения:
    3.013
    Симпатии:
    685
    Вот какая интересная штука обнаружилась..
    Конечно, я не читатель всех новых возможностей или придури Даниеля.. но ладно придется с этим смириться.
    Но запомните!!!!!

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

    module_CONTROLLER

    module_account -> module_account_status

    Раньше было
    account -> account_status


    Чем это чревато.

    Если у вас модуль подключается через позиции,то вам нужно

    обязательно иметь префикс module и признак статуса!
    $this->config->get('module_' . $part[0] . '_status')) {

    Если вы делаете расширение, то будьте готовы, что при деактивации вашего модуля настройки не удалятся, если у вас нет префикса module

    Это касается и остальных payment, etc

    Может быть нужно добавить еще одну строку кода в admin/model/setting/extension.php
    по крайней мере временно через tweak

    Код:
    public function uninstall($type, $code) {
    ......
    $this->db->query("DELETE FROM `" . DB_PREFIX . "setting` WHERE `code` = '" . $this->db->escape($code) . "'");
    }
     
    Ravilr нравится это.
  2. leapers

    leapers Новичок

    Сообщения:
    10
    Симпатии:
    0
    Open cart 3.0.2.0 в какой-то момент перестал работать вход в админку, в адресной строке просто выскакивает следующее: .../admin/index.php?route=common/dashboard&user_token=ZsTzqLd4lqX8mLOp23KqPz4MsRrJtILS
     
  3. Vlad

    Vlad Эксперт

    Сообщения:
    4.129
    Симпатии:
    999
    Этот момент нужно теперь как то угадать :)
    Вы что то сломали! У вас что то сломалось! Что то случилось с хостером! Какой то модуль установили! Галочку в админке поставили... итдддд
    Возможно у вас просто белый экран, то вам просто нужно включить показ ошибок.
     
  4. leapers

    leapers Новичок

    Сообщения:
    10
    Симпатии:
    0
    :) неделю не заходил в админку, ничего из настроек при предыдущем входе не правил. Только если хост какие-то изменения вносил. Спасибо за рекомендации, будем разбираться ;)
     
  5. leapers

    leapers Новичок

    Сообщения:
    10
    Симпатии:
    0
    Очередная ошибка в "Open cart 3.0.2.0"
     

    Вложения:

    • о.jpg
      о.jpg
      Размер файла:
      86,5 КБ
      Просмотров:
      16
  6. Vlad

    Vlad Эксперт

    Сообщения:
    4.129
    Симпатии:
    999
    Обновитесь до rs2
    В теме сборки описан косяк.
     
  7. leapers

    leapers Новичок

    Сообщения:
    10
    Симпатии:
    0
    Спасибо, попробую!)
     
  8. Chukcha

    Chukcha Специалист

    Сообщения:
    3.013
    Симпатии:
    685
    Прикольная фича обнаружилась
    начиная с 2.х в файловом менагере

    Код:
            foreach ($images as $image) {
                $name = str_split(basename($image), 14);
    
                if (is_dir($image)) {
                    $url = '';
    
                    if (isset($this->request->get['target'])) {
                        $url .= '&target=' . $this->request->get['target'];
                    }
    
                    if (isset($this->request->get['thumb'])) {
                        $url .= '&thumb=' . $this->request->get['thumb'];
                    }
    
                    $data['images'][] = array(
                        'thumb' => '',
                        'name'  => implode(' ', $name),
    
    Обратите внимание на этот код
    Код:
     $name = str_split(basename($image), 14);
    
    Разбиваем имя файла по 14 символов
    Хорошо что выбрано четное - для кириллицы двубайтная - многобайтовая строка - повезло
    тут бы использовать mb_split..

    Зачем это делается?
    А для того что строка переносилась, если длинная
    потому что есть вот это -
    Код:
    'name'  => implode(' ', $name),
    
    Но если вдруг все же длинное название есть и вмещается..
    то выведетс
    Длинноеназваниекарти нки.jpg

    Не люблю менять в нескольких строках
    Делаем
    вместо
    Код:
     $name = str_split(basename($image), 14);
    Код:
     $name = (array)basename($image);

    Но можно, конечно и оставить со след. условиями
    Казалось можно было использовать ­
    Код:
     'name'  => implode('­', $name),
    Но тогда - будет знак переноса
    Длинноеназваниекарти-
    нки.jpg
    Можно попробовать <wbr>
    Код:
    'name'  => implode('<wbr>', $name),
    Желающие есть для эксперимента? У кого есть длинные имена файлов?
     
    Ravilr нравится это.
  9. Ravilr

    Ravilr Специалист

    Сообщения:
    3.876
    Симпатии:
    1.064
    Вот так выглядит кириллица у меня
    Снимок.PNG

    У учитывая что в русской сборке при загрузки файла идет транслит в латиницу и по сути кириллицы не должно быть в названиях (вне зависимости от сборки, так как это плохо) то и нет смысла что то мудрить. Нет?
     
  10. Chukcha

    Chukcha Специалист

    Сообщения:
    3.013
    Симпатии:
    685
    Длинные названия файлов!! больше 14 символов

    Ну.. иметь или не иметь кириллицу ..

    Раньше и домены нельзя было иметь кирллические

    И в досе имя файла 8 символов и 3 для расширения
     
    Последнее редактирование: 14 сен 2017
  11. Ravilr

    Ravilr Специалист

    Сообщения:
    3.876
    Симпатии:
    1.064
    Честно не догнал в чем суть проблемы. Чтобы был перенос, название делится по 14 символов через пробел. Тем самым все переносится прекрасно. Кириллических файлов быть не должно, так как не неправильно это. Если я что то не понял, можно объяснить как для самого глупого :)
     
  12. Chukcha

    Chukcha Специалист

    Сообщения:
    3.013
    Симпатии:
    685
    Имя файла
    CarpathiansJonSilver
    [0] => CarpathiansJo
    [1]=> nSilver

    Будет выведено как
    CarpathiansJo nSilver

    И.. не перенесется, ему хватает места

    Это только влияет на отображение в файловом менагере.
     
  13. Ravilr

    Ravilr Специалист

    Сообщения:
    3.876
    Симпатии:
    1.064
    Понял. Тогда да, <wbr> по мне лучший вариант.
     
  14. leapers

    leapers Новичок

    Сообщения:
    10
    Симпатии:
    0
    Доброго дня!
    Open cart 3.0.2.0 rs2
    Ребят, пожалуйста, подскажите по редактированию таблиц в описании товара. Таблицу создал 2*10, нужно было добавить ещё 2 строчки, однако всплывающая часть редактора в строке отсутствует. Посмотрел на summernote.org как должно быть (картинку прикрепил, обвел красным) у меня данная часть отсутствует. Что сделать?
     

    Вложения:

  15. Vlad

    Vlad Эксперт

    Сообщения:
    4.129
    Симпатии:
    999
    У меня тоже нету. Попробуйте обновить редактор с сайта саммарноте
    Может это новая фишка.
     
    leapers нравится это.
  16. leapers

    leapers Новичок

    Сообщения:
    10
    Симпатии:
    0
    Спасибо, попробую)
    Но я так понимаю, всё-равно в саммарноте не предусмотрена возможность работать с размерами ячеек, полями и тп. Только через код прописывать?
     
  17. Vlad

    Vlad Эксперт

    Сообщения:
    4.129
    Симпатии:
    999
    Лучше через код. Так вы точно увидите что нигде нет фиксированных размеров итд.
     
    leapers нравится это.
  18. Chukcha

    Chukcha Специалист

    Сообщения:
    3.013
    Симпатии:
    685
    Код:
    <?php
    class ModelLocalisationLanguage extends Model {
    
        public function getLanguages() {
            $language_data = $this->cache->get('language');
    Не верный путь для кеша

    $language_data = $this->cache->get('catalog.language');
    чуть ниже
    $this->cache->set('catalog.language', $language_data)

    хе-хе (на оф репозитарии фикс 10дней давности)
     
  19. Chukcha

    Chukcha Специалист

    Сообщения:
    3.013
    Симпатии:
    685
    seo_url

    Код:
              // Redirect 301   
            } elseif (isset($this->request->get['route']) && empty($this->request->post) && !isset($this->request->get['token']) && $this->config->get('config_seo_url')) {
    
    !isset($this->request->get['user_token'] ????
     
    Ален нравится это.
  20. Ален

    Ален Эксперт

    Сообщения:
    2.056
    Симпатии:
    640
    вроде нет.. на фронте у нас везде token
    PHP:
                if ($store_info) {
                    
    $this->response->redirect($store_info['url'] . 'index.php?route=account/login&token=' $token);
                } else {
                    
    $this->response->redirect(HTTP_CATALOG 'index.php?route=account/login&token=' $token);
                }