Галерея PikaChoose и навигация интегрированного Fancybox

Ну что, начнемс. По запросу PikaChoose (не путать с Pok?mon-ом) в google.com или yandex.ru, вы, мои дорогие (я меня паранойя, что блог читают еще люди окромя меня), так вот, по этому запросу вы найдете много всякого полезного. И то, что это плагин для слайд-шоу с массой возможностей, и то что он интегрируется с Fancybox, и то что можно прикрутить jCarousel и ваще — сказка, а не плагин для обыкновенных задач.

Все это хорошо, но вот я добавлю все таки отсебятины, ну не совсем отсебятины, но все же.

Узнать больше


Рейтинг (звезды) в выдаче Google.

Раз пошла такая лабуда, выложу схему для красивого показа рейтинга в выдаче Google. Ну это такие звездочки с указанием количества оценок проголосовавших за вашу страницу (естественно, если он присутствует у вас на сайте).

Суть да дело, ближе к телу:

<div itemscope itemtype="http://schema.org/Product" >
	<meta itemprop="name" content="название страницы" >
	<meta itemprop="description" content="описание страницы" >
	<meta itemprop="url" content="http://url.com/url/" >
	<div itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating" >
	<meta itemprop="bestRating" content="5" >	<!-- максимально возможная оценка -->
	<meta itemprop="ratingValue" content="2,45" >	<!-- текущий/средний рейтинг -->
	<meta itemprop="ratingCount" content="85" >	<!-- количество проголосовавших -->
	</div>
</div>

Ну где-то так.


Красивые URL в выдаче Google. WordPress, Breadcrumb NavXT.

Такс, берем плагин для хлебных крошек «Breadcrumb NavXT», ставим и лезем в настройки.

Установка

  • Либо качаем плагин с офф.сайта, распаковываем в папку с плагинами (wp-content/plugins) и активируем в WordPress.
  • Либо в WordPress-е находим плагин «Breadcrumb NavXT» и ставим.

Тут все пучком.

Далее нам нужно что-бы эти самые крошки выводились на сайте в нужном нам месте, для этого мы подредактируем соответствующий файл нашей замечательнейшей темы (как правило, header.php).
Узнать больше


Пару полезных вещей на PHP

Что бы не забыть, пару функций

Удалить из массива элементы с определенным значением

$arr = array(2, 3, 4, 2, 5, 2);
function delEl($arr, $del) {
   foreach($arr as $val)  { if($val !== $del) $newArr[] = $val; }
   return $newArr;
}
// Пример
$checkDelEl = delEl($arr, 2);  // Удалим все "2" из массива $arr
print_r($checkDelEl);  // Array ( [0] => 3 [1] => 4 [2] => 5 )

Выковырять ссылки изображений

preg_match_all('/<img[^>]+src=([\'"])?((?(1).+?|[^\s>]+))(?(1)\1)/',$content,$matches);
print_r($matches[2]);

Выводим результат из массива:

if ($matches[2][0]!='') {
   echo "<img src='".$matches[2][0]."' alt=''/>";
}

где:
$content — может быть спарсеный код который содержит изображения.

Узнать больше


Генератор паролей

<?php
function gen_pass($n) {
	$arr = array('q','w','e','r','t','y','u','i','o','p','a','s','d','f','g','h','j','k','l',
		'z','x','c','v','b','n','m','Q','W','E','R','T','Y','U','I','O','P','A','S','D','F',
		'G','H','J','K','L','Z','X','C','V','B','N','M',
		'1','2','3','4','5','6','7','8','9','0');
	$pass = '';
	for($i=0;$i<=$n;$i++) {
		$index = rand(0, count($arr) -1);
		$pass .= $arr[$index];
	}
	return $pass;
}
 
	echo gen_pass(5); //указываем сколько символов в пароле
?>

Пару полезных запросов в MySQL

Пару полезных запросов в дополнение к предыдущим записям: Выбор строк из диапазона дат в MySQL и Операции с колонками в MySQL.

Замена текста в поле на нужное

UPDATE name_table SET column = REPLACE(column, 'old_text_column', 'new_text_column');

где:
name_table — имя таблицы над которой производим операцию;
column — имя колонки над которой производим операцию;
new_text_column — новый текст для замены;
old_text_column — старый текст который нужно заменить.
Узнать больше


Получение суммы прописью

/**
 * Возвращает сумму прописью
 * @author runcore
 * @uses morph(...)
 */
