COVID2019 и это вот все. Друзья, вся эта история начинает плохо пахнет. Мойте руки, не ходите в люди. Отложите все плановые покупки и положите в носок заначку. Заприте ваших родителей, бабушек-дедушек на даче. Лучше перебдеть чем недобдеть. Берегите себя!

savage4pro

Модераторы
  • Публикации

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

  • Посещение

  • Days Won

    74

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

  1. позволю себе дать еще несколько советов, на что стоит обратить внимание: картинки и прочую весомую статику попрячьте в .gitignore, а для ее передачи используйте rsync с удалением придумайте mysqldump с исключением таблиц пользователей, покупателей, заказов и т.д., и архивированием gzip'ом передавайте статику и дамп вместе с push'ем при необходимости на принимающей стороне бекапьте БД, перед применением нового дампа сохраняйте в отдельных таблицах поля, которые не должны быть переписаны, например, счетчик показов товаров, а после применения дампа, перезаписывайте эти поля на сохраненные, кроме того, в таблице конфигурации меняйте значения dev на актуальные на площадке, все это решается mysql-запросами отключайте сайт на время импорта, в том числе и админскую часть - в настройках веб-сервера добавьте условие, например, наличие в папке сайта какого-нибудь файла (который будет создан перед импортом и удален после), при котором все http-запросы будут отправляться куда-нибудь на 503 все вносимые изменения должны быть отктатываемы, поэтому бекапы БД принимающей стороны имеет смысл делать потаблично и хранить в отдельном git-репозитории настройте ssh-доступ по ключам, и погуглите gitolite деплой должен производиться в автоматическом режиме, собрал-передал-дал команду на импорт-получил ответ-уведомил администратора о результате простое обновление dev-prod делается одной командой и есть еще один момент: по-хорошему, итоговые изменения файлов должны быть применены на промежуточной площадке с реальными данными, отсюда следующий пункт площадок должно быть минимум 3: dev[0-100], work, prod как увязать логику обновления файлов и данных в этих обстоятельствах - это уже вопрос на миллион
  2. толковый мануал https://git-scm.com/book/ru/v1
  3. в верхнем меню делайте что хотите, только пункты сами в себя не вкладывайте более одной категории можно назначить товарам, но не категориям но решается очень просто делаете 2 ветки каталога по типу - ... > штукатурка по назначению - ... > штукатурка для внешней отделки , ... > штукатура для внутренней отделки и товарам 1 и 2 назначаете главной категорией "штукатурку", и показ в категориях "..для внешней отделки" и "... для внутренней отделки", и может их родительских
  4. и список, из-за специфики товаров, мне лично кажется должен выглядеть как-то так
  5. как обычным модулем, в макеты конечно надо выводите вместо оригинального модуля "Категории"
  6. запрос к БД - консоль, phpmyadmin, mysql workbench и т.д. в админке только через интерфейс дополнительных модулей, например как @Stethem советует
  7. не проверял, но попробуйте так делаете копии методов ModelReportSale-> getTotalOrdersByDay() getTotalOrdersByWeek() getTotalOrdersByMonth() getTotalOrdersByYear() например, getTotalOrdersByDayModified() с изменением в запросах полей (и ключей в выборках данных) `date_added` на `date_modified` и затем в ControllerDashboardChart->chart() вызываете новые вместо оригинальных
  8. конкретный пример был выше, при этом указанные строки в css должны быть добавлены после media, можно просто в конец файла дописать либо если немного заморочиться, то для #menu указать нулевой радиус в двух местах, собственно где стиль для него задается в первый раз и в media до 767px для #menu .see-all просто отредактировать уже заданное значение для .dropdown-menu переопределить радиусы как дочерним элементам #menu еще лучше - подключить свой файл с изменениями, получите небольшой щелбан от расчета гугла, зато оригинал останется девственным а когда вдруг решите, что надо делать свой шаблон и для этого придется переписывать существенную часть оригинальной таблицы стилей, тогда перенесете необходимые строки и оставите подключенным уже только свой файл стилей с переопределением бутстрапа и стилей модулей
  9. да, иногда, когда нужно бескомпромиссно задать наивысший приоритет какому-то стилю, можно и нужно использовать импортант, но в подавляющем большинстве случаев это не так всегда надо стараться оставлять место для маневра
  10. .navbar - да #menu - нет @media (max-width: 767px) { #menu { border-radius: 4px; } еще раз прошу прочитать про каскады потому что !important можно перебить только !important'ом
  11. не появятся, если указывать после @media, а не до них, но как вариант можно, и возможно, нужно явно задавать радиус для разных разрешений
  12. ну тогда рассказывайте что делали со стилями шаблона и с бутстрапом до того, как создали данную тему, потому как что в дефолте, что в gray, рекомендация @Lordaaaточно сработает, впрочем так же, как сработало бы и без !important все же примите к сведению:
  13. не сказал бы, что это верное утверждение неужели в бутстрапе есть указание на конкретный элемент #menu? рекомендую к прочтению - https://www.w3.org/TR/CSS21/cascade.html, и по-русски, но корявей - http://htmlbook.ru/samcss/kaskadirovanie в общем, 3 суток прошло, достаточно мытарств все решение с начала топика сводится к добавлению одного класса в шаблон header.tpl <?php if ($categories) { ?> <div class="container fullwidth"> и пары строк в css .container.fullwidth { max-width: 100%; } #menu, #menu .see-all, #menu .dropdown-menu { border-radius: 0px; } если не получается, значит чьи-то ручки уже надобавляли всяких important'ов стили шаблона или он сам уже несколько далек от оригинала
  14. если ничего не путаю, то без глубоких доработок никак
  15. не стоило бы трогать бутстрап, всегда можно переопределить стили
  16. силой мысли и вашим пальцем тыкаю на F12 и вот что вижу: #menu же! а если мне захочется убрать радиус и в раскрывающихся списках, то всего-то надо задать нулевое значение border-radius для #menu .dropdown-menu
  17. это не меню, а последний пункт раскрывающегося списка
  18. хм, я же уже подсказал какие строки закомментировать но это все же плохой метод если у вас проблема только с новыми товарами, то это решается совсем просто: ALTER TABLE `oc_product` CHANGE COLUMN `subtract` `subtract` TINYINT(1) NOT NULL DEFAULT '0' ; и, кроме того, при обновлении я бы на всякий случай все равно передавал 0 как значение этого поля `oc_product`.`subtract`, если такая возможность присутствует в модели синхронизации
  19. а в идеале надо заводить дополнительные расположения как минимум между шапкой, контентом и футером
  20. в макете аккаунта (account/% или отдельные контроллеры) расположите меню не в правой, а в левой колонке или отключите там же показ кастом футера
  21. наличие правой колонки и custom_footer'а друг другу мешают
  22. if ($product_info['seo_title']) { $this->document->setTitle($product_info['seo_title']); } else { $this->document->setTitle($product_info['name']); } if ($product_info['seo_h1']) { $this->data['heading_title'] = $product_info['seo_h1']; } else { $this->data['heading_title'] = $product_info['name']; } $this->document->setDescription($product_info['meta_description']); $this->document->setKeywords($product_info['meta_keyword']);