Как обеспечить чёткую идентификацию пользователей Битрикса в стороннем приложении?

ifedorov

Новичок
Как обеспечить чёткую идентификацию пользователей Битрикса в стороннем приложении?

Здравствуйте!
У нас на сайте (Битрикс - редакция "Бизнес") есть множество самодельных PHP-модулей выполнящих те или иные
функции, которых нам не хватало в стандартной поставке Битрикса...
Среди них есть и т.н. "Журнал доставок" в который попадают Заказы для доставки клиентам.
Проблема в том, что не удается обеспечить чёткую идентификацию пользователя/оператора Битрикса, их может
несколько одновременно работать с этой программой (запускаемой в Bitrix Frame).
Наш (бывший) веб-программист должен был обеспечить такую идентификацию, НО реально такая корректная идентификация происходит не всегда (даже после моих неоднократных правок кода! :), т.к. часто в заказах происходит установка статусов "Подтвержден клиентом" (от имени НЕ ТЕХ операторов что произвели это действия)!..
Таким образом хотелось бы понять (быть может есть готовые примеры) - как идентифицировать конкретного пользователя
Битрикса (например, привязав обработчик к нажатию кнопки) при условии что пользователей несколько одновременно
работают с этой сторонней PHP-программой?
(пример - если оператор Иванова отменила заказ из журнала доставки то в Битриксе,
если просто зайти в "Заказы" и найти этот заказ должно быть видно что именно она отменила заказ а не кто-то другой; ещё пример: оператор Петрова поставила заказ в журнал доставок на конкретную дату и соответсвенно в заказе должно быть видно что статус "Подтвержден клиентом" установлен у заказа именно Петрова в такое-то время) ну и т.п.
Всем заранее большое спасибо за ответы!
 

quad_4

Новичок
я думаю тебе помогут на форуме битрикса
здесь людей, разбирающихся в битриксе меньше и они ради тебя не будут в нем разбираться
 

Pigmeich

Новичок
[off]
Кстати, есть фишка, что на сайте битрикса валяется ссылка на данный форум.
[/off]
 

quad_4

Новичок
Компания «Битрикс» расширяет программу скидок профессиональным сообществам и предоставляет скидку 40% на программный продукт «Битрикс: Управление сайтом» для сообщества веб-разработчиков PHP Club.

Сообщество PHP Club существует уже более 6 лет и объединяет свыше 5 тысяч специалистов. На сегодняшний день PHPClub.ru - один из наиболее посещаемых ресурсов в среде программистов, профессиональных разработчиков, провайдеров и других PHP-специалистов. Задачи клуба – популяризация языка PHP и повышение качества проектов написанных на этом языке. PHP Club постоянно проводит конференции на темы, интересующие PHP-сообщество.

Все активные участники форума PHP Club получают возможность купить программный продукт «Битрикс: Управление сайтом» - универсальный инструмент для создания, поддержки и развития веб-проектов - со скидкой 40%. Скидку получают зарегистрированные участники форума PHPClub.ru со статусом «Активист» и выше. Статус «Активист» присваивается пользователям, опубликовавшим более 300 сообщений в форуме PHPClub.ru.
 

ifedorov

Новичок
Уточню - я хочу определить - какой конкретно пользователь допустим нажал какую-либо кнопку и в зависимости от этого обновить статусы. Сейчас это делается так:

