<?php
/**
 * Ce script définit la classe 'storage'.
 *
 * @package openelec
 * @version SVN : $Id$
 */

require_once "../gen/obj/storage.class.php";

/**
 * Définition de la classe 'storage' (om_dbform).
 */
class storage extends storage_gen {

    /**
     * Définition des actions disponibles sur la classe.
     *
     * @return void
     */
    function init_class_actions() {
        parent::init_class_actions();
        //
        $this->class_actions[0] = null;
        //
        $this->class_actions[1] = null;
        //
        $this->class_actions[2] = null;
        //
        $this->class_actions[4] = array(
            "identifier" => "all",
            "view" => "view_all",
            "permission_suffix" => "voir_tous",
        );
    }

    /**
     *
     * @return string
     */
    function get_default_libelle() {
        return $this->getVal($this->clePrimaire)."&nbsp;".$this->getVal("filename");
    }

    /**
     *
     * @return void
     */
    function setType(&$form, $maj) {
        parent::setType($form, $maj);

        // En mode consultation
        if ($maj == 3) {
            $form->setType('uid', 'file');
            $form->setType('filename', 'hidden');
            $form->setType('om_collectivite', 'hidden');
        }
    }

    /**
     *
     * @return void
     */
    function setLib(&$form, $maj) {
        parent::setLib($form, $maj);

        $form->setLib('storage', __('identifiant'));
        $form->setLib('creation_date', __('date de création'));
        $form->setLib('creation_time', __('heure de création'));
        $form->setLib('uid', __('fichier'));
        $form->setLib('size', __('taille du fichier'));
        $form->setLib('mimetype', __('mimetype du fichier'));
        $form->setLib('type', __('type'));
        $form->setLib('info', __('info'));
    }

    /**
     *
     * @return mixed Identifiant du fichier ou null si enregistrement inexistant
     *               ou false en cas d'erreur de bdd.
     */
    function get_storage_id_by_uid($uid) {
        $id = null;
        if ($uid !== '' && $uid !== null) {
            $query = sprintf('
                SELECT storage
                FROM %1$sstorage
                WHERE uid = \'%2$s\'
                ',
                DB_PREFIXE,
                $uid
            );
            $res = $this->f->get_one_result_from_db_query(
                $query,
                true
            );
            if ($res['code'] === 'KO') {
                return false;
            }
            $id = $res['result'];
        }
        //
        return $id;
    }
}
