public static function addFiles(&$pos, $dir = false) { $conf = infra_config(); $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 = $conf['catalog']['dir']; if (infra_forr($props, function &($name) use(&$dir, &$pos) { $rname = infra_seq_right($name); $val = infra_seq_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; } } $dir = infra_theme($dir); if (!$dir) { return false; } if (is_dir($dir)) { $paths = glob($dir . '*'); } elseif (is_file($dir)) { $paths = array($dir); $p = infra_srcinfo($dir); $dir = $p['folder']; } infra_forr($paths, function &($p) use(&$pos, $dir) { $d = explode('/', $p); $name = array_pop($d); $n = infra_strtolower($name); $fd = infra_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']);*/ $dirs = infra_dirs(); $dir = preg_replace('/^' . str_replace('/', '\\/', $dirs['data']) . '/', '*', $dir); $name = infra_toutf($dir . $name); if ($name[0] == '.') { return; } $im = array('png', 'gif', 'jpg'); $te = array('html', 'tpl', 'mht', 'docx'); if (infra_forr($im, function ($e) use($ext) { if ($ext == $e) { return true; } })) { $pos['images'][] = $name; } elseif (infra_forr($te, function ($e) use($ext) { if ($ext == $e) { return true; } })) { $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']); }
} else { $data['description'] = 'Новостная лента сайта ' . $_SERVER['HTTP_HOST']; } $data['time'] = infra_admin_time(); $data['link'] = 'http://' . infra_view_getHost() . '/' . infra_view_getRoot(); $conf = infra_config(); $exts = array('docx', 'tpl', 'mht', 'html'); $files = $conf['files']; $folders = array(array('dir' => $files['folder_blog'], 'link' => '?Блог/'), array('dir' => $files['folder_events'], 'link' => '?События/'), array('dir' => $files['folder_pages'], 'link' => '?')); $items = array(); infra_forr($folders, function ($fold) use($exts, &$items) { if (!$fold['dir']) { return; } $ar = files_list($fold['dir'], 0, 100, $exts); if (!$ar) { return; } $ar = array_values($ar); infra_forr($ar, function (&$itm) use($fold) { $itm = array("title" => strip_tags($itm['title']), "link" => $itm['link'], "description" => strip_tags($itm['preview']), "pubDate" => $itm['date'], "link" => $fold['link'] . $itm['name']); }); $items = array_merge($items, $ar); }); usort($items, function ($i, $j) { if ($i['pubDate'] < $j['pubDate']) { return 1; } }); $data['items'] = $items; return infra_ans($data);