aboutsummaryrefslogtreecommitdiff
path: root/app/class
diff options
context:
space:
mode:
authorvincent-peugnet <v.peugnet@free.fr>2020-03-23 16:19:48 +0100
committervincent-peugnet <v.peugnet@free.fr>2020-03-23 16:26:48 +0100
commit7d1b16dce7e435caefd39975ca68a08c4f79fc03 (patch)
treeb075ed8e9531bce23845eba0b9fef585901ebde1 /app/class
parent73e2d40ee0d82c9d68eca8db35b323db77eb5713 (diff)
downloadwcms-7d1b16dce7e435caefd39975ca68a08c4f79fc03.tar.gz
wcms-7d1b16dce7e435caefd39975ca68a08c4f79fc03.zip
map integration in home
Diffstat (limited to 'app/class')
-rw-r--r--app/class/Controllerhome.php7
-rw-r--r--app/class/Model.php8
-rw-r--r--app/class/Modelhome.php43
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);
+
}