aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvincent-peugnet <v.peugnet@free.fr>2020-02-12 21:05:46 +0100
committervincent-peugnet <v.peugnet@free.fr>2020-02-12 21:09:32 +0100
commite115875801c2e32399079c4ef92bb11ceb4f2c1d (patch)
treea5251d843999b7c751c8f040685cc42b4d50f42a
parent0893f20446a6645c5f928f2cb41f688a9fc5fcf1 (diff)
downloadwcms-e115875801c2e32399079c4ef92bb11ceb4f2c1d.tar.gz
wcms-e115875801c2e32399079c4ef92bb11ceb4f2c1d.zip
generate cytoscape datas
-rw-r--r--app/class/Controllerhome.php25
-rw-r--r--app/class/Modelhome.php41
-rw-r--r--app/view/templates/map.php5
3 files changed, 64 insertions, 7 deletions
diff --git a/app/class/Controllerhome.php b/app/class/Controllerhome.php
index 42ace87..86b2f6f 100644
--- a/app/class/Controllerhome.php
+++ b/app/class/Controllerhome.php
@@ -86,6 +86,24 @@ class Controllerhome extends Controllerpage
}
}
+ /**
+ * Temporary map display function
+ */
+ public function map()
+ {
+ if ($this->user->isadmin()) {
+
+ $pagelist = $this->modelhome->getlister();
+ $datas = $this->modelhome->mapdata($pagelist);
+
+ $vars['json'] = json_encode($datas, JSON_PRETTY_PRINT);
+
+ $this->showtemplate('map', $vars);
+
+ }
+
+ }
+
public function columns()
{
if (isset($_POST['columns']) && $this->user->iseditor()) {
@@ -127,12 +145,7 @@ class Controllerhome extends Controllerpage
$this->routedirect('home');
}
}
-
- public function map()
- {
-
- }
-
+
/**
* Render every pages in the database
*/
diff --git a/app/class/Modelhome.php b/app/class/Modelhome.php
index 6352282..37eb549 100644
--- a/app/class/Modelhome.php
+++ b/app/class/Modelhome.php
@@ -130,7 +130,46 @@ class Modelhome extends Modelpage
}
}
return $pageselected;
- }
+ }
+
+ /**
+ * Transform list of page into list of nodes and edges
+ */
+ 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;
+ }
+ }
+ $datas['elements'] = array_merge($nodes, $edges);
+
+ $datas['layout']['name'] = 'preset';
+ $datas['style'] = [
+ 'selector' => 'node',
+ 'style' => [
+ 'label' => 'data(id)'
+ ]
+ ];
+ return $datas;
+ }
+
+ public function cytodata(array $mapdata)
+ {
+
+ }
/**
diff --git a/app/view/templates/map.php b/app/view/templates/map.php
new file mode 100644
index 0000000..236ff8e
--- /dev/null
+++ b/app/view/templates/map.php
@@ -0,0 +1,5 @@
+<pre>
+
+ <?= $json ?>
+
+</pre> \ No newline at end of file