本文整理匯總了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;
}