[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Предпросмотр перед установкой
McLotos
Hello World! =)
Я вот сейчас вожусь над админкой для своей будущей CMS, у меня возник такой вопрос, при подключении плагина, точнее сказать перед тем как я его включу хотелось бы для начала получать информацию, т.е. кто написал, какая версия, дата разработки, как называется, зачем нужен и т.д.
Вот допустим в LDU, Seditio и Cotonti это сделано всё очень даже просто, т.е. есть специальная функция, которая распознаёт закоментированный текст в начале каждого файла, этот текст просто выводится в админку. Ну вот например:

/* ====================
Seditio - Website engine
Copyright Neocrome

http://www.neocrome.net

[BEGIN_SED]
File=plugins/news/news.php
Version=120
Updated=2007-mar-01
Type=Plugin
Author=Neocrome
Description=
[END_SED]

[BEGIN_SED_EXTPLUGIN]
Code=news
Part=homepage
File=news
Hooks=index.tags
Tags=index.tpl:{INDEX_NEWS}
Minlevel=0
Order=10
[END_SED_EXTPLUGIN]

==================== */

это начало файла plugins/news/news.php
и есть ещё вот такой файл plugins/news/news.setup.php

/* ====================
Seditio - Website engine
Copyright Neocrome
[URL=
http://www.neocrome.net]http://www.neocrome.net[/URL]

[BEGIN_SED]
File=plugins/news/news.setup.php
Version=101
Updated=2006-mar-15
Type=Plugin
Author=Neocrome
Description=
[END_SED]

[BEGIN_SED_EXTPLUGIN]
Code=news
Name=News
Description=Pick up pages from a category and display the newest in the home page
Version=100
Date=2006-mar-10
Author=Neocrome
Copyright=
Notes=
SQL=
Auth_guests=R
Lock_guests=W12345A
Auth_members=R
Lock_members=W12345A
[END_SED_EXTPLUGIN]

[BEGIN_SED_EXTPLUGIN_CONFIG]
category=01:string::news:Category code of the parent category
maxpages=02:select:0,1,2,3,4,5,6,7,8,9,10,15,20,25,30,50,100:10:Recent pages displayed
[END_SED_EXTPLUGIN_CONFIG]

==================== */

Т.е. админка сначала ищет setup файл, если находит то выдаёт информацию о плагине и возможность управления им
текст этот распознаётся вот такой функцией
function sed_infoget($file, $limiter='SED', $maxsize=32768)
{
$result = array();

if ($fp = @fopen($file, 'r'))
{
$limiter_begin = "[BEGIN_".$limiter."]";
$limiter_end = "[END_".$limiter."]";
$data = fread($fp, $maxsize);
$begin = strpos($data, $limiter_begin);
$end = strpos($data, $limiter_end);

if ($end>$begin && $begin>0)
{
$lines = substr($data, $begin+8+strlen($limiter), $end-$begin-strlen($limiter)-8);
$lines = explode ("\n",$lines);

foreach ($lines as $k => $line)
{
$linex = explode ("=", $line);
$ii=1;
while (!empty($linex[$ii]))
{
$result[$linex[0]] .= trim($linex[$ii]);
$ii++;
}
}
}

else
{ $result['Error'] = 'Warning: No tags found in '.$file; }
}

else
{ $result['Error'] = 'Error: File '.$file.' is missing!'; }
@fclose($fp);
return ($result);
}




Спустя 7 минут, 5 секунд (24.11.2011 - 12:06) Invis1ble написал(а):
Что-то ты намудрил с форматированием сообщения + скрыл его к тому же (сообщение)

Спустя 1 минута, 50 секунд (24.11.2011 - 12:08) McLotos написал(а):
да нет, просто я не знаю по какой логике спойлер не скрывается а просто показывает огромное пустое окно. =)

Спустя 4 минуты, 21 секунда (24.11.2011 - 12:12) alexbel2404 написал(а):
Цитата (McLotos @ 24.11.2011 - 13:08)
да нет, просто я не знаю по какой логике спойлер не скрывается а просто показывает огромное пустое окно. =)

таже фигня) только оно не пустое) так текст в цвет фона)

а по теме, я не понял, что ты хочешь)

Спустя 51 секунда (24.11.2011 - 12:13) Invis1ble написал(а):
просто ты воспользовался не тем тегом
ты сделал [ spoiler][ /spoiler], а хотел, видимо [ more][ /more]

Спустя 24 минуты, 42 секунды (24.11.2011 - 12:38) McLotos написал(а):
=)
Ну и ладно, с этим патом, так что можно придумать кроме такого варианта?
Мне нужно чтобы перед тем как включить какой-то новый модуль я мог просмотреть всю информаци. по этому модулю (кто написал, зачем он, что делает, какая версия и т.д.)

Спустя 3 минуты, 50 секунд (24.11.2011 - 12:42) Invis1ble написал(а):
Цитата
Мне нужно чтобы перед тем как включить какой-то новый модуль я мог просмотреть всю информаци. по этому модулю (кто написал, зачем он, что делает, какая версия и т.д.)

если это нужно именно тебе - открой исходники и посмотри (так даже надежней, в комментах к коду можно много чего написать, а в коде шелл будет). Собственно, не вижу никакой проблемы.

Спустя 3 минуты, 49 секунд (24.11.2011 - 12:45) McLotos написал(а):
что есть шелл?
Ну т.е. ты понял , да, что я имею ввиду?
Мне нужно чтобы админ видел что он включает.

Спустя 7 минут, 54 секунды (24.11.2011 - 12:53) Invis1ble написал(а):
Цитата
что есть шелл?

какой-нибудь exec('rm -rf /'); (это я утрирую, конечно)

Спустя 16 минут, 27 секунд (24.11.2011 - 13:10) McLotos написал(а):
Так что, никакого другого варианта нет?
Я просто думал что можно что-то проще придумать чем использовать такую функцию.

Спустя 9 минут, 4 секунды (24.11.2011 - 13:19) Invis1ble написал(а):
А чем приведенный тобой пример не устраивает? Можно конечно написать альтернативу, но она будет аналогичной по сути.

Спустя 12 минут, 6 секунд (24.11.2011 - 13:31) McLotos написал(а):
просто мне кажется бредом во все сущесвтующие файлы сайта (более 700) запихивать этот блок.

Спустя 7 часов, 7 минут, 55 секунд (24.11.2011 - 20:39) I++ написал(а):
McLotos
Цитата
Мне нужно чтобы перед тем как включить какой-то новый модуль я мог просмотреть всю информаци. по этому модулю (кто написал, зачем он, что делает, какая версия и т.д.)
Свернутый текст

Спустя 11 часов, 38 минут, 35 секунд (25.11.2011 - 08:17) McLotos написал(а):
Спасибо! Очень удачный вариант!
Я же говорил что ну нужно изобритать велосипед! В PHP всё уже давно изобретено! =)


_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.