function num2str($num) {
    $nul='ноль';
    $ten=array(
        array('','один','два','три','четыре','пять','шесть','семь', 'восемь','девять'),
        array('','одна','две','три','четыре','пять','шесть','семь', 'восемь','девять'),
    );
    $a20=array('десять','одиннадцать','двенадцать','тринадцать','четырнадцать' ,'пятнадцать','шестнадцать','семнадцать','восемнадцать','девятнадцать');
    $tens=array(2=>'двадцать','тридцать','сорок','пятьдесят','шестьдесят','семьдесят' ,'восемьдесят','девяносто');
    $hundred=array('','сто','двести','триста','четыреста','пятьсот','шестьсот', 'семьсот','восемьсот','девятьсот');
    $unit=array( // Units
        array('копейка' ,'копейки' ,'копеек',	 1),
        array('рубль'   ,'рубля'   ,'рублей'    ,0),
        array('тысяча'  ,'тысячи'  ,'тысяч'     ,1),
        array('миллион' ,'миллиона','миллионов' ,0),
        array('миллиард','милиарда','миллиардов',0),
    );
    //
    list($rub,$kop) = explode('.',sprintf("%015.2f", floatval($num)));
    $out = array();
    if (intval($rub)>0) {
        foreach(str_split($rub,3) as $uk=>$v) { // by 3 symbols
            if (!intval($v)) continue;
            $uk = sizeof($unit)-$uk-1; // unit key
            $gender = $unit[$uk][3];
            list($i1,$i2,$i3) = array_map('intval',str_split($v,1));
            // mega-logic
            $out[] = $hundred[$i1]; # 1xx-9xx
            if ($i2>1) $out[]= $tens[$i2].' '.$ten[$gender][$i3]; # 20-99
            else $out[]= $i2>0 ? $a20[$i3] : $ten[$gender][$i3]; # 10-19 | 1-9
            // units without rub & kop
            if ($uk>1) $out[]= morph($v,$unit[$uk][0],$unit[$uk][1],$unit[$uk][2]);
        } //foreach
    }
    else $out[] = $nul;
    $out[] = morph(intval($rub), $unit[1][0],$unit[1][1],$unit[1][2]); // rub
    $out[] = $kop.' '.morph($kop,$unit[0][0],$unit[0][1],$unit[0][2]); // kop
    return trim(preg_replace('/ {2,}/', ' ', join(' ',$out)));
}

Узнать больше


Проблемы с прозрачными изображениями в Nivo Slider

В одном из проектов я использовал Nivo Slider и столкнулся с такой проблемкой, как прозрачные изображения (png).  То есть, при смене одного изображения на другое, у нас оставалось предыдущее… как бы наслоение предыдущего на следующее. К сути. Открываем файл jquery.nivo.slider.js и ищем кусок кода:

if(!nudge){
	slider.css('background','url("'+ vars.currentImage.attr('src') +'") no-repeat');
} else {
	if(nudge == 'prev'){
		slider.css('background','url("'+ vars.currentImage.attr('src') +'") no-repeat');
	}
	if(nudge == 'next'){
		slider.css('background','url("'+ vars.currentImage.attr('src') +'") no-repeat');
	}
}

Узнать больше


Исправить YouTube IFrame Overlay и Z-Index

По умолчанию код для вставки, который предлагает YouTube выглядит следующим образом:

<iframe title="YouTube video player" src="http://www.youtube.com/embed/lZqrG1bdGtg" frameborder="0" width="640" height="390"></iframe>

Немного его модифицируем и получим желанный результатос:

<iframe title="YouTube video player" src="http://www.youtube.com/embed/lZqrG1bdGtg?wmode=opaque" frameborder="0" width="640" height="390"></iframe>

Мы просто добавили небольшой фрагмент «?wmode=opaque» в конец URL-адреса и все прекрасно заработало.
Узнать больше


Удалить из документа все HTML-теги

<?php 
// $document на выходе должен содержать HTML-документ. 
// Необходимо удалить все HTML-теги, секции javascript, 
// пробельные символы. Также необходимо заменить некоторые 
// HTML-сущности на их эквивалент. 

$search = array ("'<script[^>]*?>.*?</script>'si",  // Вырезает javaScript 
                 "'<[\/\!]*?[^<>]*?>'si",           // Вырезает HTML-теги 
                 "'([\r\n])[\s]+'",                 // Вырезает пробельные символы 
                 "'&(quot|#34);'i",                 // Заменяет HTML-сущности 
                 "'&(amp|#38);'i", 
                 "'&(lt|#60);'i", 
                 "'&(gt|#62);'i", 
                 "'&(nbsp|#160);'i", 
                 "'&(iexcl|#161);'i", 
                 "'&(cent|#162);'i", 
                 "'&(pound|#163);'i", 
                 "'&(copy|#169);'i", 
                 "'&#(\d+);'e");                    // интерпретировать как php-код 

Узнать больше