Jump to content
InvisionCommunity.de - Der Deutsche Invision Community Support
Sign in to follow this  
Mr.S

Board mit 2.Skin

Recommended Posts

Abend.

Ich möchte das Board, wenn ich es über eine bestimmte URL

z.b. www.meinboard.com/index2.php

aufrufe das es einen anderen Skin hat bzw die Boardstartseite anders aussieht.

d.h. kein Boardlogo oben, andere Hintergrund,...

Ist das möglich? Wenn ja wie?

danke für eure hilfe!

Share this post


Link to post

Ja, das ist Möglich. Ich werde Stefan mal auf dieses Thema loslassen, der hatte mir mal etwas geschrieben, womit man dann Skins per URL "durchschleifen" kann, das sah glaube ich so aus:

index.php?skinid=2

Mal schauen ob er die änderung noch auf lager hat :) Ist sehr Interessant sowas, wenn man Partnerseiten hat die dann einen eigenen Hintergrund oder so haben wollen :)

Share this post


Link to post

Andere Möglichkeit die ich die empfehlen kann, falls das was für dich wäre ...

Bei meinem Board ist in der Login-Prozedure eine Referer-Erkennung drin, soll heißen, wenn jemand von der und der Seite kommt, wird er automatisch als der und der User eingeloggt. So kannst du jedem User verschiedene Rechte, und Layouts geben, und musst dann nur noch Name und Passwort in der Login-Prozedur "überschreiben". Am Ende auf die Login-Prozedur verlinkt, und fertig ...

Ohne Werbung machen zu wollen, unter http://www.teamdead.de/frame.html kommt man auf das gleiche Board, wie über www.deadforum.net - nur wer über teamdead.de kommt, wird automatisch als teamdead.de eingeloggt.

Natürlich ist die Referer erkennung nicht 100% sicher, also würd ichs zumindest nicht für wichtige Sachen nehmen .

BLACK

Edited by Blackman

Share this post


Link to post

Ja, das ist Möglich. Ich werde Stefan mal auf dieses Thema loslassen, der hatte mir mal etwas geschrieben, womit man dann Skins per URL "durchschleifen" kann, das sah glaube ich so aus:

index.php?skinid=2
Mal schauen ob er die änderung noch auf lager hat :) Ist sehr Interessant sowas, wenn man Partnerseiten hat die dann einen eigenen Hintergrund oder so haben wollen :)
So so, du läßt mich also auf das Thema los? Ich würde eher sagen, du hast mich quasi dazu genötigt, mir das Thema anzuschauen. :lol::P Und ja, ich hab mal so einen kleinen Workaround geschrieben, das die Skinid durchgeschliffen wird. Müßte auch noch auf meiner Festplatte liegen, wie viele andere Sachen für das Forum auch, was ich mal so gebaut und nie veröffentlicht habe. :lol: Ansonsten geht es aber auch mittels einer zweiten index.php, so wie es gewollt wird. Da ich auf der Arbeit bin, somit noch recht früh ist und ich keinen Zugriff auf meinen "unreleased Mod" Ordner habe, kann ich dir nur kurz die eine Lösung schreiben. ;) Da ich davon ausgehe, das du beim Aufruf der index2.php immer den besagten Skin aufrufen willst, egal ob das Mitglied ein anderes Skin ausgewählt hat oder nicht, ist die Lösung recht trivial. Mach dir einfach eine Kopie der index.php und füge überhalb von
$ibforums->skin       = $std->load_skin();
einfach folgendes ein, wobei das X gegen die entsprechende Skinid ausgetauscht werden mußt.
$ibforums->input['skinid'] = X;

Das war es schon, sollte es jedenfalls gewesen sein. :lol:

Edited by Stefan

Share this post


Link to post

funzt nicht so wirklich scheinbar.

ich habs probiert, weil ich ja jetzt support für eine software liefere, und die natürlich n eigenes skin wollen.

keine fehlermeldung, kein gar nix - er ignoriert die zusätzliche zeile einfach *G*

Share this post


Link to post

Ja, da ist mir eine Zeile zuviel reingerutscht btw. der neue Eintrag muß direkt über den folgenden Quelltext stehen:

$ibforums->skin       = $std->load_skin();

Hinzu kommen noch ein paar Sachen, die man beachten muß. Sollte es ausgeschalten sein, das Mitglieder ihr eigenes Skin wählen dürfen oder das per hinzugefügte Zeile aufzurufende Skin auf "Hidden" steht, dann wird auch der Eintrag ignoriert.

Anosnten müßte man in der functions.php ein paar Änderungen vornehmen und ich wollte das jetzt so einfach wie möglich halten. :)

Share this post


Link to post

einfach is eh super - wünsch ich mir immer!

