- Это популярное сообщение.
-
Публикации
786 -
Зарегистрирован
-
Посещение
-
Days Won
74
Сообщения, опубликованные пользователем savage4pro
-
-
- Это популярное сообщение.
- Это популярное сообщение.
-
- Это популярное сообщение.
- Это популярное сообщение.
В Хроме все работает отлично
и в хроме все плохо, и где угодно
первое (обязательное) - для применения якоря, давайте в ссылке весь адрес от вашего
<base href="http://fillheat.ru/" />
либо уберите base вовсе, а в ссылке указывайте просто "#anchor"
второе (крайне желательное) - если уж используете id, они должны быть уникальны, и начинаться с буквы латинского алфавита
-
внес изменения в мод, теперь бутстрап не нужен
Для шаблона Rubber подойдёт?
для 1.5 есть соответствующий мод
-
- Это популярное сообщение.
- Это популярное сообщение.
Замена символа рубля vQmod
Требуется vQmod версии 2.4.1 (идет в комплекте с ocshop 1.5.6.4.1).
Отличия от версии для 2.x
- проверка таблицы (в случае отсутствия таблицы - создание, если пустая - заполнение) при каждом вызове конструктора класса Currency
- обрезка тэгов символов валют в input'е над ползунком coolfilter (если есть)
- процесс установки
Установка:
- скопируйте содержимое папки "upload" в корень вашего сайта
- удалите файлы "/vqmod/vqcache/vq2-*"
- зайдите в панель администратора и очистите кэш vqmod и системный
В случае некорректного отображения блока с форматированной ценой (например, вылезающие закрывающие теги вида: руб." />") необходимо в шаблоне, где эта цена выводится, оборачивать её вывод в strip_tags();
-
Автор
-
Добавлен24.10.2015
-
Категория
-
Opencart
Скачать Замена символа рубля vQmod -
кашу масломбазу индексами не испортишь, по принципу - есть выборка, неплохо бы иметь под нее индексон бесполезен не из-за отсутствия смысла при выборке 3 строк (можно наполнить и сотнями одинаковых кодов десятков валют с нулевым статусом, мало ли кто как хранит их, а потом страдает), а из-за самой идеи запроса в дефолтном исполнении, там один хрен все строки перебираются
кстати о кэше
ModelLocalisationCurrency кэш использует
Currency - нет
по остальному даже и спорить не с чем, что ж, идея прекрасна
брошу камешек в оригинальный опенкарт
выборка в ModelLocalisationCurrency->getCurrencyByCode (это которая "SELECT DISTINCT *..." по `code`)
при отсутствии уникальности поля `code` имеет все шансы выбирать что попало -
пасиб
да, денормализация в виде слегка усложненных запросов с джойном дополнительной таблицы имеет место быть, мод для своей работы добавляет свою таблицу
по-хорошему, кончено, индекс на `oc_currency`.`code` надо повесить, но решил в окончательном варианте структуру дефолтных таблиц БД оставить нетронутой
файлы ядра, естественно, не перезаписывает, как и предписано вку/окмодам
-
- Это популярное сообщение.
- Это популярное сообщение.
Скажите, как правильно создавать ссылки в меню ?
указывать вместе с доменным именем сайта, что не всегда приемлимо
с произвольными ссылками в меню пока, к сожалению, все не совсем так, как хотелось бы
поэтому временно (до выхода обновления по меню) для себя решил данную задачу изменением шаблона, в котором оно выводится
например, в дефолтном шаблоне оно выводится в /catalog/view/theme/default/template/common/header.tpl
мое решение такое
заменить
<?php foreach ($categories as $category) { ?> <?php if ($category['children']) { ?> <li class="dropdown"><a href="<?php echo $category['href']; ?>" class="dropdown-toggle" data-toggle="dropdown"><?php echo $category['name']; ?></a> <div class="dropdown-menu"> <div class="dropdown-inner"> <?php foreach (array_chunk($category['children'], ceil(count($category['children']) / $category['column'])) as $children) { ?> <ul class="list-unstyled"> <?php foreach ($children as $child) { ?> <li><a href="<?php echo $child['href']; ?>"><?php echo $child['name']; ?></a></li> <?php } ?> </ul> <?php } ?> </div> <a href="<?php echo $category['href']; ?>" class="see-all"><?php echo $text_all; ?> <?php echo $category['name']; ?></a> </div> </li> <?php } else { ?> <li><a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a></li> <?php } ?> <?php } ?>
на
<?php foreach ($categories as $category) { ?> <?php $showHref = false; $tmpHref = explode('index.php?route=', $category['href']); if (isset($tmpHref[1]) && !empty($tmpHref[1])) { $showHref = true; if (substr($tmpHref[1], 0,1)=='/') { $category['href'] = $tmpHref[1]; } } else if (isset($tmpHref[0])) { $tmpHrefPath = str_replace('/', '', parse_url($tmpHref[0],PHP_URL_PATH)); if (!empty($tmpHrefPath)) { $showHref = true; $category['href'] = $tmpHref[0]; } unset($tmpHrefPath); } $category['href'] = html_entity_decode($category['href']); ?> <?php if ($category['children']) { ?> <li class="dropdown"><a href="<?php echo ($showHref)?$category['href']:''; ?>" class="dropdown-toggle" data-toggle="dropdown"><?php echo $category['name']; ?></a> <div class="dropdown-menu"> <div class="dropdown-inner"> <?php foreach (array_chunk($category['children'], ceil(count($category['children']) / $category['column'])) as $children) { ?> <ul class="list-unstyled"> <?php foreach ($children as $child) { ?> <?php $showHrefChild = false; $tmpHrefChild = explode('index.php?route=', $child['href']); if (isset($tmpHrefChild[1]) && !empty($tmpHrefChild[1])) { $showHrefChild = true; if (substr($tmpHrefChild[1], 0,1)=='/') { $child['href'] = $tmpHrefChild[1]; } } else if (isset($tmpHrefChild[0])) { $tmpHrefChildPath = str_replace('/', '', parse_url($tmpHrefChild[0],PHP_URL_PATH)); if (!empty($tmpHrefChildPath)) { $showHrefChild = true; $child['href'] = $tmpHrefChild[0]; } unset($tmpHrefChildPath); } $child['href'] = html_entity_decode($child['href']); ?> <li><a href="<?php echo ($showHrefChild)?$child['href']:''; ?>"><?php echo $child['name']; ?></a></li> <?php unset($tmpHrefChild); unset($showHrefChild); ?> <?php } ?> <?php if ($showHref) { ?> <li role="separator" class="divider"></li> <li><a href="<?php echo $category['href']; ?>" class="see-all"><?php echo $text_all; ?> <?php echo $category['name']; ?></a></li> <?php } ?> </ul> <?php } ?> </div> </div> </li> <?php } else { ?> <li><a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a></li> <?php } ?> <?php unset($tmpHref); unset($showHref); ?> <?php } ?>
после этого можно использовать произвольные ссылки в меню в более удобоваримом виде, т.е. добавлять как сео-ссылки типа "/auto" (такие ссылки должны начинаться на слэш), так и относительные типа "product/product&path=20&product_id=35" (они будут в итоге слеплены со стандартным началом: "сайт.ру/index.php?route=", или сразу можно в полном виде добавлять)
но если где-то еще меню выводить, то либо надо и там похожую канитель выписывать, либо решать уже по-человечески - правкой контроллера
ах да, чуть не забыл, при такой замене кода шаблона, можно вообще ссылки не указывать для верхних пунктов меню, в этом случае они будут работать как табы и после дочерних пунктов также не будет пункта "Смотреть Все ..."
и там же немного изменен вывод этого пункта, в виде более логичном - как продолжение списка, вместо имеющегося по дефолту прекращения списка и расположения ссылки следующим после него элементом, правда, вероятно, стили несколько покосятся, и придется вам либо вернуть этот кусочек на дефолтный, либо поправить стили, не уверен, у меня просто стили по ходу пишутся, поэтому сходу сказать, что в css надо для этого менять, а что нет, не смогу
-
добавил в дополнения, можно взять здесь
-
- Это популярное сообщение.
- Это популярное сообщение.
Замена символа рубля
Мод заменяет знак валюты рубля на симпатичный почти уже стандартный символ (U+20BD), представленный в наборе глифов шрифта "Roboto" от Christian Robertson.
Подходит для любого шаблона OpenCart / Ocshop (OpenCart.PRO/CMS) / OcStore версий 2.x при отсутствии прямых модификаций ядра.
Схема работы:
- добавляет в БД новую таблицу `oc_currency_modsymbols` с одной записью - для валюты с кодом RUB
- на этапе выборки данных о валютах оборачивает оригинальный символ в конструкцию для обработки подключаемыми при загрузке страницы стилями
- не ломает возможность менять оригинальный символ в админке, который будет показан при выводе шаблонов, в которых нет возможности подключать дополнительные стили (например, почтовые уведомления), пробелы до/после оригинального символа выносятся за пределы конструкции, т.е. сохраняются
- после установки можно вручную добавлять записи в таблицу `oc_currency_modsymbols` для форматирования символов валют по желанию (для включения в конечную строку стандартного значения, т.е. для автозамены, вместо него следует указать "_default_symbol_")
- мод можно безболезненно отключать/удалять, функциональность при этом вернется к стандартной
Установка:
- Бекап!
- загрузить модуль через Extensions / Extension Installer
- обновить кэш модификаций на странице Extensions / Modifications
- обновить системный кэш
Удаление:
- Бекап!
- удалить мод на странице Extensions / Modifications, там же обновить кэш модификаций
- обновить системный кэш
- вручную удалить из БД таблицу `oc_currency_modsymbols`
- вручную удалить файлы catalog/view/theme/default/stylesheet/roboto-forced.css и roboto-forced.min.css
- вручную удалить файлы catalog/view/theme/default/stylesheet/font/google/roboto-subset-latin-ext-*.*
При обновлении с предыдущих версий рекомендуется полное их удаление.
В случае некорректного отображения блока с форматированной ценой (например, вылезающие закрывающие теги вида: руб." />") необходимо в шаблоне, где эта цена выводится, оборачивать её вывод в strip_tags();
С 2016-11-28 (v.2.5.1) в комплекте идет сабсет (latin-ext, webfont) шрифта Roboto для совместимости с браузерами, которые блокируют подгрузку внешних шрифтов (да, это про тебя, IE9, гори в аду!)
-
Автор
-
Добавлен21.10.2015
-
Категория
pt-sans-ruble-symbol.ocmod.zip
-
да, еще один вариант, если вы используете 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%;}
-
RHCk, посмотрите в сторону сервиса от MS:
не надо нигде регистрироваться, результат вот он:
Хром на 8ке
а так ваш сайт выглядит на ойфоне 6
-
есть такой прелестный сервис от микрософтов
https://dev.modern.ie/tools/vms/
вкратце - триальные, но полноценные сборки разных версий винды с соответствующими релизам браузерами, собранные под виртуальные машинки
быстро развернуть любую из версий можно легко и непринужденно, используя на своей платформе, например, VirtualBox от Oracle или VMware Workstation Player
когда триал заканчивается, можно просто удалить машинку и создать новую (или пользоваться снэпшотами)
там же рекомендую посмотреть на сервис, powered by BrowserStack
https://dev.modern.ie/tools/screenshots/
достаточно живенько генерит скрины любой доступной веб-страницы в некоторых браузерах
-
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>'
для себя выбрал первое
- либо изменяете в БД символ рубля на строку вида ' <i class="rublesymbol">₽</i>'
-
в моем хроме (десктоп, 46.0.2490.71 m) символ этот в виде квадратика
в ФФ (41.0.2), ИЕ (11.0.10240.16431), Опере (32.0.1948.69) все норм
-
для сео лучше уникальные тексты на статичном html, подпитанные деньгой на поисковые запросы
если будете ставить wp, ставьте в подпапку - органичней будет, на мой взгляд (объяснение простое: другой домен = другой сайт), а что касается сео - без разницы, что лучше настроите, то лучше и будет
-
- Это популярное сообщение.
- Это популярное сообщение.
-
если очень не хочется ручками, пишите регулярку для обработки описания статьи в контроллере, или в самом шаблоне, или нагружайте браузер посетителя тем же jquery
-
- Это популярное сообщение.
- Это популярное сообщение.
Версия 2.1.0.1.2
Дизайн -> Меню
добавление "Произвольных ссылок" приводит к небольшому вороху ошибок
в итоге js-ом создается пункт, который можно, конечно, редактировать и уже сохранить, но это как-то неправильно
PHP Notice: Undefined index: menu_desc in [...]/admin/model/design/menu.php on line 110
PHP Warning: Invalid argument supplied for foreach() in [...]/admin/model/design/menu.php on line 110
PHP Notice: Undefined index: menu_desc in [...]/admin/model/design/menu.php on line 117
PHP Notice: Undefined offset: 70 in [...]/admin/controller/design/menu.php on line 238
PHP Notice: Undefined offset: 70 in [...]/admin/controller/design/menu.php on line 238
PHP Notice: Undefined offset: 70 in [...]/admin/controller/design/menu.php on line 248
PHP Notice: Undefined offset: 70 in [...]/admin/controller/design/menu.php on line 248
при этом создается новая запись menu_id в таблице menu, но не добавляется запись в таблицу menu_description
метод add класса ModelDesignMenu, по всей видимости писали разные люди, или один, но с перерывом на какое-нибудь радостное событие
вариант решения/admin/model/design/menu.php:77-82
заменить$query = new stdClass(); $query->rows = array(); foreach ($languages as $language) { $query->rows[] = array('name' => $data['name'], 'language_id' => $language['language_id']); }
на
$data['menu_desc'] = array(); foreach ($languages as $language) { $data['menu_desc'][] = array('name' => $data['name'], 'language_id' => $language['language_id']); }
-
хотелось бы:- иметь возможность при работе с основном меню быстро добавлять категории и статьи блога, не тыркаясь по ссылкам, сейчас меню предлагает работать только с элементами основного каталога
- там же (дизайн->меню) - добавлять произвольную относительную ссылку (никак не привязанную к 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-сортировка статей в блоге
-
- Это популярное сообщение.
- Это популярное сообщение.
Версия 2.1.0.1.2
(в футере админки, кстати, Версия 2.1.0.1.1, но не суть)
Условия:
1. чистая установка 2.1.0.1.1 + обновление до 2.1.0.1.2
2. создан новый (почти) пустой шаблон сайта, т.о. большинство файлов шаблон берется из default
Ошибка при попытке открыть любую страницу блога (/index.php?route=blog/latest, /obzori/, /index.php?route=blog/article&blog_category_id=69&article_id=125 и т.д.):
Notice: Error: Could not load template [...]/catalog/view/theme/default/template/module/blog/featured.tpl! in [...]/system/engine/loader.php on line 93Решение:
найти в
/catalog/controller/module/blog_featured.php:67текст
return $this->load->view('default/template/module/blog/featured.tpl', $data);и исправить его на
return $this->load->view('default/template/blog/module/featured.tpl', $data);
Сделать содержание статьи с помощью якоря
в Общие вопросы
Опубликовано:
решение на коленке примерно следующее
1. в описании статьи втыкаете куда хотите заголовки типа <h3 class="articleContents">Пункт содержания</h3>
в шаблоне пишете что-то вроде такого (чуть подправил preg_match_all 2015-10-27 09:57)
2. в JS примерно такую конструкцию jquery
в стилях уж наверное оформите как-нибудь