1С-Битрикс: Управление сайтомНа главную страницу
Клиентам
Маркетплейс
Партнерам
Разработчикам
Интеграция с 1С
Идея?


Личный кабинет
Авторизоваться
Регистрация
(войти) Корзина
Логин:

Пароль:



Забыли свой пароль?
Регистрация
Войти как пользователь:
Войти как пользователь
Вы можете войти на сайт, если вы зарегистрированы на одном из этих сервисов:
ВКонтакте
Мой Мир
Twitter
Facebook
Google
Livejournal
Яндекс
Rambler
Mail.Ru
Liveinternet
Blogger
OpenID
Используйте вашу учетную запись VKontakte.ru для входа на сайт.
Используйте вашу учетную запись Мой Мир@Mail.ru для входа на сайт.
Используйте вашу учетную запись на Twitter.com для входа на сайт.
Используйте вашу учетную запись на Facebook.com для входа на сайт.
Используйте вашу учетную запись Google для входа на сайт.
.livejournal.com
@yandex.ru
@rambler.ru
@mail.ru
http://www.liveinternet.ru/users/ /
.blogspot.com
OpenID:
  • Документация
    • Управление сайтом
    • Корпоративный портал
    • .NET Forge CMS
    • Отраслевые решения
    • Marketplace
    • Аренда приложений (SaaS)
  • Обучение и сертификация
    • Онлайн-курсы и сертификация
    • Учебные центры
    • Мое обучение
    • Учебные видеоролики
  • Центр поддержки
    • Поддержка
    • FAQ
    • Мои обращения
  • Сообщество
    • Блоги Битрикс
    • Блоги веб-разработчиков
    • Общие форумы
    • Веб-разработчики
      • Моя страница
      • Мои сообщения
      • Группы
      • Найти коллег
  • Cтатьи
    • Архив
Главная / Общение / Сообщество разработчиков / Шоков Алексей / Блог
  • Новая версия
  • Работа с характеристиками
  • Выгрузка скидок
  • Разбивка на каталоги
  • Свойства и изображения
  • Производительность

Шоков Алексей: Блог

Профиль
Друзья
Группы
Блог

Шоков Алексей

Дата последнего входа: 17.05.2012 17:13:51
Город: Москва
Наименование компании: Softline

LDAP-аутентификация «для бедных»

0
Алексей Шоков
17.07.201015:4117.07.2010 15:41:27
Представим ситуацию: у вашей конторы есть много сайтов на Битриксе, есть другие внутренние ресурсы и есть сотрудники (ещё бы). Сайты различные по редакциям — начиная от Старта и далее.

Какие могут быть варианты решения?

Читать подробнее...

Алексей Шоков
17.07.201015:4117.07.2010 15:41:27
Просмотров:2011 Комментариев:0 0
Теги: authentication, ldap

Сверить пароль? Нет ничего проще!

1
Алексей Шоков
15.01.200913:2115.01.2009 13:21:27
Точнее, если бы это было так просто, я бы об этом не писал smile;)

Задача

Представим такую задачу: нужно разработать форму, изменения из которые будут приняты только в том случае, если пользователь правильно введёт свой текущий пароль. Пример такой формы можно увидеть, к примеру, на free-lance.ru (Настройки → Основные настройки).

Проблема

Предположим, что проблем с у формой у нас не возникло. Но вот беда, как проверить пароль из формы на соответствие текущему паролю пользователя? К сожалению, стандартной функции в API Битрикса я для этого не нашёл.

Всё проблемы имеют решение

Сначала я подумал, что в поле PASSWORD Битрикс хранит простой MD5-хеш от пароля. Но всё оказалось не всё так-то просто smile:)

Оказывается, Битрикс прибявляет к паролю так называемую "соль" (подробности — в спец. литературе). Покопавшись в метода CUser::Login() можно узнать и алгорим сверки. А дальше дело за маленьким: реализовать этот алгорим у себя.

