return Ans::err($ans, 'Письмо уже отправлено! Новое сообщение можно будет отправить через 1 минуту!'); } $_SESSION['submit_time'] = time(); } $ans['testmail'] = $mdata['testmail']; if ($maildir) { $folder = Path::theme($maildir); $name = Path::tofs(Path::encode($data['name'])); $fname = date('Y F j H-i') . ' ' . $name . ' ' . time(); if ($conf['file'] && $file) { $src = $folder . $fname . '.' . Path::tofs($file['name']); $r = move_uploaded_file($file['tmp_name'], $src); if (!$r) { return Ans::err($ans, 'Неудалось загрузить файл'); } $data['file'] = Path::toutf(Path::pretty($src)); } } $body = Template::parse('-contacts/mail.tpl', $data); if (!$body) { $body = 'Ошибка. Не найден шаблон письма!'; } if ($maildir) { file_put_contents($folder . $fname . '.txt', print_r($body, true) . "\n\n\n\n\n" . print_r($mdata, true)); } if (!isset($mdata['email_from'])) { return Ans::err($ans, 'Ошибка с адресом получателя!'); } $r = Mail::toAdmin($mdata['subject'], $mdata['email_from'], $body, $mdata['testmail']); if (!$r) { return Ans::err($ans, "Неудалось отправить письмо из-за ошибки на сервере!");
$keys['time'] = time(); $r = file_put_contents($src, Load::json_encode($keys)); } if ($r) { return Ans::ret($ans, 'SEO-данные сохранены'); } return Ans::err($ans, 'Ошибка. SEO-данные не сохранены'); } } elseif ($type === 'corfile') { if (!$submit) { $folder = Path::resolve($id); $path = explode('/', $folder); $name = array_pop($path); //Так как папка заканчивается на / последний элемент в массиве буедт всегда пустым $parent = implode('/', $path) . '/'; $parent = Path::pretty($parent); $ans['oldfolder'] = $parent; //Папка в которой можно увидеть обрабатываемую папку $ans['oldname'] = $name; $ans['content'] = Load::loadTEXT($id); return Ans::ret($ans); } else { $file = $id; //$isdir=Path::theme($file,'sdn'); //if($isdir) return infra_echo($ans,'Существует папка с именем как у файла '.$id); $isfile = Path::theme($file); if (!$isfile) { if (!autoedit_ext($file)) { $file .= '.tpl'; } $ans['msg'] .= 'Файл был создан<br>';
use infrajs\router\Router; use infrajs\hash\Hash; use infrajs\load\Load; if (!is_file('vendor/autoload.php')) { chdir('../../../'); require_once 'vendor/autoload.php'; Router::init(); } $ans = array(); $isrc = Ans::GET('src'); if (preg_match('/^\\//', $isrc)) { $isrc = preg_replace('/^\\//', '', $isrc); } $num = Ans::GET('num', 'int', 0); $re = isset($_GET['re']); $psrc = Path::pretty($isrc); Nostore::pubStat(); //Если кэширование разрешено сделает его долгим как для статики if (is_null($isrc)) { return Ans::err($ans, '?src= to the image required. Relative to the siteroot. For example vendor/infrajs/imager/?src=vendor/infrajs/imager/test.jpg'); } $src = Imager::prepareSrc($isrc, $num); $or = Ans::GET('or'); //Путь на случай если src не найден if (!$src && $or) { $src = Imager::prepareSrc($or, $num); } //Путь не найден смотрим or Imager::modified($src); $mark = Ans::GET('mark', 'bool'); $w = Ans::GET('w', 'int');
print_r($c); throw new \Exception('Tester. Некорректно указан путь до теста.'); } if (Path::isDir($tsrc)) { $files = scandir($tsrc); foreach ($files as $file) { if ($file[0] == '.') { continue; } if (!is_file($tsrc . $file)) { continue; } $list[$name][] = Path::pretty($tsrc . $file); } } else { $list[$name][] = Path::pretty($tsrc); } return $r; }); } $data = array('list' => array()); $errors = array(); foreach ($list as $name => $files) { foreach ($files as $file) { $ext = Path::getExt($file); if ($ext != 'php') { continue; } $finfo = Load::srcInfo($file); $text = Load::loadTEXT($file . '?type=auto'); if (strlen($text) > 1000) {
public static function addFiles($root, &$pos, $dir = false) { $props = array('producer', 'article'); if (!isset($pos['images'])) { $pos['images'] = array(); } if (!isset($pos['texts'])) { $pos['texts'] = array(); } if (!isset($pos['files'])) { $pos['files'] = array(); } if (!$dir) { $dir = array(); $pth = Path::resolve($root); if (Each::forr($props, function &($name) use(&$dir, &$pos) { $rname = Sequence::right($name); $val = Sequence::get($pos, $rname); if (!$val) { return true; } $dir[] = $val; $r = null; return $r; })) { return; } if ($dir) { $dir = implode('/', $dir) . '/'; $dir = $pth . $dir; } else { $dir = $pth; } } else { $dir = $root . $dir; } $dir = Path::theme($dir); if (!$dir) { return false; } if (is_dir($dir)) { $paths = glob($dir . '*'); } elseif (is_file($dir)) { $paths = array($dir); $p = Load::srcInfo($dir); $dir = $p['folder']; } Each::forr($paths, function &($p) use(&$pos, $dir) { $d = explode('/', $p); $name = array_pop($d); $n = mb_strtolower($name); $fd = Load::nameInfo($n); $ext = $fd['ext']; //if(!$ext)return; if (!is_file($dir . $name)) { return; } //$name=preg_replace('/\.\w{0,4}$/','',$name); /*$p=pathinfo($p); $name=$p['basename']; $ext=strtolower($p['extension']);*/ if ($name[0] == '.') { return; } $dir = Path::pretty($dir); $name = Path::toutf($dir . $name); $im = array('png', 'gif', 'jpg'); $te = array('html', 'tpl', 'mht', 'docx'); if (in_array($ext, $im)) { $pos['images'][] = $name; } else { if (in_array($ext, $te)) { $pos['texts'][] = $name; } else { if ($ext != 'db') { $pos['files'][] = $name; } } } $r = null; return $r; }); $pos['images'] = array_unique($pos['images']); $pos['texts'] = array_unique($pos['texts']); $pos['files'] = array_unique($pos['files']); }
public static function getPos(&$pos) { $args = array($pos['producer'], $pos['article']); return Access::cache('Catalog::getPos', function () use($pos) { Xlsx::addFiles(Catalog::$conf['dir'], $pos); $files = explode(',', @$pos['Файлы']); foreach ($files as $f) { if (!$f) { continue; } $f = trim($f); Xlsx::addFiles(Catalog::$conf['dir'], $pos, $f); } $files = array(); foreach ($pos['files'] as $f) { if (is_string($f)) { $f = Path::theme($f); //убрали звездочку $d = Load::srcInfo(Path::toutf($f)); } else { $d = $f; $f = $d['src']; } $d['size'] = round(filesize(Path::tofs($f)) / 1000000, 2); if (!$d['size']) { $d['size'] = '0.01'; } $d['src'] = Path::pretty($d['src']); $files[] = $d; } $pos['files'] = $files; if ($pos['texts']) { foreach ($pos['texts'] as $k => $t) { $pos['texts'][$k] = Load::loadTEXT('-doc/get.php?src=' . $t); } } return $pos; }, $args); }