tpl->addBlock('Attachments',array('attachmentTpl','Attachments')); $core->tpl->addBlock('AttachmentsHeader',array('attachmentTpl','AttachmentsHeader')); $core->tpl->addBlock('AttachmentsFooter',array('attachmentTpl','AttachmentsFooter')); $core->tpl->addValue('AttachmentMimeType',array('attachmentTpl','AttachmentMimeType')); $core->tpl->addValue('AttachmentType',array('attachmentTpl','AttachmentType')); $core->tpl->addValue('AttachmentFileName',array('attachmentTpl','AttachmentFileName')); $core->tpl->addValue('AttachmentSize',array('attachmentTpl','AttachmentSize')); $core->tpl->addValue('AttachmentTitle',array('attachmentTpl','AttachmentTitle')); $core->tpl->addValue('AttachmentThumbnailURL',array('attachmentTpl','AttachmentThumbnailURL')); $core->tpl->addValue('AttachmentURL',array('attachmentTpl','AttachmentURL')); $core->tpl->addValue('MediaURL',array('attachmentTpl','MediaURL')); $core->tpl->addBlock('AttachmentIf',array('attachmentTpl','AttachmentIf')); $core->tpl->addValue('EntryAttachmentCount',array('attachmentTpl','EntryAttachmentCount')); $core->addBehavior('tplIfConditions',array('attachmentBehavior','tplIfConditions')); class attachmentTpl { /*dtd */ public static function Attachments($attr,$content) { $res = "posts !== null && $core->media) {'."\n". '$_ctx->attachments = new ArrayObject($core->media->getPostMedia($_ctx->posts->post_id));'."\n". "?>\n". 'attachments as $attach_i => $attach_f) : '. '$GLOBALS[\'attach_i\'] = $attach_i; $GLOBALS[\'attach_f\'] = $attach_f;'. '$_ctx->file_url = $attach_f->file_url; ?>'. $content. 'attachments = null; unset($attach_i,$attach_f,$_ctx->file_url); ?>'. "\n"; return $res; } /*dtd */ public static function AttachmentsHeader($attr,$content) { return "". $content. ""; } /*dtd */ public static function AttachmentsFooter($attr,$content) { return "attachments)) : ?>". $content. ""; } /*dtd */ public static function AttachmentIf($attr,$content) { $if = array(); $operator = isset($attr['operator']) ? dcTemplate::getOperator($attr['operator']) : '&&'; if (isset($attr['is_image'])) { $sign = (boolean) $attr['is_image'] ? '' : '!'; $if[] = $sign.'$attach_f->media_image'; } if (isset($attr['has_thumb'])) { $sign = (boolean) $attr['has_thumb'] ? '' : '!'; $if[] = $sign.'isset($attach_f->media_thumb[\'sq\'])'; } if (isset($attr['is_mp3'])) { $sign = (boolean) $attr['is_mp3'] ? '==' : '!='; $if[] = '$attach_f->type '.$sign.' "audio/mpeg3"'; } if (isset($attr['is_flv'])) { $sign = (boolean) $attr['is_flv'] ? '' : '!'; $if[] = $sign. '($attach_f->type == "video/x-flv" || '. '$attach_f->type == "video/mp4" || '. '$attach_f->type == "video/x-m4v")'; } if (count($if) != 0) { return ''.$content.''; } else { return $content; } } /*dtd */ public static function AttachmentMimeType($attr) { $f = $GLOBALS['core']->tpl->getFilters($attr); return 'type').'; ?>'; } /*dtd */ public static function AttachmentType($attr) { $f = $GLOBALS['core']->tpl->getFilters($attr); return 'media_type').'; ?>'; } /*dtd */ public static function AttachmentFileName($attr) { $f = $GLOBALS['core']->tpl->getFilters($attr); return 'basename').'; ?>'; } /*dtd */ public static function AttachmentSize($attr) { $f = $GLOBALS['core']->tpl->getFilters($attr); if (!empty($attr['full'])) { return 'size').'; ?>'; } return 'size)').'; ?>'; } /*dtd */ public static function AttachmentTitle($attr) { $f = $GLOBALS['core']->tpl->getFilters($attr); return 'media_title').'; ?>'; } /*dtd */ public static function AttachmentThumbnailURL($attr) { $f = $GLOBALS['core']->tpl->getFilters($attr); return 'media_thumb[\'sq\'])) {'. 'echo '.sprintf($f,'$attach_f->media_thumb[\'sq\']').';'. '}'. '?>'; } /*dtd */ public static function AttachmentURL($attr) { $f = $GLOBALS['core']->tpl->getFilters($attr); return 'file_url').'; ?>'; } public static function MediaURL($attr) { $f = $GLOBALS['core']->tpl->getFilters($attr); return 'file_url').'; ?>'; } /*dtd */ public static function EntryAttachmentCount($attr) { global $core; return $core->tpl->displayCounter( '$_ctx->posts->countMedia()', array( 'none' => 'no attachments', 'one' => 'one attachment', 'more' => '%d attachments' ), $attr, false ); } } class attachmentBehavior { public static function tplIfConditions($tag,$attr,$content,$if) { if ($tag == "EntryIf" && isset($attr['has_attachment'])) { $sign = (boolean) $attr['has_attachment'] ? '' : '!'; $if[] = $sign.'$_ctx->posts->countMedia()'; } } }