Note: You must enter a list of id of feeds in the blacklist / whitelist fields. This list must be one id per line. You can find the id of the feed you want in the address bar on the page of the feed in Leed (http://LEED_URL/index.php?action=selectedFeed&feed=ID).
- Elegant degradation (replace content with same-size content)?
- '.((!$getimagesize_available) ? ' (Not available because the getimagesize seems to not be available on your system or allow_url_fopen is set to Off in php.ini)' : '').'
-
-
-
-
-
-
- ';
+
+
+ ';
}
}
diff --git a/css/adblock_plugin_css.css b/greeder/css/adblock_plugin_css.css
similarity index 100%
rename from css/adblock_plugin_css.css
rename to greeder/css/adblock_plugin_css.css
diff --git a/install.php b/greeder/install.php
similarity index 100%
rename from install.php
rename to greeder/install.php
diff --git a/js/adblock_plugin_js.js b/greeder/js/adblock_plugin_js.js
similarity index 100%
rename from js/adblock_plugin_js.js
rename to greeder/js/adblock_plugin_js.js
diff --git a/greeder/locale/en.json b/greeder/locale/en.json
new file mode 100755
index 0000000..a5139e8
--- /dev/null
+++ b/greeder/locale/en.json
@@ -0,0 +1,25 @@
+{
+ "P_ADBLOCK_BLACKLIST":"Blacklist:",
+ "P_ADBLOCK_DEFAULT_BEHAVIOR":"Default behavior:",
+ "P_ADBLOCK_DEFAULT_BEHAVIOR_ALLOW":"Allow all contents (and use a blacklist)",
+ "P_ADBLOCK_DEFAULT_BEHAVIOR_BLOCK":"Block all contents (and use a whitelist)",
+ "P_ADBLOCK_ERR_WRITE":"Unable to write parameters to adblock_constants.php. Check permissions on the folders.",
+ "P_ADBLOCK_H2_TITLE":"Plugin Adblock",
+ "P_ADBLOCK_NO":"No",
+ "P_ADBLOCK_NOTE":"Note: You must enter a list of id of feeds in the blacklist / whitelist fields. This list must be one id per line. You can find the id of the feed you want in the address bar on the page of the feed in Leed (http://LEED_URL/index.php?action=selectedFeed&feed=ID).",
+ "P_ADBLOCK_OPT_DEGRADATION":"Elegant degradation (replace content with same-size content)?",
+ "P_ADBLOCK_OPT_DEGR_MSG":"(Not available because the getimagesize seems to not be available on your system or allow_url_fopen is set to Off in php.ini)",
+ "P_ADBLOCK_OPT_DISABLED":"Disabled",
+ "P_ADBLOCK_OPT_ENABLED":"Enabled",
+ "P_ADBLOCK_OPT_FLASH":"Enable / Disable blocking of flash contents in events:",
+ "P_ADBLOCK_OPT_FLASH_TITLE":"Flash embedded contents:",
+ "P_ADBLOCK_OPT_IMAGES":"Enable / Disable blocking of images in events:",
+ "P_ADBLOCK_OPT_IMAGES_BLOCK_ALL":"Block images on all devices",
+ "P_ADBLOCK_OPT_IMAGES_BLOCK_MOBILE":"Only block images on mobile devices",
+ "P_ADBLOCK_OPT_IMAGES_MOBILE":"Block images only on mobile devices?",
+ "P_ADBLOCK_OPT_IMAGES_TITLE":"Images:",
+ "P_ADBLOCK_SAVE":"Save",
+ "P_ADBLOCK_TITLE":"Adblock",
+ "P_ADBLOCK_WHITELIST":"Whitelist:",
+ "P_ADBLOCK_YES":"Yes"
+}
\ No newline at end of file
diff --git a/greeder/locale/fr.json b/greeder/locale/fr.json
new file mode 100644
index 0000000..acbf3ca
--- /dev/null
+++ b/greeder/locale/fr.json
@@ -0,0 +1,25 @@
+{
+ "P_ADBLOCK_BLACKLIST":"Liste noire :",
+ "P_ADBLOCK_DEFAULT_BEHAVIOR":"Comportement par défaut :",
+ "P_ADBLOCK_DEFAULT_BEHAVIOR_ALLOW":"Permettre tous les contenus (et utiliser la liste noire)",
+ "P_ADBLOCK_DEFAULT_BEHAVIOR_BLOCK":"Bloquer tous les contenus (et utiliser la liste blanche)",
+ "P_ADBLOCK_ERR_WRITE":"Impossible d'écrire les paramètres dans le fichier adblock_constants.php. Vérifiez les autorisations sur les dossiers.",
+ "P_ADBLOCK_H2_TITLE":"Plugin Adblock",
+ "P_ADBLOCK_NO":"Non",
+ "P_ADBLOCK_NOTE":"Remarque : Vous devez entrer une liste d'identifiants de flux dans les champs liste noire / liste blanche. Cette liste doit être composée d'un id par ligne. Vous pouvez trouver l'ID dans la barre d'adresse sur la page de sélection d'un flux dans Leed (http://LEED_URL/index.php?action=selectedFeed&feed=ID).",
+ "P_ADBLOCK_OPT_DEGRADATION":"Dégradation élégante (remplacer le contenu avec le contenu de même taille) ?",
+ "P_ADBLOCK_OPT_DEGR_MSG":"(Non disponible parce que la fonction getimagesize ne semble pas être disponible sur votre système ou allow_url_fopen est réglé sur Off dans le fichier php.ini)",
+ "P_ADBLOCK_OPT_DISABLED":"Désactivé",
+ "P_ADBLOCK_OPT_ENABLED":"Activé",
+ "P_ADBLOCK_OPT_FLASH":"Activer / Désactiver le blocage de contenu flash dans les événements:",
+ "P_ADBLOCK_OPT_FLASH_TITLE":"Contenu Flash :",
+ "P_ADBLOCK_OPT_IMAGES":"Activer / Désactiver le blocage des images sur les événements :",
+ "P_ADBLOCK_OPT_IMAGES_BLOCK_ALL":"Bloquer les images sur tous les appareils",
+ "P_ADBLOCK_OPT_IMAGES_BLOCK_MOBILE":"Seulement bloquer les images sur les appareils mobiles",
+ "P_ADBLOCK_OPT_IMAGES_MOBILE":"Bloquer les images uniquement sur les appareils mobiles ?",
+ "P_ADBLOCK_OPT_IMAGES_TITLE":"Images :",
+ "P_ADBLOCK_SAVE":"Sauvegarder",
+ "P_ADBLOCK_TITLE":"Adblock",
+ "P_ADBLOCK_WHITELIST":"Liste blanche :",
+ "P_ADBLOCK_YES":"Oui"
+}
diff --git a/marigolds/adblock.plugin.disabled.php b/marigolds/adblock.plugin.disabled.php
new file mode 100644
index 0000000..e556f82
--- /dev/null
+++ b/marigolds/adblock.plugin.disabled.php
@@ -0,0 +1,279 @@
+
+@link http://www.phyks.me
+@licence BEERWARE (See README.md file)
+@version 2.2.0
+@description The adblock plugin for leed allows to block embedded flash contents and / or images in feeds. You can set it fine-grained for each feed. You can also disable images only for mobile devices.
+ */
+
+function adblock_isMobileDevice() {
+ return preg_match("/(android|avantgo|blackberry|bolt|boost|cricket|docomo|fone|hiptop|mini|mobi|palm|phone|pie|tablet|up\.browser|up\.link|webos|wos)/i", $_SERVER["HTTP_USER_AGENT"]);
+}
+
+function adblock_trim_list($input) {
+ $output = array();
+
+ foreach($input as $key=>$value) {
+ $output[$key] = trim($value, "\t\n\r\0\x0B,\"");
+ }
+ return $output;
+}
+
+function adblock_plugin_treat_events(&$events) {
+ //Set params
+ $configurationManager = new Configuration();
+ $partial = $configurationManager->get('articleView') == "partial";
+
+ $adblock_constants = file_get_contents("adblock_constants.php");
+ $adblock_constants = explode("\n", $adblock_constants);
+
+ $adblock_params = array();
+ foreach($adblock_constants as $adblock_constant) {
+ if(trim($adblock_constant) != "") {
+ $adblock_constant = explode("=", $adblock_constant);
+ $adblock_params[trim($adblock_constant[0])] = trim($adblock_constant[1]);
+ }
+ }
+
+ if(isset($adblock_params["flash_enabled"]) && $adblock_params["flash_enabled"] == "1") {
+ $filter_flash = true;
+ if(isset($adblock_params["flash_block"]) && $adblock_params["flash_block"] == "1") {
+ $block_flash = true;
+ }
+ else {
+ $block_flash = false;
+ }
+ }
+ else {
+ $filter_flash = false;
+ }
+ $flash_except_list = explode(',', trim($adblock_params["flash_list"], "\t\n\r\0\x0B,"));
+ $flash_except_list = adblock_trim_list($flash_except_list);
+
+ if(isset($adblock_params["img_enabled"]) && $adblock_params["img_enabled"] == "1") {
+ $filter_img = true;
+ if(isset($adblock_params["img_block"]) && $adblock_params["img_block"] == "1") {
+ $block_img = true;
+ }
+ else {
+ $block_img = false;
+ }
+
+ if(isset($adblock_params["img_only_mobiles"]) && $adblock_params["img_only_mobiles"] == "1" && !adblock_isMobileDevice()) { //If filter only on mobile devices and not a mobile device
+ $filter_img = false;
+ }
+ }
+ else {
+ $filter_img = false;
+ }
+ $img_except_list = explode(',', trim($adblock_params["img_list"], "\t\n\r\0\x0B,"));
+ $img_except_list = adblock_trim_list($flash_except_list);
+
+ $elegant_degradation = (isset($adblock_params["elegant_degradation"]) && $adblock_params["elegant_degradation"] == "1") ? true : false;
+
+ foreach($events as $event) {
+ $filtered_content = ($partial) ? $event->getDescription : $event->getContent();
+ $modified = false;
+
+ // Flash handling
+ if($filter_flash) {
+ if(($block_flash && !in_array($event->getFeed(), $flash_except_list)) || (!$block_flash && in_array($event->getFeed(), $flash_except_list))) {
+ //Replace flash content
+ preg_match_all("##U", $filtered_content, $object_list_in_event, PREG_SET_ORDER);
+
+ foreach($object_list_in_event as $object) {
+ if(!$elegant_degradation) {
+ $replacement_content = '
+ X
+ ';
+ $filtered_content = str_replace($object[0], $replacement_content, $filtered_content);
+ }
+ else {
+ preg_match("#width=[\"']([0-9]{1,})[\"']#U", $object[0], $width);
+ preg_match("#height=[\"']([0-9]{1,})[\"']#U", $object[0], $height);
+ $font_size = min($width[1], $height[1]);
+
+ $replacement_content = '
+ X
+ ';
+ $filtered_content = str_replace($object[0], $replacement_content, $filtered_content);
+ }
+ }
+
+ $modified = true;
+ }
+ }
+
+ // Images handling
+ if($filter_img) {
+ if(($block_img && !in_array($event->getFeed(), $img_except_list)) || (!$block_img && in_array($event->getFeed(), $img_except_list))) {
+ //Replace images
+ preg_match_all("##U", $filtered_content, $img_list_in_event, PREG_SET_ORDER);
+
+ foreach($img_list_in_event as $img) {
+ if(!$elegant_degradation) {
+ $replacement_content = '
+ X
+ ';
+ $filtered_content = str_replace($img[0], $replacement_content, $filtered_content);
+ }
+ else {
+ $content_size = getimagesize($img[1]); //Index 0 is width, index 1 is height
+ $font_size = min($content_size[0], $content_size[1]);
+ $replacement_content = '
+ X
+ ';
+ $filtered_content = str_replace($img[0], $replacement_content, $filtered_content);
+ }
+ }
+
+ $modified = true;
+ }
+ }
+
+ if($modified) {
+ if($partial)
+ $event->setDescription($filtered_content);
+ else
+ $event->setContent($filtered_content);
+ }
+ }
+}
+
+function adblock_plugin_setting_link(&$myUser) {
+ $myUser = (isset($_SESSION['currentUser'])?unserialize($_SESSION['currentUser']):false);
+ if($myUser!=false) {
+ echo '
+
+
+ ';
+ }
+}
+
+function adblock_plugin_setting_update($_) {
+ $myUser = (isset($_SESSION['currentUser'])?unserialize($_SESSION['currentUser']):false);
+ if($myUser!=false) {
+ if($_['action'] == 'adblock_update') {
+ $flash_enabled = (int) $_['flash_adblock_enable'];
+ $flash_block = (int) $_['flash_adblock_default_behavior'];
+ $flash_list = str_replace("\r\n", ",", trim($_["flash_adblock_list"]));
+ $flash_list = str_replace("\n", ",", trim($flash_list));
+
+ $img_enabled = (int) $_['img_adblock_enable'];
+ $img_block = (int) $_['img_adblock_default_behavior'];
+ $img_only_mobiles = (int) $_["img_adblock_only_mobiles"];
+ $img_list = str_replace("\r\n", ",", trim($_["img_adblock_list"]));
+ $img_list = str_replace("\n", ",", trim($img_list));
+
+ $elegant_degradation = (int) $_["adblock_elegant_degradation"];
+
+ if(file_put_contents("adblock_constants.php", "flash_enabled = ".$flash_enabled."\nflash_block = ".$flash_block."\nflash_list = ".$flash_list."\nimg_enabled = ".$img_enabled."\nimg_block = ".$img_block."\nimg_only_mobiles = ".$img_only_mobiles."\nimg_list = ".$img_list."\nelegant_degradation = ".$elegant_degradation))
+ header('location: settings.php');
+ else
+ exit(_t('P_ADBLOCK_ERR_WRITE'));
+ }
+ }
+}
+
+Plugin::addCSS("/css/adblock_plugin_css.css");
+Plugin::addJS("/js/adblock_plugin_js.js");
+
+Plugin::addHook("index_post_treatment", "adblock_plugin_treat_events");
+
+Plugin::addHook("setting_post_link", "adblock_plugin_setting_link");
+Plugin::addHook("setting_post_section", "adblock_plugin_setting_bloc");
+Plugin::addHook("action_post_case", "adblock_plugin_setting_update");
+?>
diff --git a/marigolds/css/adblock_plugin_css.css b/marigolds/css/adblock_plugin_css.css
new file mode 100644
index 0000000..c05b93a
--- /dev/null
+++ b/marigolds/css/adblock_plugin_css.css
@@ -0,0 +1,35 @@
+#adblockSettingsBloc {
+ display: none;
+}
+
+#adblockSettingsBloc textarea {
+ width: 75%;
+}
+
+#adblock_settings_submit {
+ text-align: center;
+}
+
+.blocked_image {
+ display: inline-block;
+ background-color: rgb(141, 141, 141);
+ color: rgb(241, 101, 41);
+ font-weight: bold;
+ text-align: center;
+ font-size: 2em;
+ padding: 0.2em;
+ cursor: pointer;
+ max-width: 100%;
+}
+
+.blocked_flash {
+ display: inline-block;
+ color: white;
+ background-color: rgb(241, 101, 41);
+ font-weight: bold;
+ text-align: center;
+ font-size: 2em;
+ padding: 0.2em;
+ cursor: pointer;
+ max-width: 100%;
+}
diff --git a/marigolds/install.php b/marigolds/install.php
new file mode 100644
index 0000000..1b753b6
--- /dev/null
+++ b/marigolds/install.php
@@ -0,0 +1,6 @@
+");
+ $(span).removeClass("blocked_image");
+ return false;
+}
+
+function adblock_unblock_flash(span, new_content) {
+ if($(span).html() != "X")
+ return true;
+
+ $(span).html(new_content);
+ $(span).removeClass("blocked_flash");
+ return false;
+}
diff --git a/marigolds/locale/en.json b/marigolds/locale/en.json
new file mode 100755
index 0000000..a5139e8
--- /dev/null
+++ b/marigolds/locale/en.json
@@ -0,0 +1,25 @@
+{
+ "P_ADBLOCK_BLACKLIST":"Blacklist:",
+ "P_ADBLOCK_DEFAULT_BEHAVIOR":"Default behavior:",
+ "P_ADBLOCK_DEFAULT_BEHAVIOR_ALLOW":"Allow all contents (and use a blacklist)",
+ "P_ADBLOCK_DEFAULT_BEHAVIOR_BLOCK":"Block all contents (and use a whitelist)",
+ "P_ADBLOCK_ERR_WRITE":"Unable to write parameters to adblock_constants.php. Check permissions on the folders.",
+ "P_ADBLOCK_H2_TITLE":"Plugin Adblock",
+ "P_ADBLOCK_NO":"No",
+ "P_ADBLOCK_NOTE":"Note: You must enter a list of id of feeds in the blacklist / whitelist fields. This list must be one id per line. You can find the id of the feed you want in the address bar on the page of the feed in Leed (http://LEED_URL/index.php?action=selectedFeed&feed=ID).",
+ "P_ADBLOCK_OPT_DEGRADATION":"Elegant degradation (replace content with same-size content)?",
+ "P_ADBLOCK_OPT_DEGR_MSG":"(Not available because the getimagesize seems to not be available on your system or allow_url_fopen is set to Off in php.ini)",
+ "P_ADBLOCK_OPT_DISABLED":"Disabled",
+ "P_ADBLOCK_OPT_ENABLED":"Enabled",
+ "P_ADBLOCK_OPT_FLASH":"Enable / Disable blocking of flash contents in events:",
+ "P_ADBLOCK_OPT_FLASH_TITLE":"Flash embedded contents:",
+ "P_ADBLOCK_OPT_IMAGES":"Enable / Disable blocking of images in events:",
+ "P_ADBLOCK_OPT_IMAGES_BLOCK_ALL":"Block images on all devices",
+ "P_ADBLOCK_OPT_IMAGES_BLOCK_MOBILE":"Only block images on mobile devices",
+ "P_ADBLOCK_OPT_IMAGES_MOBILE":"Block images only on mobile devices?",
+ "P_ADBLOCK_OPT_IMAGES_TITLE":"Images:",
+ "P_ADBLOCK_SAVE":"Save",
+ "P_ADBLOCK_TITLE":"Adblock",
+ "P_ADBLOCK_WHITELIST":"Whitelist:",
+ "P_ADBLOCK_YES":"Yes"
+}
\ No newline at end of file
diff --git a/marigolds/locale/fr.json b/marigolds/locale/fr.json
new file mode 100644
index 0000000..ef7ac56
--- /dev/null
+++ b/marigolds/locale/fr.json
@@ -0,0 +1,25 @@
+{
+ "P_ADBLOCK_BLACKLIST":"Liste noire:",
+ "P_ADBLOCK_DEFAULT_BEHAVIOR":"Comportement par defaut :",
+ "P_ADBLOCK_DEFAULT_BEHAVIOR_ALLOW":"Permettre tous les contenus (et utiliser la liste noire)",
+ "P_ADBLOCK_DEFAULT_BEHAVIOR_BLOCK":"Bloquer tous les contenus (et utiliser la liste blanche)",
+ "P_ADBLOCK_ERR_WRITE":"Impossible d'écrire les paramètres dans le fichier adblock_constants.php. Vérifiez les autorisations sur les dossiers.",
+ "P_ADBLOCK_H2_TITLE":"Plugin Adblock",
+ "P_ADBLOCK_NO":"Non",
+ "P_ADBLOCK_NOTE":"Remarque : Vous devez entrer une liste d'identifiant de flux dans les champs liste noire / liste blanche. Cette liste doit être composée d'un id par ligne. Vous pouvez trouver l'ID dans la barre d'adresse sur la page de selection d'un Flux dans Leed (http://LEED_URL/index.php?action=selectedFeed&feed=ID).",
+ "P_ADBLOCK_OPT_DEGRADATION":"Dégradation élégante (remplacer le contenu avec le contenu de même taille)?",
+ "P_ADBLOCK_OPT_DEGR_MSG":"(Non disponible parce que la fonction getimagesize semble ne pas être disponibles sur votre système ou allow_url_fopen est réglé sur Off dans le fichier php.ini)",
+ "P_ADBLOCK_OPT_DISABLED":"Désactivé",
+ "P_ADBLOCK_OPT_ENABLED":"Activé",
+ "P_ADBLOCK_OPT_FLASH":"Activer / Désactiver le blocage de contenu flash dans les événements:",
+ "P_ADBLOCK_OPT_FLASH_TITLE":"Contenu Flash :",
+ "P_ADBLOCK_OPT_IMAGES":"Activer / Désactiver le blocage des images sur les événements :",
+ "P_ADBLOCK_OPT_IMAGES_BLOCK_ALL":"Bloquer les images sur tous les appareils",
+ "P_ADBLOCK_OPT_IMAGES_BLOCK_MOBILE":"Seulement bloquer les images sur les appareils mobiles",
+ "P_ADBLOCK_OPT_IMAGES_MOBILE":"Bloquer les images uniquement sur les appareils mobiles ?",
+ "P_ADBLOCK_OPT_IMAGES_TITLE":"Images:",
+ "P_ADBLOCK_SAVE":"Sauvegarder",
+ "P_ADBLOCK_TITLE":"Adblock",
+ "P_ADBLOCK_WHITELIST":"Liste blanche:",
+ "P_ADBLOCK_YES":"Oui"
+}
\ No newline at end of file