bei mir wirds aber dann wohl nicht hinhauen, da ich eigendlich nur mein hauptskin erlaube, somit die auswahl von skins nicht erlaube.

das zusätzliche skin ist einfach nur ein zugeständnis an ein spezielles programm, was mir persönlich sowieso nicht gefällt (nicht das programm, das skin *g*).

Share this post


Link to post

Das wäre auch kein Problem, müßte man nur die besagte Funktion in der functions.php anpassen. :)

Frage ist nur, ob man das jetzt unbedingt machen muß oder ob man dem besagten Forum nur ein Skin zuordnet. Oder soll das gesamte Board in dem anderen Design auftauchen, wenn man über den anderen Link reingeht?

Share this post


Link to post

es ist eigendlich nur eines nervig an der sache:

das spezielle forum und die unterforen haben einfach ein festgelegtes skin.

das dumme daran: gehen die user (die sonst in meinem forum extrem inaktiv sind) auf ihre einstellungen, die suche, ... dann erscheint natürlich mein standardskin.

nachdem das die üblichen "anwender" sind, glaubens gleich, sie wären auf ner anderen seite.

besser gesagt: solange sie nur im speziellen forenbereich sind, glauben die, sie sind noch auf der firmenseite des programms *g*.

ideal wäre also, wenn ein skin 100% durchgezogen werden würde.

bin ich im supportforum, gibts ÜBERALL, also nicht nur in den threads, sondern auch bei den einstellungen usw. das spezialskin, bin ich im rest des forums, bleiben ma bei meinem standardskin.

es wäre also mit mr.s´s idee nicht so schlecht gewesen, weil wir ja überall dort, wo das spezialforum aufgerufen wird, auch ne spezielle index.php angeben könnte.

und der link, der aus dem spezialforum zu meinem normalen bereichen führt, kann ja angepasst werden, und wieder das "normale" skin anzeigen.

vor allem würde mir die lösung sehr gut gefallen, weils sehr einfach ist - allerdings eben nur dann, wenn die user das NICHT beeinflussen können.

Edited by Ratman

Share this post


Link to post

Okay, ich bin ja bekanntlich auf der Arbeit und kann nicht wirklich die Sache austesten, aber probier mal folgendes. :)

Entferne den Zusatz aus der index.php:

$ibforums->input['skinid'] = X;
Diese Variable setzt ich jetzt nur noch sicherheitshalber in der functions.php. :) In der index2.php (und nur da) suchst du folgende Stelle:
	var $forum_read = array();
var $topic_cache = "";
var $session_type = "";
Setzt darunter:
	var $yaindex = 1;
Die gleiche Änderung kann man auch in der index.php machen, da dann aber mit dem Wert 0 anstatt 1. :) Dann noch in diesem Bereich (nur index2.php)
if ( $ibforums->session_type == 'cookie' )
{
$ibforums->session_id = "";
$ibforums->base_url   = $ibforums->vars['board_url'].'/index.'.$ibforums->vars['php_ext'].'?';
}
else
{
$ibforums->base_url = $ibforums->vars['board_url'].'/index.'.$ibforums->vars['php_ext'].'?s='.$ibforums->session_id.'&';
}

$ibforums->js_base_url = $ibforums->vars['board_url'].'/index.'.$ibforums->vars['php_ext'].'?s='.$ibforums->session_id.'&';
die drei Stellen
index.'.$ibforums->vars['php_ext']
in
index2.'.$ibforums->vars['php_ext']
umbenennen und hoffen, das Matt dieses Verfahren konsequent durchgezogen hat. ;) Anschließend in der functions.php folgende Stelle suchen:
 	 //------------------------------------------------
 // Do we have a skin for a particular forum?
 //------------------------------------------------

 if ($ibforums->input['f'] and $ibforums->input['act'] != 'UserCP')
 {
   if ( $ibforums->vars[ 'forum_skin_'.$ibforums->input['f'] ] != "" )
   {
   $id = $ibforums->vars[ 'forum_skin_'.$ibforums->input['f'] ];

   $skin_set = 1;
   }
 }
Und darunter folgendes einfügen:
 	 if ($ibforums->yaindex == 1)
 {
   $skin_set = 1;
   $id    = X;
   $ibforums->input['skinid'] = $id;    
 }

Natürlich für das X die ID des Skins einsetzen.

Ist natürlich nur ein schneller Workaround und ich hoffe mal, das klappt so. :)

Share this post


Link to post

was sagt murphy schon immer?

wenn was schief gehen kann, gehts auch schief!

scheint matt wohl doch ned so konsequent zu sein, wie du dir das wünschen würdest.

es passiert einfach gar nix - meine schöne neue index2.php greift nicht. es kommt nach wie vor das originalskin. sogar dann, wenn ichs index.php nenn, und somit nix anderes mehr reinpfuschen könnte.

Share this post


Link to post

