einmal gewöhltes Style behalten?

Hier können Probleme und alles andere in Deutscher Sprache gelöst werden.
Post Reply
tina223
Regular
Posts: 118
Joined: Mon Dec 05, 2005 10:21 pm
Location: Rhodos
Contact:

einmal gewöhltes Style behalten?

Post by tina223 »

Hallöchen,
ich möchte gern, dass die Besucher sich ihren style auswählen können und nun ist es aber so, dass beim nächsten Besuch dieses Style nicht mehr da ist, also das standardtheme kommt, kann man da was gegen machen?
Also, die besucher sollen ihren einmal gewöhlten style behalten, auch wenn sie wiederkommen.
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: einmal gewöhltes Style behalten?

Post by garvinhicking »

Das geht, ja. Probier doch bitte mal folgendes.

Öffne deine Datei plugins/serendipity_event_templatechooser/serendipity_event_templatechooser.php

Suche da in der recht kleinen DAtei ungefähr bie Zeile 52 nach diesem Code:

Code: Select all

                if (isset($_REQUEST['user_template']) && (in_array($_REQUEST['user_template'], serendipity_fetchTemplates())) ) {
                    $_SESSION['serendipityUseTemplate'] = $_REQUEST['user_template'];
                }
und ändere das in:

Code: Select all

                if (isset($serendipity['COOKIE']['user_template'])) {
                    $_REQUEST['user_template'] = $serendipity['COOKIE']['user_template'];
                }

                if (isset($_REQUEST['user_template']) && (in_array($_REQUEST['user_template'], serendipity_fetchTemplates())) ) {
                    $_SESSION['serendipityUseTemplate'] = $_REQUEST['user_template'];
                    serendipity_setCookie('user_template', $_REQUEST['user_template']);
                }
Dann sollte das gewählte Theme eigentlich per Cookie gespeichert werden. Probier's mal bitte aus, wenn das korrekt klappt kann ich es in der Standarddistribution aufnehmen.

Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
tina223
Regular
Posts: 118
Joined: Mon Dec 05, 2005 10:21 pm
Location: Rhodos
Contact:

Post by tina223 »

Also, Im Grunde klappt es, aber:
Es kommt das von mir gewählte Theme, nur, es kommt nicht richtig, es ist wesentlich zu breit. Erst wenn ich aktualisiere im Brwoser kommt es richtig.
Das betrifft den Firefox.

Im IE will nicht das gewählte kommen, muss man also auch hier erst wieder das Theme wechseln... logisch eigentlich...:-)
aber dann kommt es zumindest zeitnah gleich bei Neuöffnung des IE wieder in dem gewünschten Theme und auch ohne zubreit zu sein.

S, nun stelle ich grad fest, nun kann man kein anderes Theme mehr im Fox aussuchen, es bleibt bei dem erstmals ausgesuchten Theme.

Im IE ist das auch so.
Also noch nicht perfekt...:-)
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Benutzt Du serendipity 1.0-beta1? Erst dort ist der Themewechsel so, dass cachende Browser das direkt reloaden.

Und "Cross-Browser" klappt der cookie nicht. Man muss das im Browser jeweils einmal einstellen. Anders geht das technisch nicht, da müssten die User schon registriert sein bevor das klappt.

Bezüglich der Einmal-Wahl, ja das hast Du recht bitte probiere stattdessen diesen Code:

Code: Select all

                if (isset($serendipity['COOKIE']['user_template']) && !isset($_REQUEST['user_template'])) {
                    $_REQUEST['user_template'] = $serendipity['COOKIE']['user_template'];
                }

                if (isset($_REQUEST['user_template']) && (in_array($_REQUEST['user_template'], serendipity_fetchTemplates())) ) {
                    $_SESSION['serendipityUseTemplate'] = $_REQUEST['user_template'];
                    serendipity_setCookie('user_template', $_REQUEST['user_template']);
                }
Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
tina223
Regular
Posts: 118
Joined: Mon Dec 05, 2005 10:21 pm
Location: Rhodos
Contact:

Post by tina223 »

Nun weiß ich nicht, was ich sagen soll.
Gott sei dank habe ichs an einem blog probiert, der inzwischen hinfällig ist, ich ihn aber weiter für testzwecke nutze.

Ich habe das also mal geändert und es scheint zu klappen...
Nur das Standardtheme kommt nicht mehr richtig, wenn ichs auswähle.
Es ist das joshua, falls du mal selbst probieren willst
http://rapinferno-online.com/comm
Ich schalte jetzt mal ein anderes Theme als standard (Independence), damit du dann wenigstens auswählen kannst, falls im ursprünglichen Standardtheme joshua nix kommt.

Im IE kann ich nicht mehr probieren, da komme ich aus dem kaputten joshua nicht mehr raus, obwohl anderes Standardtheme jetzt gültig ist :-)
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Ähm, wie sieht dein templatechooser plugin jetzt aus? Ich habe den eindruck, dass da jetzt etwas defekt ist.

Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
tina223
Regular
Posts: 118
Joined: Mon Dec 05, 2005 10:21 pm
Location: Rhodos
Contact:

