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

savage4pro

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

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

  • Посещение

  • Days Won

    74

Сообщения, опубликованные пользователем savage4pro

  1. кашу маслом базу индексами не испортишь, по принципу - есть выборка, неплохо бы иметь под нее индекс

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

     

    кстати о кэше

    ModelLocalisationCurrency кэш использует

    Currency - нет

     

    по остальному даже и спорить не с чем, что ж, идея прекрасна

     

    брошу камешек в оригинальный опенкарт


    выборка в ModelLocalisationCurrency->getCurrencyByCode (это которая "SELECT DISTINCT *..." по `code`)
    при отсутствии уникальности поля `code` имеет все шансы выбирать что попало

  2. пасиб


    да, денормализация в виде слегка усложненных запросов с джойном дополнительной таблицы имеет место быть, мод для своей работы добавляет свою таблицу


    по-хорошему, кончено, индекс на `oc_currency`.`code` надо повесить, но решил в окончательном варианте структуру дефолтных таблиц БД оставить нетронутой


    файлы ядра, естественно, не перезаписывает, как и предписано вку/окмодам


  3. да, еще один вариант, если вы используете bootstrap, в его шрифте 'Glyphicons Halflings', идущем в комплекте, среди прочих символов, есть и рубль наш

     <span class="glyphicon glyphicon-ruble" aria-hidden="true"></span><span class="sr-only">р.</span>

    или

     <span class="glyphicon glyphicon-rub" aria-hidden="true"></span><span class="sr-only">р.</span>

    или в css для псевдоклассов :before/:after вашего элемента (и не забудьте указать семейство шрифтов)

    content: "\20bd";

    Upd.
    кстати, если внести этот код (<span class="glyphicon ...) вместо символа рубля в БД, то в шаблонах почтовых уведомлений (или в других шаблонах, страницы из которых не едят общие css-классы и дополнительные шрифты) можно будет просто заменить, например

    echo $product['price']; 

    на что-то вроде

    echo strip_tags($product['price']);

    на выходе должен быть "символ" валюты без прикрас: " p."
    это теоретически, не пробовал :)
     
    Upd2.
    да вообще мудрить не надо, вносить этот <span... в БД и всего делов
    страницы без бутстрапа и так покажут содержимое второго span'а без дополнительных телодвижений в шаблонах!
     
    только перед тем как изменять символ рубля в админке, надо поправить таблицу в БД

    ALTER TABLE `oc_currency` CHANGE COLUMN `symbol_left` `symbol_left` VARCHAR(255) NOT NULL COMMENT '' ,CHANGE COLUMN `symbol_right` `symbol_right` VARCHAR(255) NOT NULL COMMENT '' ;

    и в файле /system/library/currency.php
    в методе format заменить

    $string .= $symbol_left;и$string .= $symbol_right;

    на

    $string .= html_entity_decode($symbol_left);и$string .= html_entity_decode($symbol_right);

    Upd3.

    попробовал, добавив вдогонку в css

    span.glyphicon.glyphicon-ruble {    font-size:70%;}

    и вот так выглядит на дефолтной главной
    post-3815-0-82438900-1445344831_thumb.jp

  4. есть такой прелестный сервис от микрософтов


    https://dev.modern.ie/tools/vms/


    вкратце - триальные, но полноценные сборки разных версий винды с соответствующими релизам браузерами, собранные под виртуальные машинки


    быстро развернуть любую из версий можно легко и непринужденно, используя на своей платформе, например, VirtualBox от Oracle или VMware Workstation Player


    когда триал заканчивается, можно просто удалить машинку и создать новую (или пользоваться снэпшотами)


     


    там же рекомендую посмотреть на сервис, powered by BrowserStack


    https://dev.modern.ie/tools/screenshots/


    достаточно живенько генерит скрины любой доступной веб-страницы в некоторых браузерах


  5. Win10х64

     

    по собственному опыту могу сказать так

    подключаете гуглошрифт PT Sans (или любой другой, имеющий нужный нам символ в своей таблице на одной и той же позиции, который гуглом одинаково отдается разным браузерам)

    <link href="//fonts.googleapis.com/css?family=PT+Sans:regular,italic,bold,bolditalic" rel="stylesheet" type="text/css" />

    в css пишете что-то вроде

    .rublesymbol {	font-family: 'PT Sans', sans-serif;	font-style: normal;}

    а далее на выбор:

    • либо изменяете в БД символ рубля на строку вида ' <i class="rublesymbol">₽</i>'
      а в шаблоне(-ах) почтовых уведомлений (не надейтесь, что все клиенты разрешают получение данных из интернета), и, например, если когда-нибудь понадобится, в скриптах, выполняемых из консоли а-ля PHP_CLI, придется проверять валюту и в случае рубля отдавать обычный " р."
    • либо во всех шаблонах, показывающих символ рубля, где бы они ни были, заменяете наш ' р.' на ' <i class="rublesymbol">₽</i>'

     

    для себя выбрал первое

  6. для сео лучше уникальные тексты на статичном html, подпитанные деньгой на поисковые запросы


    если будете ставить wp, ставьте в подпапку - органичней будет, на мой взгляд (объяснение простое: другой домен = другой сайт), а что касается сео - без разницы, что лучше настроите, то лучше и будет


  7. :)
    хотелось бы:

    • иметь возможность при работе с основном меню быстро добавлять категории и статьи блога, не тыркаясь по ссылкам, сейчас меню предлагает работать только с элементами основного каталога
    • там же (дизайн->меню) - добавлять произвольную относительную ссылку (никак не привязанную к index.php?route=), и например, если строка начинается на слэш (/), даже не пытаться ее обрабатывать, и не нужно вызывать Url->link()
    • там же - совсем не указывать ссылки для пункта меню, и, соответственно, выводить его как "таб" рядом с обычными пунктами со ссылками, сейчас, напомню, при отсутствии значения поля ссылки, она-таки выводится в виде "http://example.com/index.php?route="
    • там же - обрабатывать и выводить ошибку запрета доступа к редактированию меню
    • в БД связать данные таблиц oc_menu% (в случае использования InnoDB) или подчищать записи после удаления пунктов логикой на стороне php, при удалении верхнего пункта, все потомки остаются, и они потеряны, т.к. вновь созданные не смогут быть их родителями (menu_id int(11) AI PK) при использовании админки, разве что вручную выстраивать связи
    • в фильтре статей блога в админке (/admin/index.php?route=blog/article) видеть пункт фильтрации по категориям (как вариант - вынос созданных категорий в левое меню под "Категории блога")

    все это, конечно, не столь критично
    пункт 1 просто вносит немного хаоса в работу
    пункты 2-3 вполне успешно решаются и в шаблонах, но хотелось бы как можно меньше логики выносить в них
    пункт 4 не сильно давит, но может кого-нибудь заставить страдать, что выразится в каком-нибудь неприятном действии типа вытягивания, например, из отпуска с криками - "менюсломалось!!1"
    пункт 5 засоряет ненужными данными БД, не страшно, но в случае чего дебажить неудобно
    а вот пункт 6 здесь наиболее критичен - найти в списке из сотни статей, предназначенных для нескольких категорий, несколько штук, например, для изменения их порядка, может быть достаточно трудно
    кстати, отсюда еще один крайне желательный пункт 7

    • ajax-сортировка статей в блоге :)