Код:
$empstat=$_REQUEST['user_id'];
$db->Query("UPDATE b_sale_order SET PAYED='Y',STATUS_ID='F',EMP_STATUS_ID='{$empstat}',LOCKED_BY='NULL',DATE_LOCK='NULL',DATE_STATUS=NOW() WHERE ID='{$sorder}'");
Но это работает не корректно :(
 

cDLEON

Онанист РНРСlub
А ко мне как то обращалси чел один.Типа ты активист? Помоги мне битрикс со скидкой купить :D
ЗЫ, топикстартер, я сомневаюсь, что тебе здесь кто-нибудь поможет.
 

baev

‹°°¬•
Команда форума
ifedorov, 80 долларов США в час.
(У меня есть опыт работы с битрикс. Считаю вышеозначенную цену вполне нормальной платой за консультацию — включая компенсацию за моральный ущерб...)

Вообще, у битрикса отличная служба поддержки — Вы туда обращались?
 

ifedorov

Новичок
В одном форуме подсказали вроде решение... НО... Странно... Код:

Код:
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules_/main/include/prolog_before.php"); 
$empstat=$USER->GetID();
Работоспособный (проверял его в виде отдельного простого php файла).

А вот "вклинить" его в навороченный php файл не получается (перестает работать нормально).

Вот например участок кода из большого файла куда я хочу это вставить:

Код:
/**
 * Отмена заказа
 */
function CanceledOrder($sorder,$sreason)
{
global $db;

$iorder=intval($sorder);
if($sorder == (string)$iorder)
	{
	$f=$db->QueryFirst("SELECT id,ideliv FROM md_delivery_items WHERE sorder='{$iorder}' LIMIT 0,1");
	if($f)
		{
		$db->Query("UPDATE md_delivery_items SET ideliv='0',sorder='' WHERE id='".$f['id']."'");
		if($f['ideliv']) updateJournalCnt($f['ideliv']);
		}

	$sreason=str_escape($sreason,1);
	$ecansel=$_REQUEST['user_id'];
	$db->SelectDB('sitemanager4');

	$hostname  = "localhost";
	$database  = "sitemanager4";
	$username  = "dost";
	$password  = "111";
	mysql_connect($hostname, $username, $password);
	mysql_select_db($database);
	$sql = 'UPDATE `b_sale_order` SET `LOCKED_BY` = NULL, `DATE_LOCK` = NULL';
	if (!mysql_query($sql)){echo "Проихошла ошибка:".mysql_error();}
	else {echo "Успешно очищен - ДО!";}

	$db->Query("UPDATE b_sale_order SET CANCELED='Y',DATE_CANCELED=NOW(),EMP_CANCELED_ID='{$ecansel}',REASON_CANCELED='{$sreason}',LOCKED_BY='NULL',DATE_LOCK='NULL',STATUS_ID='D' WHERE ID='{$sorder}'");

	$hostname  = "localhost";
	$database  = "sitemanager4";
	$username  = "dost";
	$password  = "111";
	mysql_connect($hostname, $username, $password);
	mysql_select_db($database);
	$sql = 'UPDATE `b_sale_order` SET `LOCKED_BY` = NULL, `DATE_LOCK` = NULL';
	if (!mysql_query($sql)){echo "Проихошла ошибка:".mysql_error();}
	else {echo "Успешно очищен - ПОСЛЕ!";}

	$db->SelectDB();
	}
}
Где соответсвенно:
Код:
$ecansel=$_REQUEST['user_id'];
Хочу заменить на:
Код:
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules_/main/include/prolog_before.php"); 
$empstat=$USER->GetID();
НО не работает :(
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
ifedorov
Отлаживать за тебя скрипт никто не будет.
У тебя есть 2 варианта
1. Не можешь сам - раздел работа с указанием уровня оплаты.
2. Сапорт битриха
3. Форум по битриху.

И перестань, пожалуйста, писать в этот форум чухню.
 

Арчик

Новичок
Крутые времена пришли, наверное запад правит миром!

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

О фразах типа "Отлаживать скрипт за тебя никто не будет"
даже подумать было нереально, форум кешил нерабочими скриптами и ниже в постах публиковались вылеченные варианты....

Хотел пустить следующий абзац про патриотизм и коммуникабельность, как понял что Mr_Max не из России
(судя по подписи) ну да ладно...

Короче относитесь к людям так как вы хотите чтобы относились к вам..

ifedorov - 70 $ час !!! :) Шутка......
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Арчик
Археолог? ;)
 

kruglov

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

А что вы, собственно, сами не написали исправленный скрипт?

Про патриотизм и коммуникабельность все могут говорить, вот работать не все могут.
 

Арчик

Новичок
Мог бы... написал ... не в моих правилах оправдыватся но :
С битриксом ваще не знаком!
Да и суть проблемы мало понятна...
Еслиб касалось чегонить из области открытого кода, то можно было проверить, а так как кода нет то и помочь не смогу :(
 
Сверху