. * */ namespace Vvveb\Controller\Tools; use function Vvveb\__; use Vvveb\Controller\Base; use Vvveb\System\Extensions\Plugins; use Vvveb\System\Extensions\Themes; use Vvveb\System\Import\Xml; class Export extends Base { function __construct() { $this->xml = new Xml(); } function export() { $tables = $this->request->post['table']; $xml = new Xml(); $xmlData = $xml->export($tables); header('Content-Disposition: attachment; filename=vvveb-export.xml'); header('Content-Type: application/octet-stream'); echo $xmlData; die(); } private function namespaceTree() { $tableNames = $this->xml->getTableNames(); foreach ($tableNames as $tableName) { $pos = strpos($tableName,'_'); $namespace = substr($tableName, 0, $pos); if ($namespace) { $subspace = substr($tableName, $pos + 1); $namespace = __(\Vvveb\humanReadable($namespace)); $subspace = __(\Vvveb\humanReadable($subspace)); //$subspace = !empty($subspace) ? $subspace : $tableName; $namespaces[$namespace][$subspace] = $tableName; } else { $namespace = __(\Vvveb\humanReadable($tableName)); $namespaces[$namespace][$namespace] = $tableName; } } ksort($namespaces); foreach ($namespaces as &$subspaces) { ksort($subspaces); } return $namespaces; } function index() { $this->view->namespaces = $this->namespaceTree(); $this->view->plugins = Plugins::getList(null); $this->view->themes = Themes::getList(null); } }