Habari\AdminPostsHandler::ajax_media PHP Метод

ajax_media() публичный Метод

Handles AJAX requests from media silos.
public ajax_media ( $handler_vars )
    public function ajax_media($handler_vars)
    {
        Utils::check_request_method(array('POST'));
        $path = $_POST['path'];
        $rpath = $path;
        $silo = Media::get_silo($rpath, true);
        // get_silo sets $rpath by reference to the path inside the silo
        $assets = Media::dir($path);
        $output = array('ok' => 1, 'dirs' => array(), 'files' => array(), 'path' => $path);
        foreach ($assets as $asset) {
            if ($asset->is_dir) {
                $output['dirs'][$asset->basename] = $asset->get_props();
            } else {
                $output['files'][$asset->basename] = $asset->get_props();
            }
        }
        $rootpath = MultiByte::strpos($path, '/') !== false ? MultiByte::substr($path, 0, MultiByte::strpos($path, '/')) : $path;
        $controls = array('root' => '<a href="#" onclick="habari.media.fullReload();habari.media.showdir(\'' . $rootpath . '\');return false;">' . _t('Root') . '</a>');
        $controls = Plugins::filter('media_controls', $controls, $silo, $rpath, '');
        $controls_out = '';
        foreach ($controls as $k => $v) {
            if (is_numeric($k)) {
                $controls_out .= "<li>{$v}</li>";
            } else {
                $controls_out .= "<li class=\"{$k}\">{$v}</li>";
            }
        }
        $output['controls'] = $controls_out;
        $ar = new AjaxResponse();
        $ar->data = $output;
        $ar->out();
    }