add experimental plugin to shorten articles which are too damn long in expanded cdm
This commit is contained in:
parent
a447f4e40a
commit
2fdbff069f
|
@ -0,0 +1,9 @@
|
||||||
|
div.contentSizeWrapper {
|
||||||
|
overflow : hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
height : 700px;
|
||||||
|
}
|
||||||
|
|
||||||
|
button.expandPrompt {
|
||||||
|
margin-top : 20px;
|
||||||
|
}
|
|
@ -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);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
?>
|
Loading…
Reference in New Issue