Header Logo Implementation (Timeless) and Side Bar removal

From അഭിപ്രായവേദി

Header Logo Implementation (Timeless) and Side Bar removal

- $wgSitename remains "അഭിപ്രായവേദി"

- Sidebar logo hidden via CSS

- Header logo implemented as SVG background on #p-banner

- Search placeholder uses site name

- No Timeless PHP modifications required


Backup of related pages (18-06-2026)

Localsettings.php

<?php


$wgShowExceptionDetails = true;

$wgShowDBErrorBacktrace = true;

wfDebugLog( 'session', 'LOGIN DEBUG: ' . $_SERVER['HTTP_USER_AGENT'] );



# MediaWiki Configuration for AbhiprayaVedi

# Generated and Cleaned: January 2026


# Protect against web entry

if ( !defined( 'MEDIAWIKI' ) ) {

exit;

}


# ============================================================================

# BASIC SITE CONFIGURATION

# ============================================================================


$wgSitename = "അഭിപ്രായവേദി";

$wgMetaNamespace = "AbhiprayaVedi";


## URL Configuration

$wgScriptPath = "";

$wgServer = "https://abhiprayavedi.org"; # Changed to HTTPS for security

$wgCookieSecure = true;

$wgResourceBasePath = $wgScriptPath;


## Logo Configuration

$wgLogos = [

'1x' => "$wgResourceBasePath/resources/assets/AV-Logo.svg",

'tagline' => [

"src" => "Debate * Discuss * Evolve",

"width" => 117,

"height" => 13

],

'icon' => "$wgResourceBasePath/resources/assets/AV-Icon.svg",

];


# ============================================================================

# LANGUAGE AND LOCALIZATION

# ============================================================================


$wgLanguageCode = "en"; # Malayalam as primary language

$wgLocaltimezone = "Asia/Kolkata"; # Indian Standard Time

date_default_timezone_set( $wgLocaltimezone );


## Enable English as fallback

$wgUsersLanguages = [ 'en', 'ml' ];


# ============================================================================

# DATABASE CONFIGURATION

# ============================================================================


$wgDBtype = "mysql";

$wgDBserver = "localhost";

$wgDBname = "abhip6c6_abhi";

$wgDBuser = "abhip6c6_vij";

$wgDBpassword = "Free@2026";

$wgDBprefix = "";

$wgDBssl = false;

$wgDBTableOptions = "ENGINE=InnoDB, DEFAULT CHARSET=binary";

$wgSharedTables[] = "actor";


## Secret keys

$wgSecretKey = "10840d43e32a0bc34bf870e6a90ced2d39447729bde9b134bedc86ca7442c20c";

$wgUpgradeKey = "0985e053df130967"; # Replace with your actual key

$wgAuthenticationTokenVersion = "1";


## Force HTTPS (optional, but recommended if SSL is properly configured)

$wgForceHTTPS = true;


# ============================================================================

# EMAIL CONFIGURATION

# ============================================================================


$wgEnableEmail = true;

$wgEnableUserEmail = true;

$wgEmergencyContact = "admin@abhiprayavedi.org";

$wgPasswordSender = "noreply@abhiprayavedi.org";


$wgEnotifUserTalk = true;

$wgEnotifWatchlist = true;

$wgEmailAuthentication = true;


# ============================================================================

# FILE UPLOAD CONFIGURATION

# ============================================================================


$wgEnableUploads = true;

$wgUseImageMagick = true;

$wgImageMagickConvertCommand = "/usr/bin/convert";

$wgMaxUploadSize = 100 * 1024 * 1024; # 100MB

$wgFileExtensions = array_merge(

$wgFileExtensions,

['png', 'gif', 'jpg', 'jpeg', 'pdf', 'svg', 'webp']

);


## Upload directory permissions

$wgUploadDirectory = "$IP/images";

$wgUploadPath = "$wgScriptPath/images";


$wgUseInstantCommons = false;


# ============================================================================

# CUSTOM NAMESPACES

# ============================================================================


define("NS_DRAFT", 3000);

define("NS_DRAFT_TALK", 3001);


define("NS_PRIVATE", 3002);

define("NS_PRIVATE_TALK", 3003);


