Well OK, just hope none of what I wrote breaks.
function JidanniLessRedContentActions($sktemplate,$content_actions){
//Besides Monobook, (our target), this even also gets run by Vector skin but
doesn\'t affect it apparently 11/2010
if(array_key_exists('talk',
$content_actions)&&'new'==$content_actions['talk']['class']&&
!$sktemplate->mTitle->quickUserCan('createtalk')){unset($content_actions['talk'],$content_actions['watch']);}
if(array_key_exists('nstab-category',$content_actions)&&'selected
new'==$content_actions['nstab-category']['class']){
$content_actions['nstab-category']['class']='selected';}
return true;}
$wgHooks['SkinTemplateTabs'][]='JidanniLessRedContentActions'; //Bug
17963
function JidanniLessRedContentActionsVectorTypeSkins($sktemplate,$links){
if(isset($links['namespaces'])&&
is_array($links['namespaces'])&&
!$sktemplate->mTitle->quickUserCan('createtalk')){
foreach(array_keys($links['namespaces']) as $ns){
if(strpos($ns,'talk')!==false){
if(isset($links['namespaces'][$ns]['class'])&&
'new'==$links['namespaces'][$ns]['class']){
unset($links['namespaces'][$ns]);}}}
if(isset($links['actions']['watch'])){unset($links['actions']['watch']);}}
if(isset($links['namespaces']['category']['class'])&&
'selected
new'==$links['namespaces']['category']['class']){
$links['namespaces']['category']['class']='selected';}
return true;}
$wgHooks['SkinTemplateNavigation'][]='JidanniLessRedContentActionsVectorTypeSkins';
Maybe I can even remove the first function soon.