в 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);
но неужели в ядре нет метода для таких манипуляций?
тут да, но придется тогда менять настройки на сайте а у меня задача универсально и меньшей кровью вывести заказы в списке по своему фильтру (без проверки USER_ID)
Какие настройки на сайте? Заменить на странице подключения компонента неймспейс на свой? Изящнее некуда, как по мне
компонент же комплексный со списком, так что там и зная еще искать нужно... а для незнающего юзера так объяснить еще проблемнее нужно дать инструкцию, по которой это может любой сделать... чтобы после не писали в ТП по фигне
Шаблон для комплексного с подключением кастомного листа внутри можно заранее подготовить. При желании, кастомный компонент можно выбрать в виз.редакторе так же, как и штатный. Не понимаю проблемы пока
Вы, видимо, хотите переопределить штатный компонент, а не унаследоваться от него. Не думаю, что такой вариант возможен адекватными способами
для переопределения нужно полностью копировать class.php тогда ок, но а если с обновой что прилетит :) а так отнаследовался, переопределил 1 метод с фильтром и норм вот именно такой возможности видимо и не предусмотрели ну видимо include_once и есть единственный вариант
причем это просто одна функция по факту
ну и как всегда проблем придумал :) Bitrix\Main\Loader::registerAutoLoadClasses(null, array( 'CBitrixPersonalOrderListComponent' => '/bitrix/components/bitrix/sale.personal.order.list/class.php', )); и готово
"У меня возникают смутные подозрения"...
работает вроде как и норм решаю извечную проблему с пачкой юзеров в оформленных без авторизации заказов и возможности просмотра истории таких заказов в качестве идентификации заказов номер телефона (разумеется подтвержденный ранее по смс)
Понимаю. А почему юзера по телефону не создавать?
решение для абсолютно любого магазина, не зависимо от того как ранее в таком магазине создавались заказы но фактически же юзер может по телефону создаться только 1 раз (телефон = логин) а следующий анонимный заказ на этом телефоне юзер с другим логином, ну или ошибку получай и просить авторизацию
Обсуждают сегодня