define("NS_SUBMISSIONS", 3004);

define("NS_SUBMISSIONS_TALK", 3005);


define("NS_ARTICLES", 3006);

define("NS_ARTICLES_TALK", 3007);


$wgExtraNamespaces = [

NS_DRAFT => "Draft",

NS_DRAFT_TALK => "Draft_talk",

NS_PRIVATE => "Private",

NS_PRIVATE_TALK => "Private_talk",

NS_SUBMISSIONS => "Submissions",

NS_SUBMISSIONS_TALK => "Submissions_talk",

NS_ARTICLES => "Articles",

NS_ARTICLES_TALK => "Articles_talk",

];

# Do not index editorial namespaces

$wgNamespacesToBeSearchedDefault[NS_DRAFT] = false;

$wgNamespacesToBeSearchedDefault[NS_SUBMISSIONS] = false;

$wgNamespacesToBeSearchedDefault[NS_PRIVATE] = false;


# ============================================================================

# ============================================================================

# GLOBAL READ POLICY & NAMESPACE LOCKDOWN

# ============================================================================


$wgGroupPermissions['*']['read'] = true;


$wgNamespacePermissionLockdown[NS_DRAFT]['*'] = ['user'];

$wgNamespacePermissionLockdown[NS_SUBMISSIONS]['*'] = ['user'];

$wgNamespacePermissionLockdown[NS_PRIVATE]['*'] = ['sysop'];


# ============================================================================

# EDITORIAL WRITE PROTECTION

# ============================================================================


$wgNamespaceProtection[NS_DRAFT] = ['edit'];

$wgNamespaceProtection[NS_SUBMISSIONS] = ['edit'];

$wgNamespaceProtection[NS_PRIVATE] = ['editprivate'];


# ============================================================================

# GROUP PERMISSIONS & USER RIGHTS

# ============================================================================


# Anonymous users (*)

$wgGroupPermissions['*']['edit'] = false;

$wgGroupPermissions['*']['createaccount'] = false;

$wgGroupPermissions['*']['autocreateaccount'] = false;


# Regular users (user)

$wgGroupPermissions['user']['edit'] = true;

$wgTemplateStylesNamespaces[NS_USER] = true;

$wgGroupPermissions['user']['formedit'] = true;


# Editors (editor)

$wgGroupPermissions['editor']['edit'] = true;

$wgGroupPermissions['editor']['createpage'] = true;

$wgGroupPermissions['editor']['move'] = true;

$wgGroupPermissions['editor']['upload'] = true;

$wgGroupPermissions['editor']['formedit'] = true;


# Sysops (sysop)

$wgGroupPermissions['sysop']['edit'] = true;

$wgGroupPermissions['sysop']['editprivate'] = true;

$wgGroupPermissions['sysop']['formedit'] = true;

$wgGroupPermissions['sysop']['editinterface'] = true;

$wgGroupPermissions['sysop']['viewedittab'] = true;


$wgGroupPermissions['*']['viewedittab'] = false;


# ============================================================================

# SKIN CONFIGURATION

# ============================================================================


wfLoadSkin( 'timeless' );

$wgDefaultSkin = 'timeless';

#wfLoadSkin( 'Chameleon' );

#$wgDefaultSkin = "vector";

#wfLoadSkin( 'Vector' );


## Vector skin options

# $wgVectorDefaultSkinVersion = '2';vi

# $wgVectorDefaultSkinVersionForExistingAccounts = '2';


# ============================================================================

# EXTENSIONS

# ============================================================================


## Core extensions

wfLoadExtension( 'CategoryTree' );

wfLoadExtension( 'Cite' );

wfLoadExtension( 'CiteThisPage' );

wfLoadExtension( 'ParserFunctions' );

wfLoadExtension( 'WikiEditor' );

wfLoadExtension( 'ImageMap' );

wfLoadExtension( 'PageForms' );

wfLoadExtension( 'VisualEditor' );

#wfLoadExtension( 'DynamicPageList4' );

wfLoadExtension( 'SemanticMediaWiki' );

$smwgCompactLinkSupport = true;

$smwgChangePropagationProtection = true;


$wgDefaultUserOptions['visualeditor-enable'] = 1;

$wgHiddenPrefs[] = 'visualeditor-enable';