Вот то, что получилось у меня:
Код
/**
 * Проверяем, является ли $password текущим паролем пользователя.
 *
 * @param int $userId
 * @param string $password
 *
 * @return bool
 */
function isUserPassword($userId, $password)
{
    $userData = CUser::GetByID($userId)->Fetch();

    $salt = substr($userData['PASSWORD'], 0, (strlen($userData['PASSWORD']) - 32));

    $realPassword = substr($userData['PASSWORD'], -32);
    $password = md5($salt.$password);

    return ($password == $realPassword);
}

Эх, если бы такой метод бы в API...
Алексей Шоков
15.01.200913:2115.01.2009 13:21:27
Просмотров:1513 Комментариев:4 1

Выводим свойства элемента инфоблока правильно

2
Алексей Шоков
19.12.200811:2719.12.2008 11:27:05
Инфоблоки — это, наверное, самый используемый модуль. Ни один сайт на Битриксе не обходится без него. Это очень гибкий инструмент, но чтобы воспользоваться всей этой гибкостью, придётся хорошенько изучить API. Но официальная документация, как мы знаем, описывает не всё моменты smile;)

Задача

И так, задача, которая встаёт перед каждым разработчиком, который использует информационные блоки — выбрать свойство(-а) элемента инфоблока и вывести его на экран. Первая половина дела банальна: метода класса CIBlockElement подробно описаны в документации. А вот со второй половиной (особенно, если свойство сложного типа) уже интереснее smile:)

Решение задачи smile:)

Возьмём свойство типа «HTML\текст». Для этого свойства нельзя просто вывести его значение (ключ «VALUE»), т.к. это — массив, содержащий,«сырое» значений и его тип (HTML или текст). Нет, мы может, конечно, сами отформатировать «сырое» значение в соответствии с его типом, но в голову закрадывается сомнение — неужели это не реализовано в самой CMS? Как же работает с произвольными свойствами компонент bitrix:news?

Собственно, из кода этого самого bitrix:news мы и сможем узнать, как же он так хитро работает smile:) А ничего хитрого-то, оказывается, и нет! Всего один вызов метода GetDisplayValue класса CIBlockFormatProperties:
Код
$arResult['DISPLAY_PROPERTIES'][$pid] = CIBlockFormatProperties::GetDisplayValue($arResult, $prop, 'news_out');

И всё! Теперь в шаблоне мы можем писать так:
Код
echo $element['PROPERTY_CODE']['DISPLAY_VALUE'];

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

Удачного изучение недокументированных функций системы smile;)
Алексей Шоков
19.12.200811:2719.12.2008 11:27:05
Просмотров:5725 Комментариев:9 2

Модифицируем постраничную навигацию

0
Алексей Шоков
17.12.200815:4417.12.2008 15:44:31
До недавнего времени меня вводила в недоумение постраничная навигация. Нигде в документации не описано, как поменять шаблон для неё! Но, если руки растут из того места, то во всём можно разобраться самому. А чтобы другим не пришлось тратить на это время, я решил написать эту заметку smile;)

Читать подробнее...

Алексей Шоков
17.12.200815:4417.12.2008 15:44:31
Просмотров:4843 Комментариев:14 0
Теги: system.pagenavigation

Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».
 
Технологии Эрмитаж
BitrixMobile
Автокеширование
SiteUpdate
Производительность Виртуальная машина
Веб-окружение
Результаты тестов
Выбрать хостинг
Веб-кластер
Безопасность Проактивная защита
Веб-антивирус
Аутентификация

Контакты Поиск Карта сайта
Телефон: +7 (495) 229-14-41
Оставайтесь с нами: Facebook Twitter Habrahabr VKontakte Developers Google 1+
Как распознать QR код?Контакты QR


© 2001-2012 «Битрикс», «1С-Битрикс». Работает на 1С-Битрикс: Управление сайтом.
Английская версия Немецкая версия