Блог Александра Башкирова

ИТ и бизнес, компьютеры и ПО, фото, программирование и просто мысли…
Этот сайт в основном посвящен тому, что мне интересно вне работы. Ведется в порядке хобби.
Все изложенное на сайте - мое частное оценочное мнение и не может быть истолковано иначе.
Со всеми вытекающими из этого последствиями.

alib-plugin

Flex шаблон сайта с меню

Просмотров: 646Комментарии: 0
Alib.spb.ru

Я доработал шаблон для сайта о котором тут писал.

Суть доработки сводилась к тому, чтобы поработать с header'ом. Теперь для мобильной версии сайта "подсвывается" свой header, в который копируется содержание текущего + меню не остается на экране, а прячется под кнопку. Реализацию сделал с использованием jquery (версии 1.7 или выше). Выбор этой библиотеки очевиден: у меня все проекты используют её, и смысла "заморачиваться" на трюки с CSS лично я не видел. Соответственно, появился блок JavaScript кода. Да и возможностей у jQuery побольше (в плане простоты реализации, всё тоже самое можно и на чистом JS сделать).

Итак, дополнительные возможности текущего шаблона:

  • Меню в мобильной версии сворачивается под кнопку
  • Header в мобильной версии становится полосой с меню
  • Также в мобильной версии можно прятать и сайдбары (ничего сложного)
Что добавилось из настроек: классы CSS в "настроченой" части позволяют настроить всё, что угодно.

Да, если необходимо прятать сайдбар для мобильной версии, то добавляем следующий CSS код:

@media screen and (max-width: 599px) {
 .aside-1 {display: none;}
}

Соответственно, для того, чтобы спрятать первый или второй сайдбар, используем имена классов .aside-1 и .aside-2. Аналогично можно прятать footer (класс .footer).

Ссылка для скачивания шаблона: flex-univ-mnu.zip

Скриншоты:

Полный вид:

Мобильный вид:

Flex шаблон сайта

Просмотров: 956Комментарии: 0
Alib.spb.ru

На досуге запилил некий универсальный шаблон для сайта... Точнее, даже не так. Я тут писал что познакомился с flex css - современным расширением css, которое позволяет буквально творить чудеса. :) Решил поискать, что на эту тему есть в сети - с точки зрения готовых шаблонов сайтов на flex. Ожидаемо, их оказалось немного. В итоге взял один из и "немного допилил". Что вылилось в итоге универсальный шаблон, из которого легко можно сделать:

  • сайт шапка + подвал + 2 сайдбара + основной текст
  • сайт может быть как "резиновым", так и фиксированной ширины
  • легко и изящно может быть исключен любой компонент, то есть шаблон можно использовать для создания сайта типа шапка + подвал + сайдбар и основной текст, или, например, шапка + 2 сайдбара + основной текст...
  • сайдбары могут иметь фиксированную ширину
  • сайдбары могут иметь произвольный порядок
  • и всё это с минимумом кода
Немного про настройку. Я постарался документировать код так хорошо, как это только возможно, поэтому, после настройки но перед исползованием - комментарии лучше порезать. Собственно, правки состоят из 2х частей: правки html и css.

Что касается правок html, то там всё просто: если нужно что-то удалить, то удаляется именно там. Например, надо удалить левый сайдбар - удаляем в части html Aside 1. Ну и т.д. Теги там современные, "говорящие", так что вероятность "пролететь" - невысока.

Сложнее с настройкой CSS. Весь CSS код разделён на 3 части:

  • Неизменная часть для верстки - её менять не надо.
  • Настроечная часть для кастомизации сортировки - это часть, которая описывает последовательность расположения блоков на экране. Меняя параметр order для блоков, можно добиться того, что сайдбары будут справа. Или слева. Иные параметры (вон, высота-ширина-шрифты-и т.д.) в этой части менять не стоит!
  • Настроечная часть для кастомизации - вот тут можно и нужно менять фоны-шрифты и т.д.
Отдельно обращу внимание на параметр width: 1200px для класса wrapper-style. Если его удалить, то макет становится "резиновым". Если изменить - то это и будет искомая ширина вашего будущего сайта.

Да, для работы с шаблоном потребуется знание html + css.

Ссылка на архив с шаблоном: flex-univ.zip

PHP: библиотека для парсинга wiki-текста

Просмотров: 778Комментарии: 0
Alib.spb.ru

Для одного из своих проектов написал небольшую библиотечку для парсинга вики-текста, на php.

