|
Какой рейтинг вас больше интересует?
|
Главная /
Каталог блоговCтраница блогера Заметки - Блог о web-разработке. Сервисы для блоггеров. Блоговое/Записи в блоге |
![]() |
Заметки - Блог о web-разработке. Сервисы для блоггеров. Блоговое
Голосов: 1 Адрес блога: http://www.blogovoe.ru/blog/ Добавлен: 2013-12-27 23:28:54 блограйдером panevin |
Подмена «руб.» на знак рубля
2014-09-23 19:05:51 (читать в оригинале)С подачи Артемия Татьяныча и с официальным утверждением знака рубля — a, у всех веб-мастеров образовался дополнительный геморрой.
Проблема:
- ни в одном шрифте такого символа нет
- делать картинкой — не спортивно
- поисковики должны продолжать «видеть» «руб.», для лучшей идентификации сайта как интернет-магазина и правильной индексации цен
- менять вручную по всему сайту — жопа
Решение:
Для начала, возьмём шрифт со знаком рубля, который предлагает Студия Лебедева. Для кроссбраузерности запихнём этот шрифт в Font Squirrel, чтобы получить основные форматы: .ttf, .eot, .woff и .svg. В нагрузку будет сгенерирована таблица стилей:
@font-face {
font-family: 'rublregular';
src: url('rouble-webfont.eot');
src: url('rouble-webfont.eot?#iefix') format('embedded-opentype'),
url('rouble-webfont.woff2') format('woff2'),
url('rouble-webfont.woff') format('woff'),
url('rouble-webfont.ttf') format('truetype'),
url('rouble-webfont.svg#als_rublregular') format('svg');
font-weight: normal;
font-style: normal;
}
//класс для знака рубля
.rubl {font-family:rublregular, Arial, Tahoma, sans-serif;}
Теперь — самое интересное: на сайте используется Arial, знак рубля в лебедевском шрифте в этой гарнитуре под латинской буквой «a». Чтобы пакетно поменять на всём сайте я накидал простенький яваскрипт:
$(".prices-table tbody td").each(function(index, value){
// подменить " руб" на знак рубля
var block = $(this).html();
var rep = /\sруб(.|\s)?$/
block = block.replace(rep,' a');
$(this).html(block);
});
Готово! Теперь во всех таблицах с классом «prices-table» строки вида « руб.», « руб» и « руб » подменяются на нужный нам знак рубля (в регулярке \sруб — условие, чтобы впереди был пробел, дабы не зацепить что-нибудь нужное). Вы, соответственно, меняйте под свои нужды.
Убито кучу зайцев: «руб.» на a по сайту заменяется само, в плане SEO ничего не изменилось, для поисковиков осталось всё как было, решение простое и быстро-внедряемое.
Архив с готовыми шрифтами: ruble-webfont.zip
Цены на топливо: english version
2014-09-22 18:07:27 (читать в оригинале)Сделал английскую версию natrakte.ru: Fuel price in Russia (Saint-Petersburg). За компанию пришлось сделать пересчёт в доллары и евро, остаётся автоматизировать получение курса от ЦБ РФ.
И нужен небольшой тюннинг виджетов, да, пожалуй, и всё. Все следующие разделы на сайте буду делать сразу в двух языковых версиях. В будущем, возможно, добавится немецкая версия.
SEO-модуль 1С-Битрикс, strip_tags Description и Keywords
2014-09-21 02:43:04 (читать в оригинале)В 14-й версии Битрикс, наконец-то, сделали удобное формирование meta-тегов Description и Keywords. Сделать-то, сделали, даже реализовали limit — ограничение по количеству слов (а не символов, спешите видеть). А strip_tags нет! Как так?! Все сеошники тут же завалили форум Битрикса однотипными вопросами: как вырезать теги в новом волшебном SEO-модуле и как ограничивать по символам (а не по словам). Да и как проверять на заполненность полей, склеиваемых в Description/Keywords.
Скоро год пройдёт, а решения от Битрикса так и нет. Обещанного три года ждут. Ну, да мы и сами как-нибудь.
В /bitrix/php_interface/init.php регистрируем обработчик:
require_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/iblock/lib/template/functions/fabric.php');
use BitrixMain;
$eventManager = MainEventManager::getInstance();
$eventManager->addEventHandler("iblock", "OnTemplateGetFunctionClass", "myOnTemplateGetFunctionClass");
include_once($_SERVER["DOCUMENT_ROOT"] . "/bitrix/php_interface/include/classes/seo.php");
function myOnTemplateGetFunctionClass(BitrixMainEvent $event) {
$arParam = $event->getParameters();
$functionClass = $arParam[0];
if (is_string($functionClass) && class_exists($functionClass) && $functionClass=='ap_sseo'){
$result = new BitrixMainEventResult(1,$functionClass);
return $result;
}
}
Самое интересное у нас будет происходить в /bitrix/php_interface/include/classes/seo.php
class ap_sseo extends BitrixIblockTemplateFunctionsFunctionBase
{
public function onPrepareParameters(BitrixIblockTemplateEntityBase $entity, $parameters)
{
$arguments = array();
/** @var BitrixIblockTemplateNodeBase $parameter */
foreach ($parameters as $parameter)
{
$arguments[] = $parameter->process($entity);
}
return $arguments;
}
public function calculate(array $parameters)
{
foreach ($parameters as $key => $parameter)
{
$parameters[$key] = strip_tags($parameter);//вырезать теги (спасибо, Кэп)
$parameters[$key] = preg_replace("/(t+)/is","",$parameters[$key]);//вырезать табуляции
$parameters[$key] = preg_replace("/(s+){2,}/is"," ",$parameters[$key]);//заменить двойные пробелы одинарными
$parameters[$key] = preg_replace("/(rn)+/i", "", $parameters[$key]);//удалить переводы строки
//$parameters[$key] = mb_substr($parameters[$key],0,250);
}
if(isset($parameters[0]) && $parameters[0] && isset($parameters[1])) {
return sprintf(mb_substr($parameters[1],$parameters[0],0,250));
}
else return sprintf(mb_substr($parameters[0],0,250));
return "";
}
}
Готово! Из Description и keywords вырезаются все теги с помощью strip_tags и регулярными выражениями meta-теги приводятся в божеский вид: вырезается вся табуляция и переводы строк, двойные пробелы заменяются одинарными и, финально, поля обрезаются по длине (в лоб по 250 символов без учёта окончаний слов).
При желании можете его покрутить. Я не доделал обработку нескольких директив, почему-то происходит какая-то ересь и этот костыль можно использовать только с одной директивой: {=ap_sseo this.DetailText}
Это добавить в настройках инфоблока во вкладке SEO в поля «Шаблон META DESCRIPTION» и «Шаблон META KEYWORDS».
Совместное использование директив не прокатило {=ap_sseo limit this.DetailText " " 30}, не знаю почему такая строка не хочет работать.
Пользуйтесь!
Лучи добра разработчикам Битрикса!
Слой над IFRAME / кодом YouTube ролика
2014-09-17 14:39:10 (читать в оригинале)В старых версиях браузеров и в IE вплоть до 9-ой версии включительно есть стандартная проблема, когда слой Lightbox (например) открывается не над кодом проигрывателя YouTube, а под ним.
{IMG_2 alt="Код ролика YouTube на странице"}
Код ролика YouTube на странице.
{IMG_3 alt="Код ролика YouTube на странице со слоем, который по идее должен быть поверх всего"}
Код ролика YouTube на странице со слоем, который по идее должен быть поверх всего.
Решение простое: надо в адресе до ролика добавить в конце ?wmode=opaque или &wmode=opaque (если в src IFRAME уже есть какие-то переменные).
Для флэш-ролика надо в код самого flash добавить строчку <param name="wmode" value="opaque"> и в тег embed добавить ещё один параметр: <embed wmode="opaque">
Вуаля!
Цены на топливо в Петербурге: новые виджеты
2014-09-05 01:19:57 (читать в оригинале)Наконец-то сделал облегчённую версию средних цен на топливо по Санкт-Петербургу в виде iframe-блока.
Выглядит так:
Плюс виджет на Яндекс:
Всё руки не доходили сделать, но за сайтом посматривал, чтобы цены правильно собирались. Ну да парсеры подправлял. Буквально на днях, совершенно случайно, нашёл где взять точные цены по Neste. Neste и Shell — параноики, конечно — цен на топливо на сайтах нет вообще.
Категория «Религия»
Взлеты Топ 5
|
| ||
|
+87 |
119 |
ershow |
|
+85 |
94 |
Annelle |
|
+83 |
92 |
Сергей Каменев |
|
+76 |
149 |
_Музыка_Души_ |
|
+73 |
91 |
yashar |
Падения Топ 5
|
| ||
|
-1 |
6 |
Дневник белого колонизатора |
|
-5 |
155 |
Bill4iam |
|
-5 |
70 |
Новый завет |
|
-19 |
12 |
ГОРОСКОП |
|
-19 |
82 |
Позже,чем кажется |
Популярные за сутки
Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.
взяты из открытых общедоступных источников и являются собственностью их авторов.

