Spezial stylesheet nur mit geöffnetem filemanager

About the template and stylesheet - and changing the menu
Tata
Posts: 3586
Joined: Tue May 20, 2008 5:34 am
Location: Slovakia
Contact:

Spezial stylesheet nur mit geöffnetem filemanager

Post by Tata » Sat Feb 04, 2017 7:34 am

Wie ist es machbar die Seite mit einem speziellen Stylesheet zu öffnen, falls bestimmter Plugin gerufen ist?
Es geht darum, dass z.B. auf der Seite mit 3 Spalten die "content()" Spalte schmal sein kann. Dann - wenn z.B. der hi_kcfinder hin geladen ist - beide 2 Spalten des hi_kcfinders smal sind, um sie effektive zu nutzen (besonders die Bilder).
Hier würde mir gefallen, wenn da die volle Devicebreite benutzt sein könnte. Dafür würde ich eine Klasse definieren, die es erlauben würde.
Es würde ganz einfach für "Adminmodus" generell es zu tun. Aber es würde keinen Sinn haben für der Seiten Editierung, wo ich z.B. die echte Breite brauche, um die Ergebnisse real zu sehen.
Ich sehe, dass es beim Filemanager

Code: Select all

.../?&normal&userfiles... 
aufgerufen wird. Wie nutzt man es aber im template.htm, um eine spezielle Klasse dafür zu nutzen, weiss ich nicht.
CMSimple.sk
It's no shame to ask for an answer if all efforts failed.
But it's awful to ask without any effort to find the answer yourself.

frase
Posts: 5085
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Re: Spezial stylesheet nur mit geöffnetem filemanager

Post by frase » Sat Feb 04, 2017 8:58 am

Vielleicht hilft dir Holgers hi_admin weiter.

Es gibt aber auch noch andere Möglichkeiten ...

frase
Posts: 5085
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Re: Spezial stylesheet nur mit geöffnetem filemanager

Post by frase » Sat Feb 04, 2017 9:10 am

Ich hatte das Problem auch schon mal:
https://cmsimpleforum.com/viewtopic.php ... 58&p=52760

Christoph hat ein kurzes Script geschrieben ...

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: Spezial stylesheet nur mit geöffnetem filemanager

Post by cmb » Sat Feb 04, 2017 10:23 am

frase wrote:Ich hatte das Problem auch schon mal:
https://cmsimpleforum.com/viewtopic.php ... 58&p=52760

Christoph hat ein kurzes Script geschrieben ...
Ja, so könnte man ein zusätzliches Stylesheet verlinken.

Ein ganz anderer Ansatz wäre das gezielte Stylen eines bestimmten Parents; CSS bietet wohl noch immer keine solchen Parent-Selektoren, aber da könnte man mit JavaScript nachhelfen. Die Idee: wenn es z.B. um den hi_kcfinder geht, dann wählt man eine ID oder Klasse, die nur der hi_ckfinder setzt, und sucht das entsprechende Element. Von diesem aus wird dann das gewünschte Elternelement gesucht, und diesem dynamisch ein zusätzliche Klasse gegeben, die man stylen könnte. Im einfachsten Fall braucht man nicht mal speziell das Elternelement zu suchen. Beispiel: der <body> soll die Klasse .breit bekommen, wenn auf der Seite ein Element mit der ID #kcfinder existiert:

Code: Select all

<script type="text/javascript">
if (document.getElementById("kcfinder")) {
    document.body.className += " breit";
}
</script>
Christoph M. Becker – Plugins for CMSimple_XH

lck
Posts: 2955
Joined: Wed Mar 23, 2011 11:43 am
Contact:

Re: Spezial stylesheet nur mit geöffnetem filemanager

Post by lck » Sat Feb 04, 2017 1:30 pm

cmb wrote:Im einfachsten Fall braucht man nicht mal speziell das Elternelement zu suchen. Beispiel: der <body> soll die Klasse .breit bekommen, wenn auf der Seite ein Element mit der ID #kcfinder existiert:
In diesem Fall funktioniert es nicht, da hi_kcfinder (leider) keine ID namens kcfinder setzt, auch keine Klasse :?
Auch scheint es allgemein nicht zu funktionieren, die Suche nach den id's all, left, folder ..., die im Filemanager vorkommen, führte auch nicht zum Erfolg. Da dies ein eigener Dokument-Bereich ist, ist fraglich ob dies überhaupt möglich ist? Wenn, dann müsste man bei hi_Kcfinder nach name="kcfinder_iframe" suchen.
„Bevor du den Pfeil der Wahrheit abschießt, tauche die Spitze in Honig!“   👉 Ludwig's XH-Templates for MultiPage & OnePage

Tata
Posts: 3586
Joined: Tue May 20, 2008 5:34 am
Location: Slovakia
Contact:

Re: Spezial stylesheet nur mit geöffnetem filemanager

Post by Tata » Sat Feb 04, 2017 2:17 pm

Das geht wirklich nicht. Obwohl ich verschiedens in dem Skript, noch in stylesheet und template versucht habe.
Ich meinte am Anfang, dass es irgendwie mit

Code: Select all

