Exemplo n.º 1
0
 /**
  * fname
  * 
  * @param string $f
  * @param string $name
  * @param int    $register
  * @param int    $i
  * @param bool   $overwrite
  * @return string
  */
 public function fname($f = '', $name = '', $register = 0, $i = 0, $overwrite = false)
 {
     // [replace=from,to] - replace
     // [n=0] - meter
     // [f] - type
     // [name] - name
     // [date] - date
     // [rand=8,16] - random
     // $f = rawurldecode($f);
     $info = pathinfo($f);
     $info['dirname'] = IOWrapper::get($info['dirname']);
     $info['basename'] = IOWrapper::get($info['basename']);
     $info['extension'] = IOWrapper::get($info['extension']);
     $info['filename'] = IOWrapper::get($info['filename']);
     if (preg_match_all('/\\[replace=([^,]),([^\\]])/U', $name, $arr, PREG_SET_ORDER)) {
         foreach ($arr as $var) {
             $name = str_replace($var[1], $var[2], $info['filename'] . '.' . $info['extension']);
         }
     }
     if (preg_match_all('/\\[n=*(\\d*)\\]/U', $name, $arr, PREG_SET_ORDER)) {
         foreach ($arr as $var) {
             $name = str_replace($var[0], $var[1] + $i, $name);
         }
     }
     if (preg_match_all('/\\[rand=*(\\d*),*(\\d*)\\]/U', $name, $arr, PREG_SET_ORDER)) {
         foreach ($arr as $var) {
             $name = str_replace($var[0], mb_substr(str_shuffle(Config::get('Gmanager', 'rand')), 0, mt_rand(!empty($var[1]) ? $var[1] : 8, !empty($var[2]) ? $var[2] : 16)), $name);
         }
     }
     $name = str_replace('[f]', $info['extension'], $name);
     $name = str_replace('[name]', $info['filename'], $name);
     $name = str_replace('[date]', strftime('%d_%m_%Y'), $name);
     if ($register == 1) {
         $tmp = mb_strtolower($name);
     } elseif ($register == 2) {
         $tmp = mb_strtoupper($name);
     } else {
         $tmp = $name;
     }
     if (!$overwrite && self::$_instance->file_exists($info['dirname'] . '/' . $tmp)) {
         return Helper_View::message(Language::get('overwrite_false') . ' (' . htmlspecialchars($info['dirname'] . '/' . $tmp, ENT_NOQUOTES) . ')', Helper_View::MESSAGE_ERROR);
     }
     if (self::$_instance->rename($f, $info['dirname'] . '/' . $tmp)) {
         return Helper_View::message($info['basename'] . ' - ' . $tmp, Helper_View::MESSAGE_SUCCESS);
     } else {
         return Helper_View::message(Errors::get() . ' ' . $info['basename'] . ' -> ' . $tmp, Helper_View::MESSAGE_ERROR_EMAIL);
     }
 }