wfLoadExtension( 'TemplateStyles' );

wfLoadExtension( 'DisplayTitle' );

wfLoadExtension( 'Lockdown' );


$wgAllowDisplayTitle = true;

$wgRestrictDisplayTitle = false;


# PageForms configuration

$wgPageFormsRenameEditTabs = true;

$wgPageFormsRenameMainEditTab = true;

$wgPageFormsShowEditFormTab = true;

$wgPageFormsEnableFormEditTab = true;

$wgPageFormsAutocompleteOnAllChars = true;

$wgPageFormsMaxAutocompleteValues = 100;


## ParserFunctions configuration

$wgPFEnableStringFunctions = true;


# Enable Universal Language Selector for Malayalam input

wfLoadExtension( 'UniversalLanguageSelector' );

$wgULSEnable = true;

$wgULSIMEEnabled = true;

$wgULSLanguageDetection = true;


## WikiEditor configuration

$wgDefaultUserOptions['usebetatoolbar'] = 1;

$wgDefaultUserOptions['usebetatoolbar-cgd'] = 1;



# ============================================================================

# PERFORMANCE AND OPTIMIZATION

# ============================================================================


## Disable some features for better performance on shared hosting

$wgDisableOutputCompression = false;

$wgJobRunRate = 0; # Disable job queue on page requests (set up cron instead)


## Cache expiry

$wgParserCacheExpireTime = 86400; # 1 day

$wgRevisionCacheExpiry = 86400;


## Resource loader

$wgResourceLoaderMaxQueryLength = 2000;


# FIXED SESSION CONFIGURATION (KEEPS LOGIN WORKING)

$wgSessionCacheType = CACHE_DB;

$wgMainCacheType = CACHE_ANYTHING;

$wgSessionsInObjectCache = true;


# Cookie fixes

$wgCookieSecure = false; // if not HTTPS

$wgCookieHttpOnly = true;

ini_set( 'session.cookie_httponly', 1 );


# ============================================================================

# MISCELLANEOUS

# ============================================================================


## Copyright/License

$wgRightsPage = "";

$wgRightsUrl = "https://creativecommons.org/licenses/by-sa/4.0/";

$wgRightsText = "Creative Commons Attribution-ShareAlike 4.0";

$wgRightsIcon = "$wgResourceBasePath/resources/assets/licenses/cc-by-sa.png";


## Diff tool

$wgDiff3 = "/usr/bin/diff3";


## Pingback to MediaWiki.org

$wgPingback = false; # Disable for privacy


## Recent changes

$wgRCMaxAge = 90 * 24 * 3600; # 90 days


## Page title

$wgRestrictDisplayTitle = false;


## Prevent anonymous page creation

$wgGroupPermissions['*']['createpage'] = false;


# Set contributor guide as prominent

$wgDefaultUserOptions['welcomecreation'] = true;

# ============================================================================

# DEBUG CONFIGURATION (Disable in production)

# ============================================================================


## Uncomment these lines for debugging (NEVER on production)

# error_reporting( -1 );

# ini_set( 'display_errors', 1 );

# $wgShowExceptionDetails = true;

# $wgShowDBErrorBacktrace = true;

# $wgDebugToolbar = true;

# ============================================================================

# END OF CONFIGURATION

# ============================================================================


Mediawiki:Timeless.css

#mw-site-navigation #p-logo {

display: none;

}

#p-banner {

display: inline-block;


width: 260px;

height: 42px;


background-image: url("/resources/assets/AV-Logo.svg");

background-repeat: no-repeat;

background-size: contain;

background-position: left center;


text-indent: -9999px;

overflow: hidden;

}

#simpleSearch {

margin-left: 30px;

}


Mediawiki:Common.css

/* ==========================================================================

1. LOAD MALAYALAM GOOGLE FONTS

========================================================================== */

@import url('https://smc.org.in/fonts/manjari.css');

@import url('https://googleapis.com');


/* GLOBAL FONTS FORCE (Combined to eliminate duplications) */

lang(ml), :lang(ml) *,

body:lang(ml), .mw-body:lang(ml), .mw-body-content:lang(ml), #content:lang(ml),