Post by tina223 »

Gut, ehe ich mich blamiere, füge ich das noch mal neu ein... :-)
Meld emich gleich wieder...
tina223
Regular
Posts: 118
Joined: Mon Dec 05, 2005 10:21 pm
Location: Rhodos
Contact:

Post by tina223 »

Ich habe nun auch daraufhin keine neuen Erkenntnisse oder Bilder.
Hier ist das gesamte Dingen:
<?php # $Id: serendipity_event_templatechooser.php 346 2005-08-01 17:35:25Z garvinhicking $

// Probe for a language include with constants. Still include defines later on, if some constants were missing
$probelang = dirname(__FILE__) . '/' . $serendipity['charset'] . 'lang_' . $serendipity['lang'] . '.inc.php';
if (file_exists($probelang)) {
include $probelang;
}

@define('PLUGIN_EVENT_TEMPLATECHOOSER_NAME', 'Template chooser');
@define('PLUGIN_EVENT_TEMPLATECHOOSER_DESC', 'Allows your visitors to change template on the fly');

class serendipity_event_templatechooser extends serendipity_event
{
var $title = PLUGIN_EVENT_TEMPLATECHOOSER_NAME;

function introspect(&$propbag)
{
global $serendipity;

$propbag->add('name', PLUGIN_EVENT_TEMPLATECHOOSER_NAME);
$propbag->add('description', PLUGIN_EVENT_TEMPLATECHOOSER_DESC);
$propbag->add('stackable', false);
$propbag->add('author', 'Evan Nemerson');
$propbag->add('version', '1.1');
$propbag->add('requirements', array(
'serendipity' => '0.8',
'smarty' => '2.6.7',
'php' => '4.1.0'
));
$propbag->add('groups', array('BACKEND_TEMPLATES'));
$propbag->add('event_hooks', array('frontend_configure' => true));

// Register (multiple) dependencies. KEY is the name of the depending plugin. VALUE is a mode of either 'remove' or 'keep'.
// If the mode 'remove' is set, removing the plugin results in a removal of the depending plugin. 'Keep' meens to
// not touch the depending plugin.
$this->dependencies = array('serendipity_plugin_templatedropdown' => 'remove');
}

function generate_content(&$title) {
$title = $this->title;
}

function event_hook($event, &$bag, &$eventData) {
global $serendipity;

$hooks = &$bag->get('event_hooks');

if (isset($hooks[$event])) {
switch($event) {
case 'frontend_configure':

if (isset($serendipity['COOKIE']['user_template']) && !isset($_REQUEST['user_template'])) {
$_REQUEST['user_template'] = $serendipity['COOKIE']['user_template'];
}

if (isset($_REQUEST['user_template']) && (in_array($_REQUEST['user_template'], serendipity_fetchTemplates())) ) {
$_SESSION['serendipityUseTemplate'] = $_REQUEST['user_template'];
serendipity_setCookie('user_template', $_REQUEST['user_template']);
}

if (isset($_SESSION['serendipityUseTemplate']) ) {
$templateInfo = serendipity_fetchTemplateInfo($_SESSION['serendipityUseTemplate']);
$eventData['template'] = $_SESSION['serendipityUseTemplate'];
$eventData['template_engine'] = isset($templateInfo['engine']) ? $templateInfo['engine'] : $serendipity['defaultTemplate'];
}

return true;
break;

default:
return false;
}

} else {
return false;
}
}
}

/* vim: set sts=4 ts=4 expandtab : */
?>
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Also ich glaube, der templatechooser in seiner früheren Version dürfte dann auf diesem Blog auch nicht funktioniert haben? Irgendeines der anderen Plugins läuft da wohl nicht korrekt. Vielleicht mal auf updates prüfen oder abspecken?

Wie gesagt, das Templatewechseln funktioniert erst ab Serendipity 1.0-beta1 ohne manuellen Reload.

Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
tina223
Regular
Posts: 118
Joined: Mon Dec 05, 2005 10:21 pm
Location: Rhodos
Contact:

Post by tina223 »

Doch, vorher hat alles funktioniert, nur, dass man halt beim späteren Besuch wieder das Standard präsentiert bekam.
Es geht ja auch nicht um diesen Blog. Interessant nur, wieso ausgerechnet das Theme, was den Standard darstellte, nun plötzlich nicht mehr hinhaut.

Update. hm... kann ich ja an dem Blog mal probieren... und wieso abspecken? Da ist doch gar nicht so viel drauf... oder drin...
Danke erst mal.
Wenns dann auch nicht geht, schreie ich... :-)
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Genau, einfach mal das original-plugin wiederherstellen, dann müsste ja alles wie vorher sein.

Ich hab'S gerad ein meinem Test-Blog (1.0-beta1) mal probiert, da klappt das Plugin wie gewünscht und merkt sich alles.

Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
tina223
Regular
Posts: 118
Joined: Mon Dec 05, 2005 10:21 pm
Location: Rhodos
Contact:

Post by tina223 »

Ja, ich muss erst mal das 1.0er draufspielen... kann einen moment dauern.
Post Reply