summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Marien Fressinaud <dev@marienfressinaud.fr> 2014-12-07 14:31:50 +0100
committerGravatar Marien Fressinaud <dev@marienfressinaud.fr> 2014-12-07 14:31:50 +0100
commit5932c3427b060d4f0aeab92d7ed17c8e8d4fd1d7 (patch)
tree8802ee6dc68daf501ee64f4a0c299e01a6e93539
parent08546af75ff9a25eac3409649ea4660fe070720c (diff)
Add entry_before_display hook
See https://github.com/FreshRSS/FreshRSS/issues/252
-rw-r--r--app/views/index/normal.phtml5
-rw-r--r--app/views/index/reader.phtml11
-rw-r--r--lib/Minz/ExtensionManager.php6
3 files changed, 16 insertions, 6 deletions
diff --git a/app/views/index/normal.phtml b/app/views/index/normal.phtml
index 02d621bd0..9cbd367d0 100644
--- a/app/views/index/normal.phtml
+++ b/app/views/index/normal.phtml
@@ -35,6 +35,11 @@ if (!empty($this->entries)) {
<a href="<?php echo Minz_Url::display(Minz_Request::currentRequest()); ?>"><?php echo _t('new_article'); ?></a>
</div><?php
foreach ($this->entries as $item) {
+ $item = Minz_ExtensionManager::callHook('entry_before_display', $item);
+ if (is_null($item)) {
+ continue;
+ }
+
if ($display_today && $item->isDay(FreshRSS_Days::TODAY, $today)) {
?><div class="day" id="day_today"><?php
echo _t('today');
diff --git a/app/views/index/reader.phtml b/app/views/index/reader.phtml
index f07868488..75bea9743 100644
--- a/app/views/index/reader.phtml
+++ b/app/views/index/reader.phtml
@@ -6,10 +6,13 @@ if (!empty($this->entries)) {
$content_width = FreshRSS_Context::$conf->content_width;
?>
-<div id="stream" class="reader">
- <?php foreach ($this->entries as $item) { ?>
-
- <div class="flux<?php echo !$item->isRead() ? ' not_read' : ''; ?><?php echo $item->isFavorite() ? ' favorite' : ''; ?>" id="flux_<?php echo $item->id(); ?>">
+<div id="stream" class="reader"><?php
+ foreach ($this->entries as $item) {
+ $item = Minz_ExtensionManager::callHook('entry_before_display', $item);
+ if (is_null($item)) {
+ continue;
+ }
+ ?><div class="flux<?php echo !$item->isRead() ? ' not_read' : ''; ?><?php echo $item->isFavorite() ? ' favorite' : ''; ?>" id="flux_<?php echo $item->id(); ?>">
<div class="flux_content">
<div class="content <?php echo $content_width; ?>">
<?php
diff --git a/lib/Minz/ExtensionManager.php b/lib/Minz/ExtensionManager.php
index 7557e178f..5491c7cf6 100644
--- a/lib/Minz/ExtensionManager.php
+++ b/lib/Minz/ExtensionManager.php
@@ -13,8 +13,10 @@ class Minz_ExtensionManager {
private static $ext_auto_enabled = array();
+ // List of available hooks. Please keep this list sorted.
private static $hook_list = array(
- 'entry_before_insert' => array(), // function($entry)
+ 'entry_before_display' => array(), // function($entry) -> Entry | null
+ 'entry_before_insert' => array(), // function($entry) -> Entry | null
);
private static $ext_to_hooks = array();
@@ -230,7 +232,7 @@ class Minz_ExtensionManager {
$args = func_get_args();
unset($args[0]);
- $result = $args;
+ $result = $args[1];
foreach (self::$hook_list[$hook_name] as $function) {
$result = call_user_func_array($function, $args);