Comments (40)
Это не обязательное требование.
У классов хэлперов есть переменная $module, её можно определить вручную, указав правильное имя модуля. В противном случае ожидается, что модуль будет вида "aloha.adminhelper", да.
В недрах AdminBaseHelper (строка 130 прмерно):
/**
* @var string
* Назвние модуля данной модели.
* При наследовании класса необходимо указать нзвание модуля, в котором он находится.
* А можно и не указывать, в этому случае он определится автоматически по namespace класса
* Используется для избежания конфликтов между именами представлений.
*
* @api
*/
static public $module = array();
from digitalwand.admin_helper.
Могу ли я работать с ORM-таблицей через ваш функционал? А не той псевдо-сущностью, что у вас в примере.
from digitalwand.admin_helper.
Не понял... Можно конкретизировать:
- С какой сущностью работать хочется?
- С какой "из примера" работать не хочется?
from digitalwand.admin_helper.
Тупанул, Извиняюсь, отличная вещь, еще бы это как библиотеку, чтобы импортировать в свои модули и вообще шик. От route.php правда придется отказаться. Либо ждать когда его включат оффициально.
from digitalwand.admin_helper.
Думал над этой темой...
Подозреваю, что проблема должна без проблем решаться копипастом, т.к. базовым классам, в общем-то, всё равно, внутри какого модуля находиться.
Проблемы, правда, начнутся, когда захочется обновлений.
В идеале, конечно, модуль просто выкачивать и устанавливать как зависимость. Цивилизованное человечество обычно так и поступает :-)
from digitalwand.admin_helper.
Я могу выставить платный модуль, используя вашу библиотеку(само собой с копирайтом сюда). з.ы. уж больно влом писать админку по их дрянному мануалу.
from digitalwand.admin_helper.
Конечно, решение распространяется по лицензии MIT - можете использовать как угодно, только с сохранением копирайта :-)
from digitalwand.admin_helper.
Ну лицензия то не написана, вот и спрашиваю.
from digitalwand.admin_helper.
Ну почему же не написана?..
https://github.com/DigitalWand/digitalwand.admin_helper/blob/2.x/LICENSE.md
from digitalwand.admin_helper.
привычка походу, лицензию внизу в описании функционала смотреть...
from digitalwand.admin_helper.
чего-то я не догоняю... http://joxi.ru/n2Y5XRPijvxL92 ведь все правильно прописано http://joxi.ru/E2pgpWOCBPZ5km http://joxi.ru/l2Z6xnPI8x4072 и как назло первопроходцам везет на шишки
from digitalwand.admin_helper.
...а HL-инфоблок-то в битриксе создан?
Насколько я помню, чтобы он его корректно нашел, надо либо не использовать неймспепйсы, либо имя HL-инфоблока должно состоять из полного наименования класса, включая неймспейс. Только без слешей.
Если что - эт не я так придумал, это Битрикс всё...
from digitalwand.admin_helper.
В этом то и дело. Что HL-блок я не использую. Я всего лишь создал orm-таблицу, и пытаюсь ее использовать. Но если я ее закину в папочку news и пропишу неймспейсы к ней и в ней, то все работает прекрасно.
from digitalwand.admin_helper.
Либо я чего-то не догоняю
from digitalwand.admin_helper.
Если цепляете к кастомной таблице, то посмотрите в сторону примера https://github.com/niksamokhvalov/demo.adminhelper - буквально вчера на его основе выбирал из b_iblock, всё работает нормально, только нужно указать таблицу у класса ЧтоНибудьTable.
from digitalwand.admin_helper.
Я его и юзаю. Только вынес описание вашей таблицы за папочку news в папку lib. Ну и переписал неймспейсы.
З.ы.походу баг
from digitalwand.admin_helper.
Если пока в коде нет ничего секретного, было бы проще мне скинуть кусок получившегося модуля - я бы посмотрел, что не так. А то пока что эффективность - как от лечения зубов по фотографии...
from digitalwand.admin_helper.
demo.web38.zip
вот
from digitalwand.admin_helper.
подебажил, узнал что он просто не может найти класс надо было в include.php прописать так
'Bitrix\Demo\Web38\NewsTable' => 'lib/NewsTable.php',
ну и соответствующие пути в других файлах.
from digitalwand.admin_helper.
Это ж Битрикс. У него своё понятие об автозагрузке. Посмотрите внимательно на пример: https://github.com/niksamokhvalov/demo.adminhelper/blob/master/lib/news/news.php.
Что бы работала автозагрузка Битрикса, файлы в модуле должны называться в нижнем регистре. У моделей в названии файла слова table
быть не должно.
from digitalwand.admin_helper.
чекбокс он видит как boolean
new BooleanField('ACTIVE', array( 'required' => true, )),
хотя битрикс это описывает в mysql как string, отсюда и не работоспособность виджета
from digitalwand.admin_helper.
У виджета там два режима работы, по-человечески и через string. Можно выбрать подходящий в настройках виджета.
from digitalwand.admin_helper.
т.е. ты мне предлагаешь переписать константы в самом виджете? мб там есть что-то типа настройки protected static $defaults = array( 'EDIT_IN_LIST' => true );
?
в самом виджете к сожалению этого нету
from digitalwand.admin_helper.
Можно переопределить CheckboxWidget::getCheckboxType();
и вернуть нужный тип чекбокса.
В настройках, внезапно, нет... надо будет добавить.
from digitalwand.admin_helper.
Мой внутренний перфекционист в истерике забился в комочек...
from digitalwand.admin_helper.
Мсье, как же вы тогда связались с битриксом?))))))
from digitalwand.admin_helper.
"Пути до Битрикса не неисповедимы"
from digitalwand.admin_helper.
а примера для реализации виджета OrmElementWidget не найдется?
from digitalwand.admin_helper.
Только что тут #33 запилил возможность указать тип данных для чекбокса, не прибегая к наследованию, через настройки.
@niksamokhvalov на счет OrmElementWidget - отвечать тебе.
from digitalwand.admin_helper.
ух, как я понял представления списка(то окошечко, которое всплывает при редактировании значения) у вас нету для виджета OrmElementWidget.
'##название нашего поля, у которого есть связь##' => array( 'TITLE' => 'Пользователь', 'WIDGET' => new OrmElementWidget(), 'HELPER'=>'\Test\Web38\Comments\AdminInterface\HelperForUser', 'TITLE_FIELD_NAME' => 'LOGIN', ),
ну и конечно же надо описать нашего наследника
namespace Test\Web38\Comments\AdminInterface; use \DigitalWand\AdminHelper\Helper\AdminBaseHelper; abstract class HelperForUser extends AdminBaseHelper { static protected $model = 'Bitrix\Test\Web38\SmilesUsersCommentTable'; static protected $interfaceClass = array( 'Test\Web38\Comments\AdminInterfaceUsers\UsersInterface' ); }
и не забываем объявить его в модуле
Loader::registerAutoLoadClasses($moduleName, array( 'Bitrix\Test\Web38\SmilesCommentTable' => 'lib/SmilesCommentTable.php', 'Bitrix\Test\Web38\SmilesUsersAvatarTable' => 'lib/SmilesUsersAvatarTable.php', 'Test\Web38\Comments\AdminInterface\HelperForUser' => 'lib/comments/admininterface/HelperForUser.php', ));
from digitalwand.admin_helper.
В EntityManager.php есть 1 небольшой недочет. При нажатии вот на эту кнопочку http://joxi.ru/52aYBNPFGpEgp2 EntityManager.php:247 $this->helper->getPk() получает массив, хотя там должно быть число
з.ы. реквесты писать пока не стану, ибо не до конца разобрался в вашем творчестве.
з.ы.2 только творец знает, что лучше для его детища
from digitalwand.admin_helper.
route.php:112
elseif (is_subclass_of($helper, 'DigitalWand\AdminHelper\Helper\AdminBaseHelper')) { $adminHelper = new $helper($fields, $tabs); }
Инстанс абстрактного класса?! втф
from digitalwand.admin_helper.
http://php.net/manual/ru/function.is-subclass-of.php
is_subclass_of — Проверяет, содержит ли объект в своем дереве предков указанный класс
Не вижу криминала. Инстанс наследника абстрактного класса.
from digitalwand.admin_helper.
с ответственностью заявляю OrmElementWidget тот еще шлак, без хоть какой то документации или дампа ментаскопирования мозгов разработчика этого чуда
from digitalwand.admin_helper.
Не вижу криминала. Инстанс наследника абстрактного класса.
да, я просто наследовал его таким же абстрактным классом.
from digitalwand.admin_helper.
Ничоси, какой дерзкий : )
@Frimko ты спрашивал про OrmElementWidget. Отвечаю: https://github.com/DigitalWand/digitalwand.admin_helper/blob/2.x/lib/widget/OrmElementWidget.php#L11.
Виджет заводится с минимальными параметрами:
- WIDGET
- HELPER (подразумевается, что указан хелпер работающей админки)
from digitalwand.admin_helper.
@niksamokhvalov а плагиатить тп Битрикса не хорошо. Тут становится куда проще накатать свое што то, чем пытаться прикрутить этот виджет.
from digitalwand.admin_helper.
Не путай платную ТП Битрикса, за которую платят деньги, и опен-сорс, который тебе никто не навязывает и не просит использовать. Это принципиально разные концепции. И есть два пути: 1) поливать грязью труды, которыми безвозмездно поделилось сообщество, жаловаться на качество решения (совершая, при этом, детские ошибки по автолоаду классов) или 2) ясно описать проблему, с пруфами и линками, и предложить решение. Мы всегда рады конструктивной критике, issue-сам и пул-реквестам. Выбор за тобой.
abstract class HelperForUser extends AdminBaseHelper
да, я просто наследовал его таким же абстрактным классом.
Абстрактный класс, подсунутый ОРМ-виджету, не может исполняться. Поэтому модуль выкидывает ошибку. Могу только ещё раз процитировать важную часть моего предыдущего сообщения:
(подразумевается, что указан хелпер работающей админки)
Абстрактный HelperForUser
не может являться работающей админкой.
from digitalwand.admin_helper.
@niksamokhvalov Да, согласен ошибки детские. Уже понял свою оплошность, достаточно подключить AdminListHelper и закинуть к юрл popup=Y. вот тогда все и заработает.
з.ы. но цитировать слова из мануала, это выбесит любого. Да и мануал водянистый(считай понятен только его создателю).
from digitalwand.admin_helper.
эх, оформления для эрмитажа не хватает...
from digitalwand.admin_helper.
Related Issues (20)
- ORMElementWidget в Multiple режиме
- Некорректная ссылка выбора элемента в OrmElementWidget в Multiple режиме HOT 3
- Не проходит валидация OrmElementWidget в режиме Multiple
- Поддержка новых гридов админки
- Не удаляются связанные записи при использовании виджетов в множественном режиме
- Не отображается название элемента в виджете IblockElementWidget
- Merge last work to master, please HOT 1
- Удаление нескольких записей HOT 1
- Сохранение при создании
- Только страница списка HOT 1
- Пакет является брошенным, не используйте его! HOT 2
- А работают ли вообще множественные файлы?
- Виджет для N:M HOT 1
- Виджет "Дата\время" не проверяет пустое ли значение
- Проект еще поддерживается? HOT 5
- Выбранный порядок сортировки сбрасывается после перехода в раздел HOT 1
- Виджет не может изменить список полей для выборки в GetList
- Вопрос о создании взаимосвязанных полей при редактировании элемента
- При смешанном отображении разделов/элементов нельзя выбрать элементы внутри раздела
- Ошибка удаления в списке HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from digitalwand.admin_helper.