MyBB.de Forum

Normale Version: Plugin: Stylesheet Integration unter MyBB 1.8
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich bin gerade dabei, meine Plugins aber auch MODs für MyBB 1.8 anzupassen. Das funktioniert so weit ganz gut, auch wenn es gerade bzgl. Style ein wenig gewöhnungsbedürftig ist.

Nun bin aber auf ein Problem gestoßen, dass ich einfach nicht gelöst bekomme. In dem ein oder anderen Plugin habe ich Stylesheets integriert, die bislang mittels folgender Zeilen über das Plugin im Theme integriert wurden
PHP-Code:
$css = array(
    "name" => "my_plugin.css",
    "tid" => 1,
    "attachedto" => "usercp.php|my_plugin.php",
    "stylesheet" => ".usercp_nav_my_plugin {.....}",
       "cachefile" => $db->escape_string(str_replace('/''''my_plugin.css')),
    "lastmodified" => TIME_NOW
);

require_once 
MYBB_ADMIN_DIR."inc/functions_themes.php";

$sid $db->insert_query("themestylesheets"$css);
$db->update_query("themestylesheets", array("cachefile" => "css.php?stylesheet=".$sid), "sid = '".$sid."'"1);

$tids $db->simple_select("themes""tid");
while(
$theme $db->fetch_array($tids))
{
    update_theme_stylesheet_list($theme['tid']);

Da tut sich aber nun nichts mehr. Ich komme einfach nicht darauf, was sich bei 1.8 bzgl. Integration von Stylesheets geändert hat und würde mich über Tipps freuen.
Funktioniert die stylesheet() Funktion von PluginLibrary noch?

PHP-Code:
$PL->stylesheet("my_plugin"".usercp_nav_my_plugin {.....}""usercp.php|my_plugin.php"); 
Hallo frostschutz,

ja, mit Hilfe der stylesheet() Funktion aus der PluginLibrary würde es funktionieren.
Die update_theme_stylesheet_list() funktioniert in 1.8 nicht mehr wie gewohnt, du musst zwei weitere Parameter 0,1 dranhängen. Ansonsten wird der Cache nicht richtig aktualisiert. Alternativ kann man auch im ACP auf "save stylesheet order" klicken, dann wirds auch aktualisiert...

Warum dieser Parameter default-aus ist und warums ohne nicht funktioniert und was da überhaupt passiert - muss ich mir noch näher anschauen.
Mittlerweile wurde es ein wenig dubioser.... Undecided

Nachdem ich das mit dem PluginLibrary probiert und den Hinweis von Dir gelesen hatte, wollte ich das nun ohne PluginLibrary aber mit den zusätzlichen Parametern testen. Leider hat das nicht funktioniert, aber das Stylesheet hat sich mit dem von mir oben geschriebenen Code-Schnippsel nun doch erstaunlicherweise installieren lassen!? Dachte erst, dass es evtl. etwas mit dem Cache zu tun hatte, aber das kann ich fast ausschließen.

Komisch....


Es muss doch etwas mit Cache zu tun haben. Nach einer Neuinstallation klappte es wieder nicht. Nur mit der PluginLibrary aber nicht mit den zusätzlichen Parametern...
Kannst du bitte einmal folgenden Code probieren:
PHP-Code:
$css = array(
    
"name" => "my_plugin.css",
    
"tid" => 1,
    
"attachedto" => "usercp.php|my_plugin.php",
    
"stylesheet" => ".usercp_nav_my_plugin {.....}",
    
"cachefile" => "my_plugin.css",
    
"lastmodified" => TIME_NOW
);

require_once 
MYBB_ADMIN_DIR."inc/functions_themes.php";

$sid $db->insert_query("themestylesheets"$css);

$query $db->simple_select("themes""*""tid=1");
$theme $db->fetch_array($query);
if(!
cache_stylesheet($theme['tid'], $css['name'], $css['stylesheet']))
{
    
$db->update_query("themestylesheets", array('cachefile' => "css.php?stylesheet={$sid}"), "sid='{$sid}'"1);
}

update_theme_stylesheet_list($theme['tid'], $themetrue); 
Das basiert auf dem Code, den das MyBB zum Anlegen neuer Stylesheets verwendet.
Danke für den Tipp, Stefan.

Leider hat das aber keine Auswirkungen. Das Stylesheet wird nicht erzeugt. Stattdessen wirft es mir die Reihenfolge der MyBB Stylesheets kräftig durcheinander.... Wink
Entschuldigung, ich habe noch einen Fehler im Code oben behoben.
Super, das funktioniert jetzt soweit. Smile


Aber noch etwas:
Bei einer nachträglichen Bearbeitung eines Stylesheets im ACP wird dieses zwar als erfolgreich bearbeitet gemeldet, aber nach einem erneuten Klick auf .../admin/index.php?module=style-themes erscheint die Meldung "Sie haben ein ungültiges Theme ausgewählt. ". Aber man kann dann normal weiter arbeiten..... Confused