208 похожих чатов

Кто подскажет как подключить класс компонента и отнаследоваться от него

в local/components ?
дело в том что условный
CBitrixComponent::includeComponentClass ищет сперва в local (файл который по сути мы и переопределяем)

* сейчас накидал
$path = CComponentEngine::MakeComponentPath("bitrix:sale.personal.order.list");
if(!$path) die();
$componentPath = '/bitrix/components'. $path;
$fname = $_SERVER["DOCUMENT_ROOT"].$componentPath."/class.php";
if(!file_exists($fname)) die();
include_once($fname);

но неужели в ядре нет метода для таких манипуляций?

13 ответов

54 просмотра

Наследовался, проблем не было

Andrew-Zahalski Автор вопроса
Ruslan
screenshot Наследовался, проблем не было

тут да, но придется тогда менять настройки на сайте а у меня задача универсально и меньшей кровью вывести заказы в списке по своему фильтру (без проверки USER_ID)

Andrew Zahalski
тут да, но придется тогда менять настройки на сайт...

Какие настройки на сайте? Заменить на странице подключения компонента неймспейс на свой? Изящнее некуда, как по мне

Andrew-Zahalski Автор вопроса
Ruslan
Какие настройки на сайте? Заменить на странице под...

компонент же комплексный со списком, так что там и зная еще искать нужно... а для незнающего юзера так объяснить еще проблемнее нужно дать инструкцию, по которой это может любой сделать... чтобы после не писали в ТП по фигне

Andrew Zahalski
компонент же комплексный со списком, так что там и...

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

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

Andrew-Zahalski Автор вопроса
Ruslan
Вы, видимо, хотите переопределить штатный компонен...

для переопределения нужно полностью копировать class.php тогда ок, но а если с обновой что прилетит :) а так отнаследовался, переопределил 1 метод с фильтром и норм вот именно такой возможности видимо и не предусмотрели ну видимо include_once и есть единственный вариант

Andrew-Zahalski Автор вопроса
Ruslan
Вы, видимо, хотите переопределить штатный компонен...

причем это просто одна функция по факту

Andrew-Zahalski Автор вопроса
Ruslan
Вы, видимо, хотите переопределить штатный компонен...

ну и как всегда проблем придумал :) Bitrix\Main\Loader::registerAutoLoadClasses(null, array( 'CBitrixPersonalOrderListComponent' => '/bitrix/components/bitrix/sale.personal.order.list/class.php', )); и готово

Andrew Zahalski
ну и как всегда проблем придумал :) Bitrix\Main\Lo...

"У меня возникают смутные подозрения"...

Andrew-Zahalski Автор вопроса
Eugene Zhukov
"У меня возникают смутные подозрения"...

работает вроде как и норм решаю извечную проблему с пачкой юзеров в оформленных без авторизации заказов и возможности просмотра истории таких заказов в качестве идентификации заказов номер телефона (разумеется подтвержденный ранее по смс)

Andrew Zahalski
работает вроде как и норм решаю извечную проблему...

Понимаю. А почему юзера по телефону не создавать?

Andrew-Zahalski Автор вопроса
Eugene Zhukov
Понимаю. А почему юзера по телефону не создавать?

решение для абсолютно любого магазина, не зависимо от того как ранее в таком магазине создавались заказы но фактически же юзер может по телефону создаться только 1 раз (телефон = логин) а следующий анонимный заказ на этом телефоне юзер с другим логином, ну или ошибку получай и просить авторизацию

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта