aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Marien Fressinaud <dev@marienfressinaud.fr> 2012-10-25 22:24:54 +0200
committerGravatar Marien Fressinaud <dev@marienfressinaud.fr> 2012-10-25 22:24:54 +0200
commitb5916b6c04cd7428cd188ed56545dbf985b6c18c (patch)
treee92a812f47b675f4d788c828d5320e6aad21f144
parent3ff51a59ba97f3ef1df3c26df16d9a3ab5789843 (diff)
mise en place du routage
-rw-r--r--app/configuration/application.ini2
-rw-r--r--app/configuration/routes.php121
-rwxr-xr-xapp/controllers/configureController.php2
-rwxr-xr-xapp/controllers/feedController.php2
-rw-r--r--app/layout/aside.phtml6
-rw-r--r--app/views/configure/feed.phtml (renamed from app/views/configure/flux.phtml)2
-rw-r--r--app/views/configure/shortcut.phtml7
-rw-r--r--app/views/javascript/main.phtml32
-rwxr-xr-xlib/Router.php2
9 files changed, 158 insertions, 18 deletions
diff --git a/app/configuration/application.ini b/app/configuration/application.ini
index 93895ad0e..c98622c5d 100644
--- a/app/configuration/application.ini
+++ b/app/configuration/application.ini
@@ -1,6 +1,6 @@
[general]
environment = "development"
-use_url_rewriting = false
+use_url_rewriting = true
sel_application = "flux rss lalala ~~~"
base_url = "/~marien/rss/public"
diff --git a/app/configuration/routes.php b/app/configuration/routes.php
index 0efec7ba7..d9bb5ca99 100644
--- a/app/configuration/routes.php
+++ b/app/configuration/routes.php
@@ -1,5 +1,124 @@
<?php
return array (
-
+ // Index
+ array (
+ 'route' => '/\?q=([\w\d\-_]+)&p=([\d+])',
+ 'controller' => 'index',
+ 'action' => 'index',
+ 'params' => array ('get', 'page')
+ ),
+ array (
+ 'route' => '/\?q=([\w\d\-_]+)',
+ 'controller' => 'index',
+ 'action' => 'index',
+ 'params' => array ('get')
+ ),
+ array (
+ 'route' => '/\?p=([\d]+)',
+ 'controller' => 'index',
+ 'action' => 'index',
+ 'params' => array ('page')
+ ),
+ array (
+ 'route' => '/login.php',
+ 'controller' => 'index',
+ 'action' => 'login'
+ ),
+ array (
+ 'route' => '/logout.php',
+ 'controller' => 'index',
+ 'action' => 'logout'
+ ),
+ array (
+ 'route' => '/mode.php\?m=([\w_]+)',
+ 'controller' => 'index',
+ 'action' => 'changeMode',
+ 'params' => array ('mode')
+ ),
+
+ // Scripts
+ array (
+ 'route' => '/scripts/main.js',
+ 'controller' => 'javascript',
+ 'action' => 'main'
+ ),
+
+ // Entry
+ array (
+ 'route' => '/articles/marquer.php\?lu=([\d]{1})',
+ 'controller' => 'entry',
+ 'action' => 'read',
+ 'params' => array ('is_read')
+ ),
+ array (
+ 'route' => '/articles/marquer.php\?id=([\w\d\-_]{6})&favori=([\d]{1})',
+ 'controller' => 'entry',
+ 'action' => 'bookmark',
+ 'params' => array ('id', 'is_favorite')
+ ),
+ array (
+ 'route' => '/articles/marquer.php\?id=([\w\d\-_]{6})&lu=([\d]{1})',
+ 'controller' => 'entry',
+ 'action' => 'read',
+ 'params' => array ('id', 'is_read')
+ ),
+
+
+ // Feed
+ array (
+ 'route' => '/flux/ajouter.php',
+ 'controller' => 'feed',
+ 'action' => 'add'
+ ),
+ array (
+ 'route' => '/flux/actualiser.php',
+ 'controller' => 'feed',
+ 'action' => 'actualize'
+ ),
+ array (
+ 'route' => '/flux/supprimer.php\?id=([\w\d\-_]{6})',
+ 'controller' => 'feed',
+ 'action' => 'delete',
+ 'params' => array ('id')
+ ),
+
+ // Configure
+ array (
+ 'route' => '/configuration/flux.php',
+ 'controller' => 'configure',
+ 'action' => 'feed'
+ ),
+ array (
+ 'route' => '/configuration/flux.php\?id=([\w\d\-_]{6})',
+ 'controller' => 'configure',
+ 'action' => 'feed',
+ 'params' => array ('id')
+ ),
+ array (
+ 'route' => '/configuration/categories.php',
+ 'controller' => 'configure',
+ 'action' => 'categorize'
+ ),
+ array (
+ 'route' => '/configuration/global.php',
+ 'controller' => 'configure',
+ 'action' => 'display'
+ ),
+ array (
+ 'route' => '/configuration/import_export.php',
+ 'controller' => 'configure',
+ 'action' => 'importExport'
+ ),
+ array (
+ 'route' => '/configuration/import_export.php\?q=([\w]{6})',
+ 'controller' => 'configure',
+ 'action' => 'importExport',
+ 'params' => array ('q')
+ ),
+ array (
+ 'route' => '/configuration/raccourcis.php',
+ 'controller' => 'configure',
+ 'action' => 'shortcut'
+ ),
);
diff --git a/app/controllers/configureController.php b/app/controllers/configureController.php
index 68fa0404a..a380e87c4 100755
--- a/app/controllers/configureController.php
+++ b/app/controllers/configureController.php
@@ -46,7 +46,7 @@ class configureController extends ActionController {
$this->view->categories = $catDAO->listCategories ();
}
- public function fluxAction () {
+ public function feedAction () {
$feedDAO = new FeedDAO ();
$this->view->feeds = $feedDAO->listFeeds ();
diff --git a/app/controllers/feedController.php b/app/controllers/feedController.php
index 0c0528202..1450ce69e 100755
--- a/app/controllers/feedController.php
+++ b/app/controllers/feedController.php
@@ -156,7 +156,7 @@ class feedController extends ActionController {
$feedDAO = new FeedDAO ();
$feedDAO->deleteFeed ($id);
- Request::forward (array ('c' => 'configure', 'a' => 'flux'));
+ Request::forward (array ('c' => 'configure', 'a' => 'feed'), true);
}
}
}
diff --git a/app/layout/aside.phtml b/app/layout/aside.phtml
index 50af6c3b2..36e1bede2 100644
--- a/app/layout/aside.phtml
+++ b/app/layout/aside.phtml
@@ -21,7 +21,7 @@
</li>
<?php if (!login_is_conf ($this->conf) || is_logged ()) { ?>
<li <?php echo Request::controllerName () == 'configure' ? 'class="active"' : ''; ?>>
- <a href="<?php echo Url::display (array ('c' => 'configure', 'a' => 'flux')); ?>">Configurer</a>
+ <a href="<?php echo Url::display (array ('c' => 'configure', 'a' => 'feed')); ?>">Configurer</a>
</li>
<?php } ?>
<li>
@@ -44,8 +44,8 @@
<div class="aside">
<ul id="menu">
<li><h2>Configuration</h2></li>
- <li <?php echo Request::actionName () == 'flux' ? 'class="active"' : ''; ?>>
- <a href="<?php echo Url::display (array ('c' => 'configure', 'a' => 'flux')); ?>">Flux RSS</a>
+ <li <?php echo Request::actionName () == 'feed' ? 'class="active"' : ''; ?>>
+ <a href="<?php echo Url::display (array ('c' => 'configure', 'a' => 'feed')); ?>">Flux RSS</a>
</li>
<li <?php echo Request::actionName () == 'categorize' ? 'class="active"' : ''; ?>>
<a href="<?php echo Url::display (array ('c' => 'configure', 'a' => 'categorize')); ?>">Catégories</a>
diff --git a/app/views/configure/flux.phtml b/app/views/configure/feed.phtml
index 1aa26c634..582457b63 100644
--- a/app/views/configure/flux.phtml
+++ b/app/views/configure/feed.phtml
@@ -5,7 +5,7 @@
<?php if (!empty ($this->feeds)) { ?>
<?php foreach ($this->feeds as $feed) { ?>
<li <?php echo ($this->flux && $this->flux->id () == $feed->id ()) ? 'class="active"' : ''; ?>>
- <a href="<?php echo Url::display (array ('c' => 'configure', 'a' => 'flux', 'params' => array ('id' => $feed->id ()))); ?>"><?php echo $feed->name (); ?></a>
+ <a href="<?php echo Url::display (array ('c' => 'configure', 'a' => 'feed', 'params' => array ('id' => $feed->id ()))); ?>"><?php echo $feed->name (); ?></a>
</li>
<?php } ?>
<?php } else { ?>
diff --git a/app/views/configure/shortcut.phtml b/app/views/configure/shortcut.phtml
index 6fc253dd5..56718d566 100644
--- a/app/views/configure/shortcut.phtml
+++ b/app/views/configure/shortcut.phtml
@@ -9,8 +9,9 @@
<form method="post" action="">
<h1>Gérer les raccourcis</h1>
- <label for="mark_read">Marquer l'article comme lu</label>
+ <label for="mark_read">Marquer l'article comme lu / non lu</label>
<input type="text" id="mark_read" name="shortcuts[mark_read]" list="keys" value="<?php echo $s['mark_read']; ?>" />
+ <p>+ <code>shift</code> pour marquer tous les articles</p>
<label for="mark_favorite">Mettre l'article en favori</label>
<input type="text" id="mark_favorite" name="shortcuts[mark_favorite]" list="keys" value="<?php echo $s['mark_favorite']; ?>" />
@@ -20,15 +21,19 @@
<label for="next_entry">Passer à l'article suivant</label>
<input type="text" id="next_entry" name="shortcuts[next_entry]" list="keys" value="<?php echo $s['next_entry']; ?>" />
+ <p>+ <code>shift</code> pour passer au dernier article de la page</p>
<label for="prev_entry">Passer à l'article précédent</label>
<input type="text" id="prev_entry" name="shortcuts[prev_entry]" list="keys" value="<?php echo $s['prev_entry']; ?>" />
+ <p>+ <code>shift</code> pour passer au premier article de la page</p>
<label for="next_page">Passer à la page suivant</label>
<input type="text" id="next_page" name="shortcuts[next_page]" list="keys" value="<?php echo $s['next_page']; ?>" />
+ <p>+ <code>shift</code> pour passer à la dernière page</p>
<label for="prev_page">Passer à la page précédente</label>
<input type="text" id="prev_page" name="shortcuts[prev_page]" list="keys" value="<?php echo $s['prev_page']; ?>" />
+ <p>+ <code>shift</code> pour passer à la première page</p>
<input type="submit" value="Valider" />
</form>
diff --git a/app/views/javascript/main.phtml b/app/views/javascript/main.phtml
index 641bfa00c..7d077d93f 100644
--- a/app/views/javascript/main.phtml
+++ b/app/views/javascript/main.phtml
@@ -146,6 +146,14 @@ $(document).ready (function () {
slide (last_active, old_active);
}
});
+ shortcut.add("shift+<?php echo $s['prev_entry']; ?>", function () {
+ old_active = $(".post.flux.active");
+ first = $(".post.flux:first");
+
+ if (first[0] instanceof HTMLDivElement) {
+ slide (first, old_active);
+ }
+ });
shortcut.add("<?php echo $s['next_entry']; ?>", function () {
old_active = $(".post.flux.active");
first_active = $(".post.flux:first");
@@ -157,20 +165,28 @@ $(document).ready (function () {
slide (first_active, old_active);
}
});
+ shortcut.add("shift+<?php echo $s['next_entry']; ?>", function () {
+ old_active = $(".post.flux.active");
+ last = $(".post.flux:last");
+
+ if (last[0] instanceof HTMLDivElement) {
+ slide (last, old_active);
+ }
+ });
shortcut.add("<?php echo $s['next_page']; ?>", function () {
url = $(".pager-next a").attr ("href");
- if (url === undefined) {
- url = $(".pager-first a").attr ("href");
- }
-
+ redirect (url);
+ });
+ shortcut.add("shift+<?php echo $s['next_page']; ?>", function () {
+ url = $(".pager-last a").attr ("href");
redirect (url);
});
shortcut.add("<?php echo $s['prev_page']; ?>", function () {
url = $(".pager-previous a").attr ("href");
- if (url === undefined) {
- url = $(".pager-last a").attr ("href");
- }
-
+ redirect (url);
+ });
+ shortcut.add("shift+<?php echo $s['prev_page']; ?>", function () {
+ url = $(".pager-first a").attr ("href");
redirect (url);
});
shortcut.add("<?php echo $s['go_website']; ?>", function () {
diff --git a/lib/Router.php b/lib/Router.php
index 9048b947a..acd366a98 100755
--- a/lib/Router.php
+++ b/lib/Router.php
@@ -239,6 +239,6 @@ class Router {
}
}
- return $uri;
+ return str_replace ('&', '&amp;', $uri);
}
}