Производство фотообоев в Новосибирске. Интернет магазин фотообоев. Изготовление - один день! Каталог 10 000 изображений!
20 Ноябрь 2013

Javascript — передача параметра в модальное окно fancybox

Вроде элементарное ТЗ — а промучался полдня.
При клике на «купить» — должно появляться модальное окно «Товар добавлен в корзину» «продолжить покупки» «оформить заказ»
В качестве модального окошка решено использовать скриптик JancyBox — и центрируется и затемняет, в общем всё устраивает!
кроме одного НО! — при нажатии на «купить» товар сначала должен «упасть» в корзину, т.е. нужно вызвать соответствующую функцию с передачей в качестве параметра ID товара

Так не пашет! — даёт «undefined»

Как вариант — повесить сначала click — в нём сделать нужный вызов, а потом открыть окно имитацией клика
$(«#id2»).trigger(‘click’);

Но почему-то в таком варианте модальное окно выводится сначала вверх потом только центрируется. Облом!

Гуглим далее — нашел свою обработку Тайтла с помощью собственной фукнции вешаемой параметром TitleFormat
Внутри которой дёрнуть rel можно следующим образом $(currentArray[currentIndex]).attr(‘rel’)

Т.е. вместо задания тайтла я получу ID и вызову нужную мне функцию.

На этом «мудрёном» варианте и остановлюсь — через задний проход конечно, но работает 🙂

P.S.
С вопросом по решению проблемы я создал 3 поста на форумах
phpclub.ru
javascript.ru/forum/
forum.searchengines.ru

На первом ноль реакции, на втором попытались помочь — но безуспешно
На javascript.ru/forum — 200 % попадание в цель!
На основе моего вопроса был создан готовый рабочий пример! В личке вебмастер ответил на мой вопрос — откуда именно инфа с указанием прямых ссылок на нужный мне пример в мануале!

Собственно, как обычно
Рони ответил в ПМ — за что ему ещё раз огромное спасибо!

Как обычно — всё гениальное просто — «Meditate on documentation!»

Дока тут http://fancyapps.com/fancybox/
Пример с передачей ID тут http://jsfiddle.net/Se8Yu/

рубрики: Javascript, Полезности, Программирование, Сайтостроение | Комментарии (0)

18 Ноябрь 2013

Как найти php скрипт — mail спамер?

Утро понедельника не задалось — при прочтении утренней почты обнаруживаю абузу с датацентра на один из моих серверов 🙁
При ознакомлении выясняется, что мне закинули какой то «сифак», который благополучно спамит добропорядочных граждан «via sendmail with smtp»

Предположив, что сиё действо выполняется с какого-то php скриптика сразу же встал вопрос о методе его поиска! Собственно — как?
Через мои защиты он уже каким то образом пролез, значит моими регулярками его не выцепить!
В идеале фукнцию отправки почты логировать — а там то я бы его по факту обнаружил!

Оказывается, начиная с PHP 5.3 такая возможность присутствует! и имея ей MAILHEAD

Пересобираем php с указанным выше патчем:

(инструкция для FreeBSD):
смотрим какая версия PHP
#php -v

у меня 5.3
#cd /usr/ports/lang/php53
#make config
отмечаем [X] MAILHEAD Enable mail header patch
#make
как все соберется без ошибок
#make deinstall
#make install clean

Далее в php.ini указываем куда писать лог
mail.log = /var/log/php-mail.log

рестартим веб сервер и делаем тестовую отправку

проверяем лог — если скрипт попал в лог — всё окей

Далее ловим гада.

Добавлю ещё выдержку со статьи:
Чтобы найти источник спам-рассылки на сайте, нужно в файле php.ini включить логирование рассылаемой почты директивами:

mail.add_x_header = On
mail.log = <путь до вашего пользовательского каталога>/php-mail.log

В моей ситуации я прикручивал эту фишку к виртуальной машине Битрика, с несколькими хостами на одной виртуалке.
На каждый хостинг была включена openbasedir соответственно путь для почтовых логов нужно определять внутри openbasedir и задавать отдельно для каждого сайта,
поэтому выставлять значения нужных параметров я решил не в php.ini а в конфиге аппача для каждого сайта

php_admin_value mail.add_x_header On
php_admin_value mail.log <путь до вашего пользовательского каталога>/php-mail.log

PS
Быстро удалить спам письма из очереди

find /var/spool/clientmqueue/ -type f -delete
find /var/spool/mqueue/ -type f -delete

там же наблюдаем за новыми отправками

рубрики: security, Администрирование, Полезности, Программирование | Комментарии (1)

18 Ноябрь 2013

В индексе Яндекса только главная страница

Уже не в первый раз сталкиваюсь с пока не ясной мне проблемой — Яндекс ставит в выдачу только главную страницу сайта.
Вот и сейчас — сайтик белый, нигде не был замечен с плохой стороны — никакой рекламы, ссылок, попапов и прочей гадости.
Нужно продвинуть по запросу Ремонт ТНВД — а в индексе только морда, значит Яше явно что-то не нравится в сайте!
Вопрос — что именно?
В Я.Вебмастер показывает, что загружено 27 страниц, в выдаче одна.
Почему — ХЗ 🙁

Будет информация — напишу сюда. А пока — вопрос актуален !

рубрики: SEO | Комментарии (1)

14 Ноябрь 2013

Битрикс — иерархическое многоуровневое меню «гармошка»

Итак, очередное ТЗ для Битрикс CMS — иерархическое многоуровневое меню «гармошка».
Реализацию сей задачи я конечно-же задумал с использованием какого-нить плагинчика с использованием jQuery (а куда без него в наше время ?), немного поиска и небольшой,
вполне устраивающий меня плагин найден — liHarmonica

Демка пашет, всё вроде бы просто, НО — как мне вытащить из Битрикса секции и иерархическом порядке?

Готового подходящего решения в API я не нашел, подходит только CIBlockSection::GetList() и рекурсивная функция по получению подсекций в конкретной секции.
Пихать непосредственно CIBlockSection::GetList() в рекурсивную фукнцию — убийство т.к. для каждой секции будет своё обращение в БД — слишком большая нагрузка для получения меню.

Как решение — сначала «дёрнуть» все секции в массив, и в дальнейшем работать уже с ним.
Ну для правильного кэширования всего задуманного, нужно будет запихать всё в компонент.

Сказано — сделано 🙂
Код в студию

component.php

template.php

P.S.
Блин, всего несколько строчек кода — а убил полдня на менюшку эту.
Кому интересно — качнуть готовый компонент можно тут, посмотреть реализацию тут.
(пути до js и css подкорректировать только нужно — у меня это в нескольких шаблонах используется, поэтому выносил в корень).

рубрики: Bitrix, Программирование | Комментарии (1)