Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Plugin: Stylesheet Integration unter MyBB 1.8
#1
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.
viele Grüße
Jockl
übersetzte und eigene Plugins
Zitieren
#2
Funktioniert die stylesheet() Funktion von PluginLibrary noch?

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

ja, mit Hilfe der stylesheet() Funktion aus der PluginLibrary würde es funktionieren.
viele Grüße
Jockl
übersetzte und eigene Plugins
Zitieren
#4
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.
Zitieren
#5
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...
viele Grüße
Jockl
übersetzte und eigene Plugins
Zitieren
#6
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.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#7
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
viele Grüße
Jockl
übersetzte und eigene Plugins
Zitieren
#8
Entschuldigung, ich habe noch einen Fehler im Code oben behoben.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#9
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
viele Grüße
Jockl
übersetzte und eigene Plugins
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Plugin: Javascript Integration unter 1.8 Raphael 3 1.829 01.10.2014, 13:22
Letzter Beitrag: StefanT
  Eigenes Stylesheet erstellen? King Louis 5 2.691 06.02.2012, 21:04
Letzter Beitrag: King Louis