Pull to refresh

Comments 17

Было бы неплохо сразу же осветить вопрос о создании своей странички в админке для работы с таблицей (включая интерфейс редактора) используя extjs и последующей работой с этими данными в самой CMF, а то просто от таблицы, даже и доступной через xpdo толку не много.
ну как же толку не много? далеко не все таблицы создаются только для того, чтобы в админке с ними работать через админские интерфейсы.
Но тему взял на заметку. В дальнейшем вполне возможно и напишу соответствующую тему.
А пока могу дать для изучения свою систему сбора статистики. Установочный пакет можно скачать тут.
Между прочим это абсолютно рабочая система сбора статистики, которую я активно использую. Правда она еще не доведена до ума, по этому я не выкладываю на modx.com
Закидываете этот пакет в папку core/packages/, заходите в управление пакетами -> установить новый -> искать локально. Устанавливаете пакет, обновляете окно и в главном меню появляется Компоненты->SEO: Сбор статистики.
В общем в этом пакете реализовано все, о чем вы спрашиваете (и пользовательская таблица, и страница в админке на ExtJS и т.п. ).
Разобраться вам придется со следующими моментами:
1. Система->Действия. Именно там прописаны пункты главного меню. Для того, чтобы что-то туда можно было добавить, нужно создавать Пространство имен (правда в нашем случае уже все создано, вам только разобраться надо будет)
2. Пользовательская страница в админке. Основные файлы будут в папке core/components/seo/ Путь к ним прописывается в Действиях
3. Коннекторы. Отслеживайте Ajax-запросы через FireBug или типа того.
Спасибо, добавил в избранное, изучу.

Написали бы пост про это — цены бы вам не было, т.к. данный процесс даже на английском толком не освещён, а разобраться всё времени нет. Хотя наверное будет задача разберусь )
Сейчас просто реально некогда. Сижу вот систему документооборота на MODx+MySQL+ExtJS пишу для политического института Путина))), а эта тема очень большая, плюс скриншотов понаделать придется. Хотя тему данную знаю полностью.
Но постараюсь в ближайшие дни осветить этот вопрос.
Fi1osof, Вы это всё изучили методом тыка?

Для того, чтобы лучше понимать механизм взаимодействия xPDO с XML-схемой

XML-схема нужна только на стадии генерации (или обновления) модели с PHP-картами (maps). Когда вы обращаетесь к объекту
$my_object = $modx->newObject('myObject');

xPDO взаимодействует именно с этими картами (PHP файлами), а не XML.

В этой статье всё поставлено с ног на голову. Читайте документацию.
Это не статья с ног на голову, а задачи другие и реализация. В приведенной вами документации описывается как создать XML-файл, описывающий будущие таблицы. Используя этот файл, впоследствии создаются пользовательские таблицы. Но этот XML-файл нужно прописывать вручную. Попробуйте таким образом описать 10 пользовательских таблиц с кучей индексов, первичных и вторичных ключей и т.п. Если опишите и создадите из этого все таблицы без ошибок менее чем за 2 часа, вы герой.
Мне ЛЕНЬ так много писать!
Я через phpMyAdmin в легкую создаю нужные мне таблицы со всеми ключами, запускаю скрипт и получаю 100% рабочий XML, который могу впоследствии использовать, и все необходимые php-файлы. И это за считаные минуты. А если мне надо изменить какие-то таблицы, я легко это делаю без риска потери данных, потом делит всех старых файлов и генерация новых. И это минимум времени.
Так что, могу поспорить, что это два разных подхода при реализации одних и тех же задач. Какой вам использовать — это вам выбирать. А я буду так делать.
Да, такой подход тоже имеет право на жизнь. Я лично не вижу ничего сложного создать руками XML. Для меня это ни чуть не сложнее создания таблицы через phpMyAdmin. Только речь не об этом. Если пишите статью, то надо доскональна изучить тему и не давать ложную информацию (выше я процитировал один кусок).
Так вы цитируйте полнее.
Для того, чтобы лучше понимать механизм взаимодействия xPDO с XML-схемой, а так же понимать, что прописывается в файле-генераторе, и какие объекты получаете на выходе

Извините, если я не достаточно понятно выразился. Понятно дело, что используется для генерации.
И речь шла не о том, что с XML xPDO будет взаимодействовать каждый раз, а о том, чтобы в принципе всегда можно было посмотреть какие имена объектов у нас и какие у них свойства. Хотя бы потому, что имена объектов могут отличаться от имен конечных таблиц.
Итак,
1. Попробуйте обвинить меня в том, что все это не работает, о чем я написал. Я вам сразу скажу, что это все работает.
2. Знаете материал лучше — напишите. На хабре эта тема вообще не была освещена, в том числе и вами, хотя вы, как говорите, вопрос этот знаете досканально.
Хотя бы потому, что имена объектов могут отличаться от имен конечных таблиц.
Вот именно. У вас получается, что как будто нам заранее не известно название пакета и т.п., хотя мы же сами создаем этот пакет и можем сами назвать его как угодно. XML в данном случае вообще можно не упоминать. Все поля (свойства объекта) вы создали сами в таблице.
значение атрибута package нам нужно, чтобы знать какой пакет нам вообще нужно подгружать.
___
хотя вы, как говорите, вопрос этот знаете досканально.
Где я это сказал? Я знаю только то, что написал в комменте.
Сорри, коммент нижу разместился
Все равно не убедили. Вы будете своим методом пользоваться, а я своим. И уверен, кому-нибудь материал тоже будет полезен.
Дальше не вижу смысла это обсуждать. Как я и говорил, лучше тогда действительно статью напишите про ваш метод. А просто спорить не конструктивно
Если я создаю свою таблицу, то возможно ли забирать с неё данные (строки) такими сниппетами как гетпэйдж? Кешыруются ли запросы?
Пока для новой таблицы на будут сгенерированы map-файлы, с вашими новыми таблицами нельзя будет работать в принципе, в том числе и сниппетом getPage.
Про то, кэшируется ли результаты выполнения getPage, не подскажу, потому что им не пользуюсь в принципе, но учитывая то, что он работает в связке с тем же getResource, результаты нужно кэшировать и для одного, и для другого. ИМХО лучше самому управлять кэшем с помощью modCacheManager.
map файлы это и есть xml схема и пхп файлы о которых говорили?
Map-файлы, это PHP-файлы, используемые для работы с БД, в которых описана структура таблиц. Они имеют расширение map.inc.php Их вы можете увидеть в папке /core/model/modx/mysql
XML используется для генерации всех этих php-файлов.
Вы можете или самостоятельно описать вашу будущую таблицу в XML, и уже используя его создать пользовательскую таблицу и сгенерировать эти файлы, или создать таблицу вручную и запустить скрипт на генерацию всех файлов, как это описано тут.
Sign up to leave a comment.

Articles