summaryrefslogtreecommitdiff
path: root/plugins/shorten_expanded
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2013-07-31 18:58:56 +0400
committerAndrew Dolgov <[email protected]>2013-07-31 18:58:56 +0400
commit2fdbff069f93a60db19f70d95a8f7c69d826bf53 (patch)
tree705b435528a186bd44ac491e55530b79939e1c83 /plugins/shorten_expanded
parenta447f4e40aac4210c9b7d3c7a9942a7c798a1695 (diff)
add experimental plugin to shorten articles which are too damn long in expanded cdm
Diffstat (limited to 'plugins/shorten_expanded')
-rw-r--r--plugins/shorten_expanded/init.css9
-rw-r--r--plugins/shorten_expanded/init.js45
-rw-r--r--plugins/shorten_expanded/init.php29
3 files changed, 83 insertions, 0 deletions
diff --git a/plugins/shorten_expanded/init.css b/plugins/shorten_expanded/init.css
new file mode 100644
index 000000000..5e1bfa8f3
--- /dev/null
+++ b/plugins/shorten_expanded/init.css
@@ -0,0 +1,9 @@
+div.contentSizeWrapper {
+ overflow : hidden;
+ text-overflow: ellipsis;
+ height : 700px;
+}
+
+button.expandPrompt {
+ margin-top : 20px;
+}
diff --git a/plugins/shorten_expanded/init.js b/plugins/shorten_expanded/init.js
new file mode 100644
index 000000000..ba82b643b
--- /dev/null
+++ b/plugins/shorten_expanded/init.js
@@ -0,0 +1,45 @@
+var _shorten_expanded_threshold = 900; //px, longer than css height so that we would only clip articles significantly longer than limit
+
+function expandSizeWrapper(id) {
+ try {
+ var row = $(id);
+
+ console.log(row);
+
+ if (row) {
+ var content = row.select(".contentSizeWrapper")[0];
+ var link = row.select(".expandPrompt")[0];
+
+ if (content) content.removeClassName("contentSizeWrapper");
+ if (link) Element.hide(link);
+
+ }
+ } catch (e) {
+ exception_error("expandSizeWrapper", e);
+ }
+
+ return false;
+
+}
+
+dojo.addOnLoad(function() {
+ PluginHost.register(PluginHost.HOOK_ARTICLE_RENDERED_CDM, function(row) {
+ if (getInitParam('cdm_expanded')) {
+
+ window.setTimeout(function() {
+ if (row) {
+ if (row.offsetHeight >= _shorten_expanded_threshold) {
+ var content = row.select(".cdmContentInner")[0];
+
+ if (content) {
+ content.innerHTML = "<div class='contentSizeWrapper'>" +
+ content.innerHTML + "</div><button class='expandPrompt' onclick='return expandSizeWrapper(\""+row.id+"\")' "+
+ "href='#'>" + __("Click to expand article") + "</button>";
+
+ }
+ }
+ }
+ }, 150);
+ }
+ });
+});
diff --git a/plugins/shorten_expanded/init.php b/plugins/shorten_expanded/init.php
new file mode 100644
index 000000000..1d0c99eca
--- /dev/null
+++ b/plugins/shorten_expanded/init.php
@@ -0,0 +1,29 @@
+<?php
+class Shorten_Expanded extends Plugin {
+ private $host;
+
+ function about() {
+ return array(1.0,
+ "Shorten overly long articles in CDM/expanded",
+ "fox");
+ }
+
+ function init($host) {
+ $this->host = $host;
+
+ }
+
+ function get_css() {
+ return file_get_contents(__DIR__ . "/init.css");
+ }
+
+ function get_js() {
+ return file_get_contents(__DIR__ . "/init.js");
+ }
+
+ function api_version() {
+ return 2;
+ }
+
+}
+?>