Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Функция вывода шаблона для интернет-магазина
 
 автор: Indemion   (26.01.2008 в 11:52)   письмо автору
 
 

Немного истории. После того, как разработчики отказались показывать функцию «Да, код 100% открытый, но эта функция очень сложна и мы убрали ее в закрытый файл», пришлось раскодировать файл. Удалось, но с проблемами. Полез разбирать их открытый форум, но ничего (кроме странности в написании кода не нашел). В общем, при раскодировке, получил вот такую функцию:

<?
function parsetemplatereturn( ${ "Ќ!ћєаЮЋ\x1F‡—Sр" } )
{
    global 
$SysValue;
    global 
$LoadItems;
    global 
$_SESSION;
    ${ 
"\x18'юPТ1А" } = $SysValue;
    ${ 
"•Ё“Г,R|\x06аз·" } = shop_read_file( ${ "\x18'юPТ1А" }['dir']['templates'].chr47 ).$_SESSION['skin'].chr47 ).${ "Ќ!ћєаЮЋ\x1F‡—Sр" } );
    do
    {
        ${ 
"З(Ќ‰кє" } = each( &${ "•Ё“Г,R|\x06аз·" } )[1];
        ${ 
"\x08QЁ\x0C" } = each( &${ "•Ё“Г,R|\x06аз·" } )[0];
        if ( 
each( &${ "•Ё“Г,R|\x06аз·" } ) )
        {
            ${ 
"З(Ќ‰кє" } = constants( ${ "З(Ќ‰кє" } );
            ${ 
"(¶)" } .= ${ "З(Ќ‰кє" };
        }
    } while( 
);
    return ${ 
"(¶)" };
}
?>

Как я понял, раскозябры - это переменные. Подменил их на более читаемые:

<?
function ParseTemplateReturn($path)
{
global 
$SysValue;
global 
$LoadItems;
global 
$_SESSION;
$new_SysValue $SysValue# Уж простите, но это верх гениальности
$file_value shop_read_file($new_SysValue['dir']['templates'].chr(47).$_SESSION['skin'].chr(47).$path); # в этой строке указывается путь к шаблону файла (содержимое прикрепил)
do
    {
    
$result each(&$file_value)[1];
    
$result2 each(&$file_value)[0];
    if (
each(&$file_value))
        {
        
$result constants($result);
        
$return_value .= $result;
        }
    } while(
1);
return 
$return_value;
}
function 
constants($value)
{
    echo 
"входим";
    return 
preg_replace_callback("/@([[:alnum:]]+)@/""ConstantR"$value);
}
?>

Получаю ошибки в строках:

<?
$result 
each(&$file_value)[1];
$result2 each(&$file_value)[0];
?>

Что, в принципе, и верно, так как [1] и [0] тут не к месту.
Помогите привести в функцию в рабочее состояние. Если требуются еще какие-нибудь материалы (доп. функции и т.п.) - предоставлю.

   
 
 автор: cheops   (26.01.2008 в 13:52)   письмо автору
 
   для: Indemion   (26.01.2008 в 11:52)
 

Хм... а что примерно функция должна делать?

   
 
 автор: Indemion   (26.01.2008 в 16:27)   письмо автору
 
   для: cheops   (26.01.2008 в 13:52)
 

Функция обрабатывает файлы шаблонов.
Вот пример одного файла:
<div id="bg_catalog_1" style="margin-top:10px">@leftMenuName@</div>
<div id="bg_catalog_2"></div>
<div style="color:#000000">@leftMenuContent@</div>

   
 
 автор: bronenos   (26.01.2008 в 14:22)   письмо автору
 
   для: Indemion   (26.01.2008 в 11:52)
 

в php недоделанный интерпретатор, в нем нельзя писать так сразу индексы, необходимо сначала присвоить временной переменной массив, а потом уже к ней обращаться

   
 
 автор: Indemion   (26.01.2008 в 16:32)   письмо автору
 
   для: bronenos   (26.01.2008 в 14:22)
 

Да, но когда этот файл был зазенден, то все работало! Либо раскрылся неверно, либо что-то еще. Хотелось бы понять что, а то директор требует немного изменить работу скрипты. Разработчики магазина посылают или требуют большие деньги за небольшие изменения.

   
 
 автор: Indemion   (26.01.2008 в 19:29)   письмо автору
 
   для: Indemion   (26.01.2008 в 16:32)
 

Решил задачу так:
<?
function ParseTemplateReturn($path)
{
global 
$SysValue;
global 
$LoadItems;
global 
$_SESSION;
$file_value shop_read_file($SysValue['dir']['templates'].chr(47).$_SESSION['skin'].chr(47).$path);
$all count($file_value);
for (
$prohod 0$prohod $all$prohod++)
{
$result constants($file_value[$prohod]);
$return_value .= $result;
}
return 
$return_value;
}
?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования