php

Создаем опции для пользователя. cохранение настроек страницы для авторизованных пользователей [bitrix api]

В битриксе есть не задокументированный инструмент для весьма интересной задачи. Допустим нам нужно открыть ту страницу сайта на которой последний раз был пользователь. Или настроить фильтры на списках элементов, т.е. задача где-то хранить последние значения по нужным движениям пользователя на сайте, чтобы когда он вернулся восстановить прежний вид. Это бывает нужно не так часто но нужно иметь ввиду что для этого есть таблица и API с которой вполне можно работать не изобретая своего велика.

Итак класс находится в файле require_once($_SERVER[«DOCUMENT_ROOT»].BX_ROOT.»/modules/main/classes/».$GLOBALS[«DBType»].»/favorites.php»);

Основные методы записи и чтения

function CUserOptions::SetOption($category, $name, $value, $bCommon=false, $user_id=false)

function CUserOptions::GetOption($category, $name, $default_value=false, $user_id=false)

В классе есть еще методы, подробно все освещать не буду так как хочу попробовать использовать этот класс, и написать подробно как и где его можно применять.

2 титла на странице как?… Элементарно Ватсон…

Зачастую юные разработчики очень не внимательно относятся к документации тех средств с которыми они работают. В этом случае начинают появляться мутированные строки кода в web приложении. Это очень плохо, это просто очень очень плохо.

Конечно все через это прошли, и на клепали свою десятку, а то и сотню костылей дабы заработало сцуко.

Continue reading

Парсинг прямых ссылок

Задача состоит в том чтобы пропарсить контент и заменить все прямые ссылки вида

http://yunaliev.ru/

на http://yunaliev.ru/redirect.php?goto=http://yunaliev.ru/

В WordPress есть плагины для этого, которые делают все автоматически. Я не смотрел их код и как там реализовано не могу сказать, возможно чуть позже найду время для этого. В битриксе это нет к сожалению, по крайне мере я этого не нашел в стандартном API классе парсинга для форума и доп функциях для работы с текстом и html. Возможно решение не самое лучшее, но оно работает.

Continue reading

Кэш [bitrix api]

Хочу выложить маленький снипет кода для кэширования.

Кэш это наше все. У битрикса есть система кэширования компонентов, она немного заточена под сами компоненты, в этом примере я не буду рассматривать. У нее есть свои плюсы и свои минусы, я расскажу о них чуть позже.

Этот код можно использовать если вы пишите на голом API битрикса обвертки для какого -то сложного функционала.

Continue reading

XML парсер битрикса [bitrix api]

Все больше и больше меня раздражают деятели которые любят лепить свои поделки. Я понимаю что не всегда есть документация, примеры и обсуждения на форуме. Хоть код и был уже показан в одном из постов, я хочу подробнее описать как работать с существующей библиотекой битрикса.

Continue reading

Eclipse code completion php

Итак это скорее быстрая заметка чем пост, но думаю будет полезна. Иногда происходит так что при установки новой версии PHP Development Tools на новый Eclipse, напрочь отказывается работать   code completion из под RSE.

Решение есть, чтобы он видел core функции т.е. базовые, нужно зайти в RemoteSystemsTempFiles открыть .project и вместо <natures>тут что-то было тоже</natures> добавить

<natures>
<nature>org.eclipse.php.core.PHPNature</nature>
<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
</natures>

После чего перезагрузить Eclipse.


TinyMCE + 1с-Битрикс

tinymce

TinyMCE - Javascript WYSIWYG Editor

Пост скорее для новичков битрикса. В нем я хочу показать как просто и легко можно создать компонент. Мы сделаем компонент по выводу виз редактора (WYSIWYG). К сожалению в стандартной поставке упрощенный редактор, мягко говоря не всегда удобен. Я придерживаюсь мнения что нужно чуть больше уделять внимания интерфейсам которые используют именно пользователи сайта, битрикс хоть и что-то сделал для этого, но как всегда не фундаментально. Я это называю как пускание пыль в глаза. Но да ладно, это все понятно, да и написать хороший редактор не очень то и просто. Мы будет интегрировать популярный редактор

TinyMCE + 1с-Битрикс.


Continue reading

Находим интервал в днях между датами (php)

Данная задача встречается очень редко, но когда она встречается приходится искать в интернете. Казалось бы что все просто, но не очень часто приходится работать с датами. Решил записать чтобы не искать потом и все равно приходить в итоге к этому простому решению.


<?
//25.11.2009
//30.11.2009
$sMetaDateTo   = mktime(0, 0, 0, $arDateTo[1], $arDateTo[0], $arDateTo[2]);
$sMetaDateFrom = mktime(0, 0, 0, $arDateFrom[1], $arDateFrom[0], $arDateFrom[2]);

/**
* От большей метки времени т.е. от даты окончания периода отнимает
* метку времени начала периода и получаем интервал в секундах, чтобы найти
* интервал в днях просто делим это значени на 86400 - это кол-во секунд в сутках
* и получаем период в днях между датами
*/
$sMeta = ($sMetaDateFrom - $sMetaDateTo) / 86400;

// 5
echo intval($sMeta);

?>

1С-Битрикс, прикручиваем капчу к любой форме

Возможно на мой блог будут заходить новички по работе c битриксом, поэтому продолжаю выкладывать полезные примеры и скрипты. На этот раз это простая web форма с капчей. Это как-то давно мне высылал супорт битрикса, думаю все понятно, если что можно и комент написать :)

Continue reading