Ok updated for what should be complete inheritance and some redundant code removed
These are the steps for editing the code pasted from user.php in Merk's instructions (step 5). So just replace step5 with this and inheritance should go through as many children as possible. With some slight changes this would also work for PPN's code too i believe since it suffers from the same problem of not inheriting past the first parent forum.
Find
PHP Code:
if ($action=="editaccess") {
Add immediately below it
PHP Code:
if(!isset($userid)) {
$username=$DB_site->query_first("SELECT userid FROM user WHERE username='$user_name'");
$userid=$username[userid];
}
$user=$DB_site->query_first("SELECT username FROM user WHERE userid='$userid'");
$accesslist=$DB_site->query("SELECT * FROM access WHERE userid='$userid'");
while ($access=$DB_site->fetch_array($accesslist)) {
$accessarray["$access[forumid]"] = $access;
}
$DB_site->free_result($accesslist);
Find
PHP Code:
doformheader("user","updateaccess");
makehiddencode("userid","$userid");
Replace with
PHP Code:
doformheader("modaccessmasks","updateaccess");
makehiddencode("userid","$userid");
Edit the html section just after this to your liking if you wish for your moderators.
Find
PHP Code:
while($forum=$DB_site->fetch_array($forumlist)) {
echo "<tr class='secondalt'><td nowrap><P>$forum[title]</p></td><td width=100%><p>";
if ( is_array($accessarray["$forum[forumid]"]) ) {
Change too (This makes sure not all forums are displayed just ones they have access too).
PHP Code:
while($forum=$DB_site->fetch_array($forumlist)) {
if ( is_array($accessarray["$forum[forumid]"]) ) {
Find
PHP Code:
echo "<input type=\"radio\" name=\"accessupdate[".$forum['forumid']."]\" value=\"1\"".iif($sel
==1,"checked","")."> Yes <input type=\"radio\" name=\"accessupdate[".$forum['forumid']."]\" value=
\"0\"".iif($sel==0,"checked","")."> No <input type=\"radio\" name=\"accessupdate[".$forum['forumid
']."]\" value=\"-1\" ".iif($sel==-1,"checked","")."> Default <input type=\"hidden\" name=\"oldcach
e[".$forum['forumid']."]\" value=\"$sel\">";
echo "</p></td></tr>\n";
}
Replace with
PHP Code:
$perms=getpermissions($forumid,-1,-1,$forum[parentlist]);
if(( ismoderator($forum[forumid],"canmoderateposts") ||
$perms['ismoderator'] && $forum['allowmodaccess']) ||
$perms['cancontrolpanel']) {
echo "<tr class='secondalt'><td nowrap><P>$forum[title]</p></td><td width=100%><p>";
echo "<input type=\"radio\" name=\"accessupdate[".$forum['forumid']."]\" value=\"1\"".iif($sel
==1,"checked","")."> Yes <input type=\"radio\" name=\"accessupdate[".$forum['forumid']."]\" value=
\"0\"".iif($sel==0,"checked","")."> No <input type=\"radio\" name=\"accessupdate[".$forum['forumid
']."]\" value=\"-1\" ".iif($sel==-1,"checked","")."> Default <input type=\"hidden\" name=\"oldcach
e[".$forum['forumid']."]\" value=\"$sel\">";
echo "</p></td></tr>\n";
}
}
Find
PHP Code:
echo "<p>User access updated successfully</p>";
$action="modify";
Replace with
PHP Code:
echo "<p>User access updated successfully</p>";
$action="select";
And your done!!
These directions hopefully are more clear