I live ExBB and CMS Limbo! » Форумы и сайты » Limbo CMS » Попытка запустить репозитарий

Страниц (1): [1]
 

1. технарь - 1 ноября 2012 — 04:41 - перейти к сообщению
Пытаюсь анализировать исходный код с целью восстановить ожидаемую системой структуру файла репозитария. Буду описывать как информация движется по функциям...

Кнопка в файле admin_menu.php

code:
$amenu->iadd('images/common/rep.gif',_SYSTEM_REP,'admin.php?
com_option=system&option=updates','',_SYSTEM);


Функция new_updates в файле admin.system.html.php

code:
$xml = new MiniXMLDoc();

создаем объект из класса, описание класса в файле doc.inc.php

code:
$xml_data=get_url($lm_updates);

получает данные из файла в переменную $xml_data

code:
$xml->fromString($xml_data);

обрабатываем полученные данные в функции fromString

Внутри функция fromString определяет формат полученного файла (MINIXML_SIMPLE_REGEX или MINIXML_COMPLETE_REGEX). Второй вариант я даже не буду анализировать - сконцентрируюсь на MINIXML_SIMPLE_REGEX.

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

Вот здесь похоже и зарыт формат...

Спойлер (Показать)
2. технарь - 1 ноября 2012 — 08:26 - перейти к сообщению
 Цитата от технарь:
CODE:
$xml_data=get_url($lm_updates);

получает данные из файла в переменную $xml_data
А вот и нифига. Я думал, что в $xml_data будет содержимое файла, а там оказывается одномерный массив.
Причем все теги исходного файла уничтожаются.

Например есть файл с таким содержимым
code:
<partRateRequest>
<vendor> 123456
<accessid user="myusername" password="mypassword" />
</vendor>
<partList>
<partNum>
DA42
</partNum>
<partNum>
D99983FFF
</partNum>
<partNum>
ss-839uent
</partNum>
</partList>
</partRateRequest>


после функции get_url содержимое файла превращается в одномерный массив с таким содержимым
code:
123456 DA42 D99983FFF ss-839uent


Что то я тогда не очень понимаю... Предполагалось, что будут теги, определяющие категории и в этих тегах будут данные. А получается что теги отсекаются вообще - остаются только данные. Однако

Хотя нет - нифига теги не отсекаются. Просто конвертятся в какой-то формат, что команда print_r самих тегов не видит. Не понял
3. технарь - 1 ноября 2012 — 09:36 - перейти к сообщению
Ладно, может дальше станет понятнее...
Разбираем что приходит на вход функции fromSubString (&$parentElement, &$XMLString, &$regex)

$parentElement
code:
MiniXMLElement Object ( [xname] => PSYCHOGENIC_ROOT_ELEMENT [xattributes] => Array ( ) [xchildren] => Array ( ) [xnumChildren] => 0 [xnumElementChildren] => 0 [xavoidLoops] => 0 [xparent] => )


$XMLString
code:
vendor=123456 DA42 D99983FFF ss-839uent


$regex
code:
/s*<s*([^s>]+)([^>]+)?>(.*?)<s*/s*>s*([^<]+)?(.*)|s*<!--(.+?)-->s*|s*<s*([^s>]+)([^>]*)/s*>s*([^<>]+)?|^([^<]+)(.*)/smi
4. технарь - 1 ноября 2012 — 10:16 - перейти к сообщению
Вот команда, которая всё и разбивает...
preg_match_all( $regex, $XMLString, $matches)

Вот что я получаю после разбиения (почему то 7 раз)

Спойлер (Показать)


В переменной $regex содержится строковая маска созданная по правилам регулярных выражений, а я в этом деле не бум бум. Огорчение Придется грызть мануалы...
5. технарь - 2 ноября 2012 — 05:32 - перейти к сообщению
Есть результат.

Формат файла updates.php должен быть примерно такой:

Спойлер (Показать)


В работе это выглядит так:
6. технарь - 2 ноября 2012 — 17:14 - перейти к сообщению
Репозитарий закончил, включил в новую версию ядра, которую выложил для скачивания.
Там ещё есть шероховатости, но в целом всё работает. В будущем планирую доработать его в плане контроля и отображения необходимости в обновлении тех или иных элементов.
7. технарь - 5 ноября 2012 — 15:54 - перейти к сообщению
Не работает ссылка "Инфо".
Определил, что по ссылке почему то вызывается функция info_language() из файла admin.language.html.php
8. технарь - 11 ноября 2012 — 00:48 - перейти к сообщению
Пришел к необходимости изменить структуру в xml файлах.
Теперь заголовок должен иметь такой формат:

code:

<name> banners </name>
<title> Banners </title>
<description> Banners rotation </description>
<version> 1.0.5.121106 </version>
<author> Vikas Patial </author>
<authorEmail> radius@maxdsl.ru </authorEmail>
<copyright>This component is released under the GNU/GPL License</copyright>


В этой связи придется прилично код ядра править, переписывать заголовки всех компонентов и перезаливать их на хост.

А ещё придется для корректной работы ссылки "Инфо" писать функцию самому. Та, что есть под мои нужды не подходит... Огорчение

Вот я и думаю - может ну её пока нафиг? Будет потом нечем заняться, тогда и допилю. А пока проще добавить информацию из содержимого тега <description>.
9. технарь - 12 ноября 2012 — 06:08 - перейти к сообщению
Убрал с сервера файл для доступа к репозитарию, т.к. перехожу на новый формат получения данных - с текущим файлом у меня всё глючит. Не понял Радость

Структура планируется такая:

code:
<name> banners </name>
<title> Banners </title>
<description> Banners rotation </description>
<version> 1.0.5.121106 </version>
<author> Vikas Patial </author>
<authorEmail> radius@maxdsl.ru </authorEmail>
<copyright>This component is released under the GNU/GPL License</copyright>
10. технарь - 14 декабря 2012 — 00:56 - перейти к сообщению
Всё, репозитарий закончил.
Там конечно ещё есть что улучшить, но в целом всё работает.

Powered by ExBB v1.1.180311