PHP Classes

File: engine/modules/core/file/file.qtags.inc

Recommend this page to a friend!
  Classes of Aldo Tripiciano   Quanta CMS   engine/modules/core/file/file.qtags.inc   Download  
File: engine/modules/core/file/file.qtags.inc
Role: Example script
Content type: text/plain
Description: Example script
Class: Quanta CMS
Manage content that works without a database
Author: By
Last change:
Date: 6 years ago
Size: 3,500 bytes
 

Contents

Class file image Download
<?php
/**
 * Implements FILEATTRIBUTE qtag.
 *
 * Renders an attribute of a file.
 *
 * @param Environment $env
 * The Environment.
 *
 * @param string $target
 * The qtag's target.
 *
 * @param array $attributes
 * The qtag's attributes.
 *
 * @return string
 * The rendered qtag.
 */
function qtag_FILEATTRIBUTE($env, $target, $attributes) {
 
$node = empty($attributes['node']) ? NodeFactory::current($env) : NodeFactory::load($env, $attributes['node']);
 
$file = new File($env, $target, $node);
 
$string = NULL;

 
// Check which file attribute is requested, and provide it.
 
switch($attributes['name']) {

    case
'name':
     
$string = $file->getName();
      break;

    case
'path':
     
$string = $file->getFullPath();
      break;

    case
'type':
     
$string = $file::getFileType($file->getExtension());
      break;

    case
'size':
     
$string = $file->getFileSize();
      break;
  }

  return
$string;
}

/**
 * Implements FILE qtag.
 *
 * Render a file item.
 *
 * @param Environment $env
 * The Environment.
 *
 * @param string $target
 * The qtag's target.
 *
 * @param array $attributes
 * The qtag's attributes.
 *
 * @return string
 * The rendered qtag.
 */
function qtag_FILE($env, $target, $attributes) {
 
$node = empty($attributes['node']) ? NodeFactory::current($env) : NodeFactory::load($env, $attributes['node']);

 
$file = new File($env, $target, $node, $attributes['title']);
 
// Return the rendered file, if exists.
 
if ($file->exists) {
    return
$file->render();
  }
  else {
    return
NULL;
  }
}


/**
 * Implements PREVIEW qtag.
 *
 * Render a preview of a file.
 *
 * @param Environment $env
 * The Environment.
 *
 * @param string $target
 * The qtag's target.
 *
 * @param array $attributes
 * The qtag's attributes.
 *
 * @return string
 * The rendered qtag.
 */
function qtag_FILE_PREVIEW($env, $target, $attributes) {
 
$node = empty($attributes['node']) ? NodeFactory::current($env) : NodeFactory::load($env, $attributes['node']);
  if (isset(
$attributes['tmp_path'])) {
   
$target = $env->dir['tmp'] . '/files/' . $attributes['tmp_path'] . '/' . $target;
   
$node->setName(NODE_NEW);
  }

 
$file = new File($env, $target, NODE_NEW);
 
$preview = '';
  switch(
$file->getType()) {
    case
'image':
     
$attributes['150x150'] = TRUE;
     
$attributes['node'] = $node->getName();
     
$preview = qtag_IMGTHUMB($env, $target, $attributes);
      break;

    default:
      break;
  }

  return
'<div class="file-preview-item file-' . $file->getType() . '">' . $preview . '</div>';
}

/**
 * Implements FILE_QTAG_SUGGESTION qtag.
 *
 * Provides a "suggested qtag" for rendering a file.
 *
 * @param Environment $env
 * The Environment.
 *
 * @param string $target
 * The qtag's target.
 *
 * @param array $attributes
 * The qtag's attributes.
 *
 * @return string
 * The rendered qtag.
 */
function qtag_FILE_QTAG_SUGGESTION($env, $target, $attributes) {
 
$node = empty($attributes['node']) ? NodeFactory::current($env) : NodeFactory::load($env, $attributes['node']);
  if (isset(
$attributes['tmp_path'])) {
   
$file = new File($env, $env->dir['tmp'] . '/files/' . $attributes['tmp_path'] . '/' . $target, NODE_NEW);
  }
  else {
   
$file = new File($env, $target, $node);
  }

  switch(
$file->getType()) {
    case
'image':
     
$suggestion = '[IMG|showtag:' . $target . ']';
      break;

    default:
     
$suggestion = '[FILE|showtag:' . $target . ']';
      break;
  }

  return
$suggestion;
}