Возможности и особенности:

  • позволяет парсить wiki-форматирование
  • корректно относится к html - то есть принимает html-разметку наряду с wiki-разметкой
  • за основу взят синтаксис dokuwiki
  • синтаксис облегчен: задача стояла сделать инструмент под конкретные задачи, поэтому, например, библиотека не поддерживает таблицы
  • в полном объеме поддерживаются картинки, включая выравнивание
  • код уникальный. То есть библиотека не "тянута и переписана", а - полнотью своя. По этой же причине - работать может "не так" (я всё-таки не профессиональный программист и писал только под свои задачи)
  • исходя из предыдущего пункта: бибиотека поставляется как есть, без гарантий и претензий. Пользуйтесь на здоровье, но я за результат её работы не отвечаю, хотя и постарался сделать, чтобы она работала корректно.
Скачать: PHP библиотека парсинга wiki-текста

В архиве - пример и описание возможностей форматирования.

Ссылки из текста - плагин для MAXaxSite CMS livelink

Просмотров: 4383Комментарии: 0
MaxSite

C почином ;) "Написал" первый плагин для MaxSite CMS - перевод ссылок из текста постов в ссылки (тег "а").

Точнее, скомпилировал его - из функции перевода текста в строку, вот этой: http://www.snippy.ru/snippet/1774-preobrazovanie-v-ssylki-adresa-url-i-email-iz-teksta/
и шаблона плагина из "коробки" MaxSite. Функцию немного "доработал" в сторону уменьшения функционала. В итоге плагин все ссылки, не "обернутые" тегом <a> - оборачивает в тег <a> - с обязательным-принудительным открытием в новом окне (это для меня принципиально). Тестирование на собственном блоге показало работоспособность, так что - прошу любить и жаловать:)
Инструкция по установке:
  1. Скачайте архив
  2. Распакуйте его
  3. Папку livelink (из архива) поместите в /application/maxsite/plugins
  4. В админ-панели активируйте плагин
  5. Все :)
Настроек у плагина на данный момент нет. Но может быть, когда-нибудь.... ))

Плагин для WordPress: случайная фраза

Просмотров: 6503Комментарии: 47
Wordpress

UPD от 25-07-2017: я не поддерживаю данный плагин. Рекомндую: http://ifish2.ru/quotes-collection-dlya-vyvoda-sluchai-nyh-tsitat-zapisei/

Буквально за час набросал для знакомого плагин, выводящий случайную фразу. Получилось просто до безобразия... решил поделиться.

Итак, если вы у себя на сайте хотите сделать вывод случайной фразы, то:

I) Оригинальная версия

  1. Скачайте этот архив (без виджета) или этот (с виджетом) с плагином
  2. Распакуйте архив во временную папку. Архив содержит 2 файла: phrase.php (сам плагин) и phrase.txt (файл с фразами).
  3. В папке, где установлен Wordpress, в подпапке /wp-content/plugins создаете папку с произвольным названием, например 'wp-alib-phrase'
  4. В только что созданную папку переписываете файл phrase.php из временной папки
  5. В корень сайта переписываете файл phrase.txt из архив
  6. Наполняте файл phrase.txt нужными фразами, ненужные удаляете
  7. Активируете плагин Alib.Spb Random Phrase через панель управлени
  8. В то место на конкретной страничке, куда надо вывести фразу, пишете {alib_random_phrase} - эта переменная будет заменена на случайную фразу из файла.

Настройка и замечания.

  1. Если требуется, чтобы этот файл phrase.txt лежал в другом месте, то открываете файл phrase.php любым текстовым редактором и изменяете переменную $alib_random_phrase_fname. Имете в виду, что путь пишется абсолютный, то есть запись $_SERVER['DOCUMENT_ROOT'].'/phrase.txt' говорит о том, что файл надо искать в корне, а $_SERVER['DOCUMENT_ROOT'].'/wp-content/plugins/phrase/phrase.txt' - в папке /wp-content/plugins/phrase
  2. Файл phrase.txt должен быть закодирован в UTF-8 без BOM. Если этого не сделать, то на выводе будут одни "квадраты".
  3. Пустые строки в файле phrase.txt при обработке игнорируются.
  4. Плагин намеренно сделан простым - для того, чтобы вывод можно было "обернуть" в html теги, вписать в любое место и т.д. Никаких админок, виджетов и проч. не планируется - времени нет и смысла не вижу :)

UPD (5.11.2010):  Можно использовать альтернативный способ вызова плагина: прямой вызов функции. В этом случае там, где надо вывести случайную фразу, пишем:

