本文整理汇总了PHP中XenForo_Template_Compiler::compileFunction方法的典型用法代码示例。如果您正苦于以下问题:PHP XenForo_Template_Compiler::compileFunction方法的具体用法?PHP XenForo_Template_Compiler::compileFunction怎么用?PHP XenForo_Template_Compiler::compileFunction使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XenForo_Template_Compiler
的用法示例。
在下文中一共展示了XenForo_Template_Compiler::compileFunction方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: prepareMediaExifData
public function prepareMediaExifData(array $media)
{
$media['exifData'] = @unserialize($media['media_exif_data_cache']);
if (!is_array($media['exifData'])) {
$media['exifData'] = array();
}
if (isset($media['exifData']['Flash'])) {
$media['exifData']['Flash']['value'] = new XenForo_Phrase('xengallery_exif_flash_' . $media['exifData']['Flash']['value']);
}
foreach ($media['exifData'] as $key => &$exifData) {
$cleanKey = preg_replace('/[^a-zA-Z0-9_]+/', '', strtolower($key));
$exifData['title'] = new XenForo_Phrase('xengallery_exif_title_' . $cleanKey);
if ($exifData['format']) {
if (strstr($exifData['format'], 'xen:calc')) {
try {
$compiler = new XenForo_Template_Compiler();
$safeValue = $compiler->compileFunction('calc', array($exifData['value']), array());
$safeValue = eval("return ({$safeValue});");
$exifData['format'] = preg_replace('/{xen:calc(.*?)\'}/i', '{value}', $exifData['format']);
$exifData['value'] = $safeValue;
$exifData['value'] = str_replace('{value}', $exifData['value'], $exifData['format']);
} catch (Exception $e) {
}
continue;
}
if (strstr($exifData['format'], 'xen:number')) {
$exifData['isNumber'] = true;
if (strstr($exifData['format'], 'size')) {
$exifData['isSize'] = true;
}
continue;
}
if (is_array($exifData['value'])) {
$exifData['value'] = @json_encode($exifData['value']);
continue;
}
$exifData['value'] = str_replace('{value}', $exifData['value'], $exifData['format']);
}
}
$media['exifDataFull'] = @json_decode($media['media_exif_data_cache_full'], true);
if (!is_array($media['exifDataFull'])) {
$media['exifDataFull'] = array();
}
return $media;
}