If you're actually willing to fix the skins then fix turtles filter buttons and make the collapse states of the forums in the index remembered. The Maplantis bugs seem to have been fixed.
Filter buttons are PHP-controlled. PHP is used to write out their link targets (which make them work) and their display states (active-colored/inactive-grey). If there's a problem with them and it's not a display issue, then it's a backend issue with the PHP.
As for remembering collapse states of the Forum Index... I thought I fixed that in Turtle... Or do you mean another skin? What browser are you using?
It doesn't even trigger the bottom right AJAX popup, so I think the whole thing is broken....but I don't know. Also, it seems like the "Time: date" at the top of the page when viewing a thread is off-centered, and the member's name is sometimes bumped down a line. That might be what's throwing the "Time: date" off.
The function used for the Forum Index's "mark as read" links is skin-specific. This is because when the AJAX call completes, it needs to apply the "this forum has no new stuff" style to the specific thing you marked as read; this process is, as one might expect, different for each skin.
Carbonite doesn't have a
ajax_mark function in its
skin.js; this is the function that actually marks a forum as read. Devlin needs to copy that function out of the
skin.js file from another skin, and then edit the stuff at the bottom of the function so that it updates the particular row that was marked as read.
This oughta do the trick; I did some rudimentary testing using Chrome's god-awful debugging tools. Slap it into Carbonite's
skin.js, test in other browsers, and you
should be good to go.
function ajax_mark() {
this.params=params;
this.parser=parser;
this.status=status;
this.url=url;
this.limit=limit;
this.cleared=cleared;
function status(tmp) { }
function limit() { }
function cleared() { }
function url() {
return "/ajax/mark.php";
}
function params(ze, amid, vars) {
return "ze="+ze+"&ajaxmid="+amid+"&mark="+vars;
}
function parser(html, vars) {
var TD;
if (html.toString() == "all") {
if (vars && $("forum-listing-"+vars)) {
$("#imgmark_"+vars).attr("src","/skins/2/images_global/forums/2/"+vars+"_shaded.png").attr("alt","No New");
TD = $("#mark_return_"+vars).removeAttr("id")[0];
TD.onmouseover = TD.onmouseout = TD.onclick = function(){};
} else if (html)
$("img[id^=imgmark]").each(
function(index, element) {
var ForumID = (element.id.match(/^imgmark_(\d+)$/)||[0,NaN])[1];
if (isNaN(ForumID))
return; // Well, that's odd. This isn't what we're looking for, though it looks similar.
element.alt = "No New";
element.src = "/skins/2/images_global/forums/2/" + ForumID + "_shaded.png";
var TD = element.parentNode;
$(TD).removeAttr("id");
TD.onmouseover = TD.onmouseout = TD.onclick = function(){};
}
);
} else {
if (vars && $("forum-listing-"+vars)) {
$("#imgmark_"+vars).attr("src","/skins/2/images_global/forums/2/"+vars+"_shaded.png").attr("alt","No New");
TD = $("#mark_return_"+vars).attr("id","")[0];
TD.onmouseover = TD.onmouseout = TD.onclick = function(){};
} else if (html)
$("img[id^=imgmark]").each(
function(index, element) {
var ForumID = (element.id.match(/^imgmark_(\d+)$/)||[0,NaN])[1];
if (isNaN(ForumID))
return; // Well, that's odd. This isn't what we're looking for, though it looks similar.
element.alt = "No New";
element.src = "/skins/2/images_global/forums/2/" + ForumID + "_shaded.png";
var TD = element.parentNode;
$(TD).removeAttr("id");
TD.onmouseover = TD.onmouseout = TD.onclick = function(){};
}
);
}
}
}
None.