.mw-parser-output:lang(ml), .article-content:lang(ml), .article-content *,

.intro-box:lang(ml), p:lang(ml), span:lang(ml), div:lang(ml),

h1:lang(ml), h2:lang(ml), h3:lang(ml), h4:lang(ml),

#firstHeading, .mw-first-heading, .firstHeading {

font-family: 'Manjari', 'Meera', 'Rachana', 'Noto Sans Malayalam', 'Nirmala UI', sans-serif !important;

}


/* ഫയൽ എറർ ഒഴിവാക്കാൻ ഗൂഗിൾ വെബ് ഫോണ്ടുകൾ ഫോഴ്സ് ചെയ്യുക */

@font-face {

font-family: 'Meera';

src: url('https://gstatic.com') format('woff2'); /* സെർവർ എറർ മറികടക്കാൻ */

}


/* GLOBAL MINOR TWEAKS */

body {

line-height: 1.7;

}

.article-content * {

line-height: 1.85 !important;

}


/* ==========================================================================

2. HEADINGS & TITLES

========================================================================== */

#firstHeading, .mw-first-heading, .firstHeading {

font-size: 2.35em !important;

font-weight: 700 !important;

margin-bottom: 0.4em !important;

color: #222;

border-bottom: solid 4px #36c;

}

lang(en) #firstHeading, :lang(en) .mw-first-heading {

font-size: 2.45em !important;

}


/* HIDE NAMESPACE SUBTITLE FOR PUBLISHED ARTICLES */

.mw-displaytitle-subtitle {

display: none !important;

}


/* ==========================================================================

3. LAYOUT & SIDEBARS (FULL WIDTH)

========================================================================== */

#mw-site-navigation, #mw-related-navigation {

display: none !important;

}

#mw-content-container {

margin-left: 0 !important;

margin-right: 0 !important;

padding-left: 2rem !important;

padding-right: 2rem !important;

max-width: 100% !important;

}

#content {

max-width: 100% !important;

}


/* ==========================================================================

4. FIXED: HIDE PAGE TABS FOR ANONYMOUS USERS (Dynamic Fix)

========================================================================== */

/* ==========================================================================

4. FIXED: HIDE PAGE TABS FOR ANONYMOUS USERS ONLY

========================================================================== */

.anon-visitor #mw-page-header-links,

.anon-visitor #siteSub {

display: none !important;

}


/* ==========================================================================

5. LOGO INTEGRATION FOR DISPLAY NAME PLACE

========================================================================== */

.mw-wiki-title {

font-family: 'Manjari', sans-serif !important;

font-weight: bold;

font-size: 22px;

color: #002B49 !important; /* Deep Navy */

}


Mediawiki:Common.js

/* ഇവിടെ നൽകുന്ന ജാവാസ്ക്രിപ്റ്റ് എല്ലാ ഉപയോക്താക്കൾക്കും, എല്ലാ താളുകളിലും പ്രവർത്തിക്കുന്നതായിരിക്കും */

// Show display titles in category pages instead of page names

$(document).ready(function() {

if ($('.mw-category').length) {

$('.mw-category li a').each(function() {

var pageTitle = $(this).attr('title');

if (pageTitle) {

// This will use the page's actual display title

// MediaWiki automatically uses DISPLAYTITLE in title attribute

$(this).text(pageTitle);

}

});

}

});



/* ==========================================================================

ANONYMOUS USERS ONLY: HIDE PAGE TABS (View Source, History etc.)

========================================================================== */

(function () {

// ഉപയോക്താവ് ലോഗിൻ ചെയ്തിട്ടില്ലെങ്കിൽ (അനോണിമസ് ആണെങ്കിൽ)

if (mw.config.get('wgUserId') === null) {

// ഡോക്യുമെന്റ് ലോഡ് ആയതിനു ശേഷം റൺ ചെയ്യുക

$(document).ready(function () {

// പേജ് ടാബുകൾ അടങ്ങിയ കണ്ടെയ്നർ പൂർണ്ണമായി നീക്കം ചെയ്യുക

$('#mw-page-header-links').remove();

// 'From AbhiprayaVedi' എന്ന ലൈൻ നീക്കം ചെയ്യുക

$('#siteSub').remove();

});

}

}());