FWIW, here's a
proof-of-concept Greasemonkey script for performing some additions / deletions:
// ==UserScript==
// @name Custom DC Forum Links and Removals
// @namespace donationcoder.com
// @include https://www.donationcoder.com/forum/*
// @version 1
// @grant none
// ==/UserScript==
var anchor, before, translate, share, avatar;
// link additions
// link to insert
anchor = document.createElement('a');
anchor.href = '/forum/index.php?action=unreadreplies';
anchor.appendChild(document.createTextNode('Unread replies to your posts'));
// where to insert before
before = document.getElementById('top_sectiondc');
before.parentNode.insertBefore(anchor, before);
// some things to remove
// by id
translate = document.getElementById("lang_form");
translate.parentNode.removeChild(translate);
// by class
share = document.getElementsByClassName("sharebuttons")[0];
share.parentNode.removeChild(share);
avatar = document.getElementsByClassName("avatar")[0];
avatar.parentNode.removeChild(avatar);
Not sure whether the deletion of share buttons happen soon enough for requests not to be made, so for that perhaps '-nosocial' and/or templating might be better...
Another version that among other things tweaks the default search settings:
// ==UserScript==
// @name Custom DC Forum Links and Removals
// @namespace donationcoder.com
// @include https://www.donationcoder.com/forum/*
// @version 1.01
// @grant none
// ==/UserScript==
var anchor, before, listitem, unordered,
form, inputIndex, inputRecentFirst,
translate, share, avatar;
// link additions
// link to insert
try {
anchor = document.createElement('a');
anchor.href = '/forum/index.php?action=unreadreplies';
anchor.appendChild(document.createTextNode('Unread replies to your posts'));
// where to insert before
//before = document.getElementById('top_sectiondc');
//before.parentNode.insertBefore(anchor, before);
listitem = document.createElement('li');
listitem.appendChild(anchor);
unordered = document.getElementsByClassName("reset")[0];
unordered.appendChild(listitem);
} catch (err) {
console.log("Hmm, problem adding link");
}
try {
// search index
form = document.getElementById("search_form");
inputIndex = document.createElement('input');
inputIndex.setAttribute("name", "dc_noindex");
inputIndex.setAttribute("id", "dc_noindex");
inputIndex.setAttribute("value", "1");
inputIndex.setAttribute("type", "hidden");
form.appendChild(inputIndex);
// most recent first
inputRecentFirst = document.createElement('input');
inputRecentFirst.setAttribute("name", "sort");
inputRecentFirst.setAttribute("id", "sort");
inputRecentFirst.setAttribute("value", "id_msg|desc");
inputRecentFirst.setAttribute("type", "hidden");
form.appendChild(inputRecentFirst);
} catch (err) {
console.log("Hmm, problem modifying search form");
}
// some things to remove
try {
// by id
translate = document.getElementById("lang_form");
translate.parentNode.removeChild(translate);
} catch (err) {
console.log("Hmm, problem handling translate pop-up");
}
// by class
try {
share = document.getElementsByClassName("sharebuttons")[0];
share.parentNode.removeChild(share);
} catch (err) {
console.log("Hmm, problem handling share buttons");
}
/*
try {
avatar = document.getElementsByClassName("avatar")[0];
avatar.parentNode.removeChild(avatar);
} catch (err) {
console.log("Hmm, problem handling avatar image");
}
*/