Сегодня: 21:11:2024 Доброго вам дня!

I live ExBB and CMS Limbo!  I live ExBB and CMS Limbo!
Логин :
Пароль :
Регистрация?  Забыли пароль? 
 


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

> Описание: Хочется воссоздать возможность онлайн обновлений

  Супермодератор
Отправлено: 1 ноября 2012 — 08:41
Post Id


 Покинул технарь
Профессионал
Сообщений: 1825
Регистрация: 12.2011

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

Кнопка в файле 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

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

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

  Супермодератор
Отправлено: 1 ноября 2012 — 12:26
Post Id


 Покинул технарь
Профессионал
Сообщений: 1825
Регистрация: 12.2011

 Цитата от технарь:
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 самих тегов не видит. Не понял
 
 Top

  Супермодератор
Отправлено: 1 ноября 2012 — 13:36
Post Id


 Покинул технарь
Профессионал
Сообщений: 1825
Регистрация: 12.2011

Ладно, может дальше станет понятнее...
Разбираем что приходит на вход функции 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
 
 Top

  Супермодератор
Отправлено: 1 ноября 2012 — 14:16
Post Id


 Покинул технарь
Профессионал
Сообщений: 1825
Регистрация: 12.2011

Вот команда, которая всё и разбивает...
preg_match_all( $regex, $XMLString, $matches)

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

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


В переменной $regex содержится строковая маска созданная по правилам регулярных выражений, а я в этом деле не бум бум. Огорчение Придется грызть мануалы...
 
 Top

  Супермодератор
Отправлено: 2 ноября 2012 — 09:32
Post Id


 Покинул технарь
Профессионал
Сообщений: 1825
Регистрация: 12.2011

Есть результат.

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

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


В работе это выглядит так:
 
 Top

  Супермодератор
Отправлено: 2 ноября 2012 — 21:14
Post Id


 Покинул технарь
Профессионал
Сообщений: 1825
Регистрация: 12.2011

Репозитарий закончил, включил в новую версию ядра, которую выложил для скачивания.
Там ещё есть шероховатости, но в целом всё работает. В будущем планирую доработать его в плане контроля и отображения необходимости в обновлении тех или иных элементов.
 
 Top

  Супермодератор
Отправлено: 5 ноября 2012 — 19:54
Post Id


 Покинул технарь
Профессионал
Сообщений: 1825
Регистрация: 12.2011

Не работает ссылка "Инфо".
Определил, что по ссылке почему то вызывается функция info_language() из файла admin.language.html.php
 
 Top

  Супермодератор
Отправлено: 11 ноября 2012 — 04:48
Post Id


 Покинул технарь
Профессионал
Сообщений: 1825
Регистрация: 12.2011

Пришел к необходимости изменить структуру в 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>.
 
 Top

  Супермодератор
Отправлено: 12 ноября 2012 — 10:08
Post Id


 Покинул технарь
Профессионал
Сообщений: 1825
Регистрация: 12.2011

Убрал с сервера файл для доступа к репозитарию, т.к. перехожу на новый формат получения данных - с текущим файлом у меня всё глючит. Не понял Радость

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

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>
 
 Top

  Супермодератор
Отправлено: 14 декабря 2012 — 04:56
Post Id


 Покинул технарь
Профессионал
Сообщений: 1825
Регистрация: 12.2011

Всё, репозитарий закончил.
Там конечно ещё есть что улучшить, но в целом всё работает.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Limbo CMS »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.

> Темы, похожие на тему "Попытка запустить репозитарий"
Темы Форум Информация о теме Обновление
Skype end Denwer
Скайп мешает нормальной работе Денвера
Limbo CMS Ответов: 0
Автор темы: технарь
8 января 2012 — 08:00
Автор: технарь
Прерывания в Ардуино
Arduino - простая работа с микроконтролером Ответов: 0
Автор темы: технарь
3 сентября 2018 — 22:23
Автор: технарь
Cайты, построенные на Limbo.
Limbo CMS Ответов: 0
Автор темы: технарь
16 мая 2012 — 18:49
Автор: технарь
 


Powered by ExBB v1.1.180311