Сегодня 11 апреля, суббота ГлавнаяНовостиО проектеЛичный кабинетПомощьКонтакты Сделать стартовойКарта сайтаНаписать администрации
Поиск по сайту
 
Ваше мнение
Какой рейтинг вас больше интересует?
 
 
 
 
 
Проголосовало: 7283
Кнопка
BlogRider.ru - Каталог блогов Рунета
получить код
Заметки - Блог о 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 — параноики, конечно — цен на топливо на сайтах нет вообще.


Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 

 


Самый-самый блог
Блогер ЖЖ все стерпит
ЖЖ все стерпит
по сумме баллов (758) в категории «Истории»
Изменения рейтинга
Категория «Религия»
Взлеты Топ 5
Падения Топ 5


Загрузка...Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.