<div class="wrapper <?php if(...etwas mit .../?&normal&userfiles... ){
echo "filemanager">;
} else {
echo ">";
}?>
oder so irgenwie gehen könnte. Nach der Konfiguration zielt der Dateimanager nach ./?&normal&userfiles (wenigstens solange die Dateien nicht anderswo gespeichert sind.
CMSimple.sk
It's no shame to ask for an answer if all efforts failed.
But it's awful to ask without any effort to find the answer yourself.

lck
Posts: 2955
Joined: Wed Mar 23, 2011 11:43 am
Contact:

Re: Spezial stylesheet nur mit geöffnetem filemanager

Post by lck » Sat Feb 04, 2017 4:38 pm

Natürlich könnte man die admin.php von hi_kcfinder um eine id erweitern, Zeile 183 (ist halt nicht updatesicher), dann funktioniert Christophs Code :)

Code: Select all

$o .= '<iframe id="kcfinder" name="kcfinder_iframe" src="' . $pth['folder']['plugins'] . $plugin . '/kcfinder/browse.php?type=' . $hi_kcfType . '&lang=' . $hi_kcfLang . '&dir=' . $hi_kcfDir . '" ';
und per stylesheet.css

Code: Select all

body.breit .container {
    width: 100%;
} 
Der Content-Bereich müsste evtl. auch noch angepasst werden.
„Bevor du den Pfeil der Wahrheit abschießt, tauche die Spitze in Honig!“   👉 Ludwig's XH-Templates for MultiPage & OnePage

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: Spezial stylesheet nur mit geöffnetem filemanager

Post by cmb » Sat Feb 04, 2017 8:24 pm

Tata wrote:Das geht wirklich nicht. Obwohl ich verschiedens in dem Skript, noch in stylesheet und template versucht habe.
Ich meinte am Anfang, dass es irgendwie mit

Code: Select all

<div class="wrapper <?php if(...etwas mit .../?&normal&userfiles... ){
echo "filemanager">;
} else {
echo ">";
}?>
oder so irgenwie gehen könnte.
Es könnte wohl geprüft werden, ob $f einen der vier relevanten Werte enthält, also

Code: Select all

if (in_array($f, array('userfiles', 'images', 'downloads', 'media'))
lck wrote:Natürlich könnte man die admin.php von hi_kcfinder um eine id erweitern, Zeile 183 (ist halt nicht updatesicher), dann funktioniert Christophs Code :)
Ah, danke! :)
lck wrote:Wenn, dann müsste man bei hi_Kcfinder nach name="kcfinder_iframe" suchen.
Ja, warum nicht? Für moderne Browser könnte folgendes gemacht werden:

Code: Select all

if (typeof document.querySelector !== "undefined" && document.querySelector('iframe[name="kcfinder_iframe"]')) {
   document.body.className += " breit";
}
Fallbacks für ältere Browser sind ebenfalls kein wirkliches Problem. Oder halt mit jQuery:

Code: Select all

if ($('iframe[name="kcfinder_iframe"]')) {
    $("body").addClass("breit");
}
Christoph M. Becker – Plugins for CMSimple_XH

Tata
Posts: 3586
Joined: Tue May 20, 2008 5:34 am
Location: Slovakia
Contact:

Re: Spezial stylesheet nur mit geöffnetem filemanager

Post by Tata » Sat Feb 04, 2017 9:04 pm

Bleichgesicht Sprache Rotgesicht nicht verstehen.
Rotgesichtgesicht hat:

Code: Select all

<div id="header"> /* width=100% */
</div>
<div id="wrapper"> /* width=max 1200px */
</div>
<div id="navi"> /* width=30%, float=left */
</div>
<div id="content"> /* width=40%, float:left */
</div>
<div id="boxes"> /* width=30%; float:left */
</div>
Rotgesicht will mit kcfinder (korigiert):

Code: Select all

<div id="header"> /* width=100%/
</div>
<div id="wrapper"> /* width=100%  statt max 1200px**/
</div>
<div id="navi"> /* width=30%, float=left */
</div>
<div id="content"> /* width=40%, float:left */
</div>
<div id="boxes"> /* width=30%; float:left */
</div>
Last edited by Tata on Sun Feb 05, 2017 11:48 am, edited 1 time in total.
CMSimple.sk
It's no shame to ask for an answer if all efforts failed.
But it's awful to ask without any effort to find the answer yourself.

lck
Posts: 2955
Joined: Wed Mar 23, 2011 11:43 am
Contact:

Re: Spezial stylesheet nur mit geöffnetem filemanager

Post by lck » Sat Feb 04, 2017 9:44 pm

Hallo Rotgesicht,

bitte mal genauer angeben, da scheinen Angaben nicht zu stimmen.
Streich mal das, was du nicht verändern willst und entscheide dich für eine der 3 Lösungen eine Klasse im body-Tag hinzuzufügen.

Auf alle Fälle hast du dann im body eine zusätzliche Klasse .breit und damit kannst du dann arbeiten, Beispiel:

Code: Select all

body.breit #header {
    max-width: 100%;
}
body.breit #wrapper {
    max-width: 100%;
} 
Wichtig ist, dass du die gleichen Angaben verwendest, also width oder max-width. Alles am besten am Ende der stylesheet.css einfügen oder wenn nötig ein !important hinzufügen.

@Christoph: Deine letzten alternativen Lösungen habe ich noch nicht getestet.
„Bevor du den Pfeil der Wahrheit abschießt, tauche die Spitze in Honig!“   👉 Ludwig's XH-Templates for MultiPage & OnePage

Post Reply