So, werde erst morgen dazukommen mich damit zu beschäftigen. :teehee:

Da ich davon ausgehe, das du beim Aufruf der index2.php immer den besagten Skin aufrufen willst, egal ob das Mitglied ein anderes Skin ausgewählt hat oder nicht, ist die Lösung recht trivial.

genau das will ich Stefan. ;)

@Ratman: funktioniert es jetzt oder nicht? oder willst du etwas anderes als ich? kurz wird der skin dann durch gezogen oder nicht? *michnichtganzdurchblick*

Share this post


Link to post

Aber evtl. kramt Stefan ja doch nochmal die änderung herraus, womit man die Skin ID durchschleifen konnte, da ich das auch nochmal gebrauchen könnte, und andere evtl. auch :)

Share this post


Link to post

Hätte da noch eine Idee.

Eine Möglichkeit wäre doch, das forum zu kopieren (nur die files nicht die datenbankt) am server d.h. einfach die dateien kopieren.

dann sind praktisch 2 foren am server die auf die selbe datenbank zu greifen.

das eine forum hat dann den einen Skin und das andere den anderen.

Ginge das nicht? hat das vl schon jemand probiert?

Share this post


Link to post

Ja überaufwand schon vorallem doppelt soviel platz braucht das board dann am server. :rolleyes:

und das bei meinen 150MB. :blink:

ja ich wart eh erstmal ab was stefan austüfftelt. :)

Share this post


Link to post

Wie sieht es jetzt aus mit einer Lösung?

irgendwelche neuen Ideen bzw Vorschläge?

außer das man das board 2mal am server kopiert?

würd mich freuen. :)

Share this post


Link to post

Nervensäge. :P

Vor dem Wochenende werde ich es nicht schaffen, den entsprechenden Mod zu suchen bzw. einen kleinen Workaround zu schreiben.

Somit muß du entweder warten oder jemand anderes nimmt sich dem Problem an. :)

Ggf. schau ich mal am heutigen Abend, warum die beschriebene Sache nicht ging, falls Ratman das noch eingebunden hat, sich als Testopfer zur Verfügung stellt und per ICQ erreichbar ist. Das sind aber wirklich viele Bedingungen, die erfühlt sein müssen, damit es heute noch klappt. ;)

Share this post


Link to post

:D

ja kein problem. genügt mir eh wenn es mitte nächster woche fertig ist also lass dir ruhig zeit. ;)

wollt nur wissen ob du da noch weiter tüftelst. :)

freut mich, danke schon mal jetzt.

Share this post


Link to post

Hi Stefan,

wie sieht es aus hast schon Zeit gehabt auf deiner HD zu kramen?

wenn nicht macht es auch nix, wenn du mal Lust und Zeit hast und an mich denkst wäre es toll wenn du mal schauen könntest. :)

es eilt eh nicht so momentan.

Share this post


Link to post

Nein, leider noch keine Zeit gehabt.

Im Moment bin ich mehr mit MPT (Microprozessortechnik) und dem MC68HC11 am kämfpen, da ich am Dienstag Labor habe. :lol:

Ich versuch es aber dann am Dienstag oder Mittwoch zu schaffen und dann die entsprechende Lösung ansprechend hier zu präsentieren.

Durchschleifen der Skinid sollte aber auch so gehen, was ich jetzt aber nicht bis in die letzte Kleinigkeit getestet habe.

Datei index.php

Suchen:

if ( $ibforums->session_type == 'cookie' )
{
$ibforums->session_id = "";
$ibforums->base_url   = $ibforums->vars['board_url'].'/index.'.$ibforums->vars['php_ext'].'?';
}
else
{
$ibforums->base_url = $ibforums->vars['board_url'].'/index.'.$ibforums->vars['php_ext'].'?s='.$ibforums->session_id.'&';
}

$ibforums->js_base_url = $ibforums->vars['board_url'].'/index.'.$ibforums->vars['php_ext'].'?s='.$ibforums->session_id.'&';
Ersetzen durch
if ( $ibforums->session_type == 'cookie' )
{
$ibforums->session_id = "";
$ibforums->base_url   = $ibforums->vars['board_url'].'/index.'.$ibforums->vars['php_ext'].'?skinid='.$ibforums->input['skinid'].'&';
}
else
{
$ibforums->base_url = $ibforums->vars['board_url'].'/index.'.$ibforums->vars['php_ext'].'?s='.$ibforums->session_id.'&skinid='.$ibforums->input['skinid'].'&';
}

$ibforums->js_base_url = $ibforums->vars['board_url'].'/index.'.$ibforums->vars['php_ext'].'?s='.$ibforums->session_id.'&skinid='.$ibforums->input['skinid'].'&';

Aufruf dann mit index.php?act=wasauchimmer&skinid=X, wobei X für die ID des Skins steht.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

×