Опубликовано Оставить комментарий

лето 2019

сегодня был на пруду. погода уже походит на осеннюю, но водичка еще около 20 градусов. в этом летнем сезоне много катаюсь на велике. наснимал кучу материала на ксяоми экшн-камеру, купленную на розетке за 50 долларов. как похолодеет будет чем заняться, а именно монтажем того самого материала. через две недели улетаю в барселону. надеюсь мой отдых удастся и я не разобьюсь на самолете, хотя наверно это быстрая и безболезненная смерть. так давно не писал в свой блог о жизни, что даже неловко делиться этим всем с интерфейсом моей админки. как обычно поддержка модулей забирает много сил, а еще на меня AWARO обижается, что я не помогаю ему развивать модуль. классика, но я найду время и буду доводить начатое до ума. в этом году оборудовал старый дом, который ранее использовался как кладовка. поставил туда комп с эмулятором сеги, занес туда кальянчик и диванчик. утащил туда свою древнюю аудои-систему и чилюсь там по вечерам с друзьями. всем хорошего лета, цем ну и по классике. парочку фоток)

читать

Опубликовано Оставить комментарий

chart.js взаимодействие с php и ajax

php класс генерирующий массивы под chart.js class chartjs { public $barChardData; public function __construct() { $this->createData(); } public function getCount() { return count($this->barChardData[‘labels’]); } public function createData() { $this->barChardData = array(); $this->barChardData[‘labels’] = array(); $this->barChardData[‘datasets’] = array(); } public function addBarChardLabels($labels) { $this->barChardData[‘labels’] = $labels; } public function getData() { return $this->barChardData; } public function addBarChardData($label, $backgroundColor, $borderColor, $borderWidth, $data, $fill) { if (count($data) !== count($this->barChardData[‘labels’])) { exit(«ERROR»); } $this->barChardData[‘datasets’][] = array( ‘label’ => $label, ‘backgroundColor’ => $backgroundColor, ‘borderColor’ => $borderColor, ‘borderWidth’ => $borderWidth, ‘data’ => $data, ‘fill’ => $fill, ); } } использование $chart=new chartjs(); foreach ($month as $year => $val) { $chart->addBarChardLabels($month[$year]); $c = $this->random_color(); $chart->addBarChardData($year, $c, $c, 3, $total[$year], false); } $json[‘barChardData’] = $chart->barChardData; обрабатывается это примерно таким аякс запросом function myChart(json, type) { if (window.myBar !== undefined) window.myBar.destroy(); window.myBar = new Chart(ctx, { type: type, data: json[‘barChardData’], options: { responsive: true } }); } и на выходе получаем долгожданную диаграмму

читать

Опубликовано Оставить комментарий

добавляем в ocfilter сворачивание. минимизируем фильтр цены

Чтобы добиться такого вида окфильтра. необходимо добавить к сайту следующие жс и цсс .noUi-pips-horizontal { display:none; } .ocfilter-option label { float:left; white-space:nowrap!important; width:50%!important; } .noUi-horizontal .noUi-handle { width: 23px!important; height: 23px!important; left: -17px!important; top: -4px!important; border-radius:50%!important; } .list-group .list-group-item { overflow:hidden!important; } .ocfilter-option .ocf-option-name { margin-bottom:0px!important; } .ocf-option-values { margin-top:10px; } var html_bott = «<i class=’fa fa-chevron-down pull-right’></i>»; var html_top = «<i class=’fa fa-chevron-up pull-right’></i>»; $(document).ready(function() { $(«.ocf-option-name»).each(function(index) { var this_html = $(this).html(); var this_text = $(this).text(); $(this).html(this_text + html_top); }); $(«.ocf-option-name»).click(function() { var this_html = $(this).html(); var this_text = $(this).text(); var last_s = this_html.slice(-1); if (last_s == ‘ ‘) { $(this).html(this_text + html_top); } else $(this).html(this_text + html_bott + ‘ ‘); $(this).next().toggle(); }); // сворачиваем все группы начиная с 4 $(«.ocf-option-name»).each(function(index) { if (index > 3) $(this).click(); }); });

читать

Опубликовано Оставить комментарий

округление цен в опенкарте

цены в опенкарте округляются в библиотеке расположенной по пути system/library/currency.php или system/library/cart/currency.php в методе «format». на oCstore 2.3 эта строка выглядит следующим образом $amount = round($amount, (int)$decimal_place); видим что округление работает по принципу round(3.4);         // 3round(3.5);         // 4 если мы хотим обернуть округление в большую или меньшую сторону, то можно использовать функции ceil / floor так же можно реализовать округление цен в корзине. либа корзины находится по путиsystem/library/cart.php или system/library/cart/cart.php код, который отвечает за цены в корзине. ‘price’ => ($price + $option_price),’total’ => ($price + $option_price) * $cart[‘quantity’], и никогда не пишите поверх этого кода. дерзайте OCMOD всем хорошего времени суток

читать

Опубликовано Оставить комментарий

как recaptcha и youtube убивают скорость загрузки сайта

если у вас опенкарт и ответ сервера быстрый, но гугл пейджспид показывает низкий показатель. нужно задуматься вот над чем удалить не используемые скрипты и медиане использовать cdn и не использовать скрипты, которые тянут стили и еще скрипты с других источников (например рекаптча, ютюб и тд). найдите им замену. ютюб замените хтмл5 тэгом видео. а рекаптчу замените комплексом условий для опеределния бота. например скрытая галочка, которая не должна придти на сервер от человека, а от бота придет. и еще какую-то простенькую капчу. типа суммы чиселне покупать шаблоны на темфорест. натыкался лично милен раз на такие темы, у которых ответ сервера из-за модифов и нагрузки становится 3-5секунд.проверить размер изображений. посмотреть максимальные размеры изображений в браузере при разных разрешениях устройства. и прописать в настройках опенкарта максимальныейода еще писал тыщу лет назад отключить подсчет товаров в категориях для менюстили в хеде. скрипты — перед </body>

читать