Tabla de contenidos
No hay encabezados// HideElements
// by neilw, 2009-2011
//
// 1.10 3/22/2011 neilw - added "ratings" option to hide page ratings
// - accepts a single string arg rather than a list of one item
// 1.00 8/3/2009 neilw first release
//
// Usage: HideElements(elements, byuser)
// elements: list of strings OR "all". If list of strings, each indicating an element to hide:
// "tags" page tags
// "files" list of attached files
// "images", gallery of attached images
// "comments", comments at bottom of page
// "ratings_top" page ratings at top right corner of page
// "ratings_bot" page ratings at bottom of page
// "ratings" page ratings at top and bottom of page
// "all" all of the above
// byuser: hide the above elements only for users without write permission on the page
//
var allowed_elements = {
tags: "div.pageInfo",
files: "div.file",
images: "div.gallery",
comments: "div#comments",
ratings_top: "div#deki-page-rating-bar",
ratings_bottom: "dd.pageRatings,dt.pageRatings",
ratings: "div#deki-page-rating-bar,dd.pageRatings,dt.pageRatings"
};
var elements = $0 ?? $elements;
if (elements is not list) let elements = [ elements ];
var byuser = $1 ?? $byuser ?? false;
var selectors = [];
var errors = [];
foreach (var e in elements) {
if (e == "all") {
let selectors = list.select(map.values(allowed_elements), "string.indexof($,'_')<0");
break;
}
else if (e is not str || !#allowed_elements[e])
let errors ..= [ e ];
else
let selectors ..= [ allowed_elements[e] ];
}
<html>
if (#selectors && (!byuser || !wiki.pagepermissions().update)) {
<head>
<style type="text/css"> string.join(selectors, ",").."{ display:none; }" </style>;
</head>;
}
if (#errors) {
<body>
<div>
"ERROR: HidePageElements: bad element(s): " .. string.serialize(errors) .. "; allowed elements are:";
<ul> foreach (var ae in map.keys(allowed_elements)) <li> ae </li>; </ul>;
</div>;
</body>;
}
</html>;