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.