diff options
author | vincent-peugnet <v.peugnet@free.fr> | 2020-03-23 16:19:48 +0100 |
---|---|---|
committer | vincent-peugnet <v.peugnet@free.fr> | 2020-03-23 16:26:48 +0100 |
commit | 7d1b16dce7e435caefd39975ca68a08c4f79fc03 (patch) | |
tree | b075ed8e9531bce23845eba0b9fef585901ebde1 /app/class | |
parent | 73e2d40ee0d82c9d68eca8db35b323db77eb5713 (diff) | |
download | wcms-7d1b16dce7e435caefd39975ca68a08c4f79fc03.tar.gz wcms-7d1b16dce7e435caefd39975ca68a08c4f79fc03.zip |
map integration in home
Diffstat (limited to 'app/class')
-rw-r--r-- | app/class/Controllerhome.php | 7 | ||||
-rw-r--r-- | app/class/Model.php | 8 | ||||
-rw-r--r-- | app/class/Modelhome.php | 43 |
3 files changed, 46 insertions, 12 deletions
diff --git a/app/class/Controllerhome.php b/app/class/Controllerhome.php index 86b2f6f..7b7024d 100644 --- a/app/class/Controllerhome.php +++ b/app/class/Controllerhome.php @@ -45,6 +45,13 @@ class Controllerhome extends Controllerpage $vars['opt'] = $this->opt; $vars['deepsearch'] = $deepsearch['regex']; $vars['searchopt'] = $deepsearch['searchopt']; + $vars['display'] = $_GET['display'] ?? 'list'; + + $vars['layout'] = $_GET['layout'] ?? 'random'; + if($vars['display'] === 'map') { + $datas = $this->modelhome->cytodata($vars['table2'], $vars['layout']); + $vars['json'] = json_encode($datas, JSON_PRETTY_PRINT); + } $vars['footer'] = ['version' => getversion(), 'total' => count($pagelist), 'database' => Config::pagetable()]; diff --git a/app/class/Model.php b/app/class/Model.php index 5847f74..ae56c2f 100644 --- a/app/class/Model.php +++ b/app/class/Model.php @@ -20,6 +20,14 @@ abstract class Model const GLOBAL_DIR = 'assets'. DIRECTORY_SEPARATOR . 'global' . DIRECTORY_SEPARATOR; const DATABASE_DIR = '.' . DIRECTORY_SEPARATOR . 'database' . DIRECTORY_SEPARATOR; const PAGES_DIR = self::DATABASE_DIR . 'pages' . DIRECTORY_SEPARATOR; + + const MAP_LAYOUTS = [ + 'cose' => 'cose', + 'circle' => 'circle', + 'random' => 'random', + 'cose-bilkent' => 'cose-bilkent' + ]; + const MEDIA_EXT = [ 'jpg' => 'image', diff --git a/app/class/Modelhome.php b/app/class/Modelhome.php index 343a879..18ae1a5 100644 --- a/app/class/Modelhome.php +++ b/app/class/Modelhome.php @@ -45,8 +45,10 @@ class Modelhome extends Modelpage * @param array $table * @param Opt $opt * @param string $regex + * + * @return array of `Page` object */ - public function table2(array $table, Opt $opt, string $regex = "", array $searchopt = []) + public function table2(array $table, Opt $opt, string $regex = "", array $searchopt = []) : array { @@ -135,17 +137,11 @@ class Modelhome extends Modelpage /** * Transform list of page into list of nodes and edges */ - public function mapdata(array $pagelist) + public function cytodata(array $pagelist, string $layout = 'random') { - $nodes = []; - $edges = []; - foreach ($pagelist as $page) { - $node['group'] = 'nodes'; - $node['data']['id'] = $page->id(); - $node['classes'] = [$page->secure('string')]; - $nodes[] = $node; - + $datas['elements'] = $this->mapdata($pagelist); +<<<<<<< HEAD foreach ($page->linkto() as $linkto) { $edge['group'] = 'edges'; $edge['data']['id'] = $page->id() . '>' . $linkto; @@ -157,6 +153,11 @@ class Modelhome extends Modelpage $datas['elements'] = array_merge($nodes, $edges); $datas['layout']['name'] = 'cose-bilkent'; +======= + $datas['layout'] = [ + 'name' => $layout, + ]; +>>>>>>> map integration in home $datas['style'] = [ [ 'selector' => 'node', @@ -175,9 +176,27 @@ class Modelhome extends Modelpage return $datas; } - public function cytodata(array $mapdata) + public function mapdata(array $pagelist) { - + $nodes = []; + $edges = []; + foreach ($pagelist as $page) { + $node['group'] = 'nodes'; + $node['data']['id'] = $page->id(); + $node['classes'] = [$page->secure('string')]; + $nodes[] = $node; + + + foreach ($page->linkto() as $linkto) { + $edge['group'] = 'edges'; + $edge['data']['id'] = $page->id() . '>' . $linkto; + $edge['data']['source'] = $page->id(); + $edge['data']['target'] = $linkto; + $edges[] = $edge; + } + } + return array_merge($nodes, $edges); + } |