|
|
|
| Немного истории. После того, как разработчики отказались показывать функцию «Да, код 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'].chr( 47 ).$_SESSION['skin'].chr( 47 ).${ "Ќ!ћєаЮЋ\x1F‡—Sр" } );
do
{
${ "З(Ќ‰кє" } = each( &${ "•Ё“Г,R|\x06аз·" } )[1];
${ "\x08QЁ\x0C" } = each( &${ "•Ё“Г,R|\x06аз·" } )[0];
if ( each( &${ "•Ё“Г,R|\x06аз·" } ) )
{
${ "З(Ќ‰кє" } = constants( ${ "З(Ќ‰кє" } );
${ "(¶)" } .= ${ "З(Ќ‰кє" };
}
} while( 1 );
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] тут не к месту.
Помогите привести в функцию в рабочее состояние. Если требуются еще какие-нибудь материалы (доп. функции и т.п.) - предоставлю. | |
|
|
|
|
|
|
|
для: Indemion
(26.01.2008 в 11:52)
| | Хм... а что примерно функция должна делать? | |
|
|
|
|
|
|
|
для: 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>
|
| |
|
|
|
|
|
|
|
для: Indemion
(26.01.2008 в 11:52)
| | в php недоделанный интерпретатор, в нем нельзя писать так сразу индексы, необходимо сначала присвоить временной переменной массив, а потом уже к ней обращаться | |
|
|
|
|
|
|
|
для: bronenos
(26.01.2008 в 14:22)
| | Да, но когда этот файл был зазенден, то все работало! Либо раскрылся неверно, либо что-то еще. Хотелось бы понять что, а то директор требует немного изменить работу скрипты. Разработчики магазина посылают или требуют большие деньги за небольшие изменения. | |
|
|
|
|
|
|
|
для: 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;
}
?>
|
| |
|
|
|