<?php print alib_random_phrase_back('{alib_random_phrase}'); ?>Основной способ рекомендуется использовать в постах, и вообще в зоне видимости the_content - см. Wordpress Codex. Второй способ позволяет вывести случайную фразу вообще где угодно, хоть в хидере. Но! Он представляет собой достаточно устойчивый "костыль", так как основывается на том факте, что WP сначала загружает все плагины, а потом манипулирует шаблоном. Стоит разработчикам WP поменять этот механизм - и альтернативный способ работать перестанет.

UPD (29.04.2011): Сделал виджет. Если будете использовать версию с виджетом, то старую версию (без виджета) надо предварительно удалить.

Удачного использования!

II) Версия плагина от Владимира Кокарева.

Отличается от оригинальной тем, что в оригинальной версии фраза выводится один раз на страницу, и изменяется при перезагрузке (то есть каждый раз при переходе по страницам выводится новая фраза). В версии плагина от Владимира фраза выводится один раз на сайт в сутки и есть ограничение на количество фраз - не более 365. В остальном - все то же самое (установка). Ссылка для загрузки.

Две версии плагина (моя и Владимира) будут конфликтовать - поэтому выбирайте ту, что вам больше подходит.

Неудобство addslashes в php

Просмотров: 2194Комментарии: 0
Alib.spb.ru

Для корректной работы с базами данных в php предусмотрена чудесная функция: addslashes. Делает она одну-единственную, но очень полезную вещь: экранирует кавычки слешами так, чтобы БД при работе со строками, где встречаюьтся кавычки, отрабатывала корректно.

Пример: допустим, в php-скрипт в переменной $_POST['val'] пришло значение Hello, "World"!!!

После обработки addslashes в этой переменной будет содержаться Hello, \"World\"!!! ,что гарантирует, что запрос к БД вида INSERT INTO table_name SET value="Hello, \"World\"!!!" будет выполнен корректно.

Пока вроде все красиво :) Проблема же состоит в том, что при разработке интерфейсов, в которых требуется частое редактирование данных, слеши накапливаются: при следующем "прогоне" через addslashes строа Hello, \"World\"!!! превратится в Hello, \\"World\\"!!! и так далее.

Решений может быть несколько.Можно, например, в скрипте "отлавливать" наличие экранированных слешей, "разэкрантировать" их обратно. Но недавно меня осенило. Можно заменять кавычки соответствующими символами html, которые и в базу пойдут без проблем, и отображаются как надо. Итогом размышлений стала следующая php-функция:

function safesql_str_code($b='')
{
if ($b=='') {return;}
$b = str_replace('"', "&#034",$b);
$b = str_replace("'", "&#039",$b);
$b = str_replace("`", "&#096",$b);
$b = str_replace("'", "&#145",$b);
$b = str_replace("'", "&#146",$b);
$b = str_replace(""", "&#147",$b);
$b = str_replace(""", "&#148",$b);
return $b;
}

"Прогнав" через эту функцию тот же Hello, "World"!!! , мы получим следующую строку: Hello, &#034World&#034!!! , которая спокойно включается в запрос к БД, и не вызывает ошибок.

PS. Для того, чтобы поправить то, что есть в mysql, я использовал функцию mysql REPLACE

UPDATE table_name SET val_field = REPLACE( val_field ,'\\\\"','&#034');
UPDATE
table_name SET val_field = REPLACE( val_field ,'\\\"','&#034');
UPDATE
table_name SET val_field = REPLACE( val_field ,'\\"','&#034');
UPDATE
table_name SET val_field = REPLACE( val_field ,'\"','&#034');

Этих запросов должно быть выполнено столько раз, сколько максимально есть слешей в тексте.

Плагин для WordPress – “Alib 404 notify”

Просмотров: 1592Комментарии: 3
Wordpress

"Alib 404 Notify" - простой плагин, который базируется на коде плагине "404 Notifier" от Alex King (http://alexking.org/projects/wordpress). Принцип работы плагина очень прост - после установки он посылает письмо администратору сайта в случае, если произошла 404 ошибка. В отличие от оригинального плагина, письмо шлется только после перехода на 404 страницу, а не при срабатывании любого редиректа. (У меня на сайте, в связи с переходом на новый движок, активно используется 301 редирект, на который и реагировал "404 Notifier" от Alex King).

Установка:

Распакуйте и скопируйте файл "404.php" в "/plugins/alib_404" папку на сайте. Активируйте плагин через менеджер плагинов Wordpress. После этого включите строку:

<?php if (function_exists('alib_404')) {alib_404();} ?>

последней строкой в файл "404.php" Вашей темы. Все:)

Скачать (версия 1 от 15.03.2008)