bitrix

Если нужно сделать User Update и сразу Authorize(id)

Задача:

Если обновлять пользователя (в моем случае ajax) и пытаться сразу авторизовать по ID, это не получится сделать или будет выкидывать после 1 хита.

Решение:

$user = new \CUser();
$resultUpdate = $user->Update($userId, $filedsUpdate);
if ($resultUpdate) {
    $user->Authorize($userId);
    $user->CheckAuthActions(); // вся соль тут
}

Bitrix на MAMP Pro и mod_rewrite

По умолчанию почему то не заработал ЧПУ на сайте, apache не хотел читать .htaccess, заходим FIle -> Edit Template -> Apache -> httpd.conf

; у меня строка 205

<Directory />
    Options Includes
    AllowOverride All ; меняем на All
</Directory>

AllowOverride директива

Синтаксис: AllowOverride override override …
Значение по умолчанию: AllowOverride All
Контекст: каталог
Состояние: основное

Когда сервер находит .htaccess файл (как определено AccessFileName) ему необходимо знать какие директивы, объявленные в том файле могут отменять ранее утановленную информацию доступа.

Эта директива может быть установлена в None, т.е. чтобы сервер не читал файл .htaccess. Если она установленна в All — сервер будет допускать все директивы .htaccess файла. Возможны следующие одно или несколько значений:

AuthConfig — допускает использование директив разрешения (AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, require, и т.д..).

FileInfo — допускает использование директив, управляющих типами документа (AddEncoding, AddLanguage, AddType, DefaultType, ErrorDocument, LanguagePriority, и т.д..).

Indexes — допускает использование деректив управления индексацией каталога(AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName, и т.д..).

Limit — допускает использование основных директив управления доступом (allow, deny и order).

Options — допускает использование директив, управляющих специфическими особенностями каталога (Options и XBitHack).

Создаем опции для пользователя. 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

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

tinymce

TinyMCE - Javascript WYSIWYG Editor

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

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


Continue reading

Bitrix + svn + ssh, рабочий процесс над крупным проектом

bitrix svn, bitrix apiПоделюсь опытом по организации работы над крупным проектом команды удаленных разработчиков.

Итак что мы имеем, а имеем мы большой проект на Битриксе, в редакции бизнес. Сначала все так сложилось что все работали прямо на ftp. Как это не прискорбно но это так, и в принципе никто не кому не мешал. Работало примерно 3-4 человека. Но времена меняется, кто-то уходит из проекта по каким то причинам, кто-то приходил.

В связи с этим код проекта стал не управляем и расти как снежный ком. Получилось так что порядка не было вообще, кто что считает нужным то и пишет. И вот я задался целью что-то с этим сделать, наладить работу как нужно, как правильно.

Что для меня правильно, это в первую очередь svn, и полный контроль кода. Так как меня как-то само собой выдвинули вперед, наверное потому что я самый старый на проекте (в смысле больше всех работаю с ним). Это не важно в принципе для меня, я за дело болею, суть в другом.

Итак какие шаги мы пытались сделать к нашей схеме работы.

Continue reading