Időzóna: (GMT +1 óra) RSS - hozzászólások

Új sablon CSS cserével

Szerző
Üzenet
Mykee
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2005.08.29. Hétfő 1:00
Hozzászólások: 806
Hozzászólás Elküldve: 2011.09.14. 14:54    Hozzászólás témája: Új sablon CSS cserével
Hozzászólás az előzmény idézésével
Sziasztok!

Egy érdekes kérdésem lenne: van-e olyan mod, vagy lehetőség, ami (hasonlóan az NV Quick Style-hoz) kicseréli a sablont, de csak a CSS fájlt.

Tehát a konkrét példa: van egy sablonom, ami fix szélességű, 960px. Viszont a wide monitorosoknak ugyanezt a sablont 1300px-re tolnám ki. Más szinte nem változna. Tehát elég lenne egy CSS paramétert átírnom, és máris kész.

Ha a sablont beduplázom, akkor helyet foglal, plusz a modokat is többször kell felvinni, ami plusz meló. Tehát a CSS cserét kellene megoldani egy kapcsolóval. (Pl. a jobb felső sarokban az, hogy 4:3-as vagy 16:9-es méret). (Ugyanez a megoldás jó lenne pl. a színvariációknál is, pl. zöld és kék.)

Van-e ilyenre lehetőség persze úgy, hogy ezt akár sütiben, vagy user beállításban lementse?

Felhasználó profiljának megtekintése Privát üzenet küldése
Mykee
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2005.08.29. Hétfő 1:00
Hozzászólások: 806
Hozzászólás Elküldve: 2011.09.14. 22:34    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Akkor álljon itt egy ideiglenes megoldás. Ideiglenes, mert sütiben tárol, nem adatbázisban, tehát userenként nem lehet letárolni. Mivel nem értek a keresztbe programozáshoz (javascript vs. php), így a következő módon készítettem el:
- a témában készítettem a stylesheet.css-ből egy másolatot (subsilver2 témám van) stylesheet2.css névvel az eredeti mellé
- módosítottam, amit kellett benne (szélesség, képek)
- a functions.php-be felvettem egy sort. Keresd ezt:

Kód:

      'T_STYLESHEET_LINK'      => (!$user->theme['theme_storedb']) ? "{$web_path}styles/" . $user->theme['theme_path'] . '/theme/stylesheet.css' : append_sid("{$phpbb_root_path}style.$phpEx", 'id=' . $user->theme['style_id'] . '&lang=' . $user->lang_name),


alá ezt tedd be:

Kód:

    'T_STYLESHEET_LINK2'      => (!$user->theme['theme_storedb']) ? "{$web_path}styles/" . $user->theme['theme_path'] . '/theme/stylesheet2.css' : append_sid("{$phpbb_root_path}style.$phpEx", 'id=' . $user->theme['style_id'] . '&lang=' . $user->lang_name),



- az overall_header.html-be a következőket kódoltam:

Keresd ezt:

Kód:

<link rel="stylesheet" href="{T_STYLESHEET_LINK}" type="text/css" />


Cseréld le erre:

Kód:

<link rel="stylesheet" type="text/css" title="sablon1"
    href="{T_STYLESHEET_LINK}">
<link rel="alternate stylesheet" type="text/css" title="sablon2"
    href="{T_STYLESHEET_LINK2}">


Keresd ezt:

Kód:

// ]]>
</script>


Tedd be elé ezt:

Kód:

// *** TO BE CUSTOMISED ***

var style_cookie_name = "stylecookie" ;
var style_cookie_duration = 30 ;

// *** END OF CUSTOMISABLE SECTION ***

function switch_style ( css_title )
{
// You may use this script on your site free of charge provided
// you do not remove this notice or the URL below. Script from
// http://www.thesitewizard.com/javascripts/change-style-sheets.shtml
  var i, link_tag ;
  for (i = 0, link_tag = document.getElementsByTagName("link") ;
    i < link_tag.length ; i++ ) {
    if ((link_tag[i].rel.indexOf( "stylesheet" ) != -1) &&
      link_tag[i].title) {
      link_tag[i].disabled = true ;
      if (link_tag[i].title == css_title) {
        link_tag[i].disabled = false ;
      }
    }
    set_cookie( style_cookie_name, css_title,
      style_cookie_duration );
  }
}
function set_style_from_cookie()
{
  var css_title = get_cookie( style_cookie_name );
  if (css_title.length) {
    switch_style( css_title );
  }
}
function set_cookie ( cookie_name, cookie_value,
    lifespan_in_days, valid_domain )
{
    // http://www.thesitewizard.com/javascripts/cookies.shtml
    var domain_string = valid_domain ?
                       ("; domain=" + valid_domain) : '' ;
    document.cookie = cookie_name +
                       "=" + encodeURIComponent( cookie_value ) +
                       "; max-age=" + 60 * 60 *
                       24 * lifespan_in_days +
                       "; path=/" + domain_string ;
}
function get_cookie ( cookie_name )
{
    // http://www.thesitewizard.com/javascripts/cookies.shtml
    var cookie_string = document.cookie ;
    if (cookie_string.length != 0) {
        var cookie_value = cookie_string.match (
                        '(^|;)[\s]*' +
                        cookie_name +
                        '=([^;]*)' );
        return decodeURIComponent ( cookie_value[2] ) ;
    }
    return '' ;
}


Keresd ezt:

Kód:

<body class="{S_CONTENT_DIRECTION}">


Cseréld le erre:

Kód:

<body class="{S_CONTENT_DIRECTION}" onload="set_style_from_cookie()">


Keresd ezt:

Kód:

<td class="gensmall"><!-- IF S_USER_LOGGED_IN -->{LAST_VISIT_DATE}<!-- ENDIF --></td>


Add utána ezt:

Kód:

<td class="gensmall"><form>
<input type="submit"
  onclick="switch_style('sablon1');return false;"
  name="theme" value="Egy" id="sablon1">
<input type="submit"
  onclick="switch_style('sablon2');return false;"
  name="theme" value="Kettő" id="sablon2">
</form>
</td>



- nomármost. A cookie neve módosítható és 30 napra szól (ld a kódban). Az Egy és Kettő szöveg átírható.

Amit észrevettem, hogy alapból az elsőt betölti, majd utána tölti a második stíluslapot. Ezen is csiszolni lehetne. Illetve nem mindegyik böngésző jegyzi meg a sütit...

Ui: sajnos itt a kód nem megfelelően van idézve, így itt az eredeti oldal, ahonnan a script származik:
http://www.thesitewizard.com/javascripts/change-style-sheets.shtml

Felhasználó profiljának megtekintése Privát üzenet küldése
Hozzászólások megtekintése:  

Időzóna: (GMT +1 óra) RSS - hozzászólások
Nem készíthetsz új témákat ebben a fórumban.
Nem válaszolhatsz egy témára ebben a fórumban.
Nem módosíthatod a hozzászólásaidat a fórumban.
Nem törölheted a hozzászólásaidat a fórumban.
Nem szavazhatsz ebben fórumban.

Hirdetés
Hirdetés