[css/js] tiny_mce rechten CSS-file externe host

Pagina: 1
Acties:

  • hanneshoffie
  • Registratie: November 2005
  • Laatst online: 19-05-2022
Hallo,

Ik ben al een tijdje bezig met de editor tiny_mce en stuit op een probleem.
Je kan in de tiny_mce init aangeven of je een css file wilt gebruiken op deze manier:

code:
1
2
3
4
5
tinyMCE.init({
    theme : "advanced",
    mode : "textareas",
        content_css : "./css/style.css",
});


zoals je hier ziet is het pad relatief aangegeven. Deze methode werkt perfect.
Nu ben ik één cms aan het ontwikkelen op 1 locatie waar meerder (sub)sites aangepast kunnen worden. Het probleem is nu dat als er in wordt gelogd met site A dat ik ook graag stylesheet A in mijn cms wil gebruiken.
Een voorbeeld van tiny_mce staat hier:
http://project2.jopswebdesign.nl/

Deze werkt goed als je de bovenstaande relatieve URL gebruikt.
zie http://project2.jopswebdesign.nl/index2.php

Nu het probleem:
Ik het op een subdomein :
http://test.jopswebdesign.nl/css/style.css

Een stylesheet staan die ik in het cms op http://project2.jopswebdesign.nl/ wil gebruiken.

Als ik deze url invul in mijn init van tinymce, dan laad hij deze file niet terwijl hij wel bestaat.
Wat ik al geprobeerd heb is op een relatieve manier die stylesheet te benaderen. maar vanuit een subroot kom je niet relatief in een andere subroot(../../ bv).

Op de tiny mce wiki, staan enkele functies over relatieve url's ed.
http://wiki.moxiecode.com/index.php/TinyMCE:Configuration
Deze functies heb ik gebruikt. Maar ik heb geen positief resultaat gevonden.

Verder heb ik gegoogeld op dit probleem en nog een mogelijke oplossing gevonden waarbij je boven aan:
een stylesheet @import: url(http://test.jopswebdesign.nl/css/style.css)
dit hielp ook niet.

Ik hoop naar mijn mislukte topic van vanmorgen, dat iemand mij een goede hint kan geven.

alvast bedankt,

groeten

  • Blaise
  • Registratie: Juni 2001
  • Niet online
CSS zou gewoon cross-domain moeten werken. Misschien dat er een oude versie van dat CSS betand gecached is (had ik een keer). Ctrl+F5 werkt dan niiet want TinyMCE laadt het CSS bestand dynamisch, dus je moet handmatig even je cache legen.

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Blaise schreef op donderdag 05 juli 2007 @ 18:38:
CSS zou gewoon cross-domain moeten werken. Misschien dat er een oude versie van dat CSS betand gecached is (had ik een keer). Ctrl+F5 werkt dan niiet want TinyMCE laadt het CSS bestand dynamisch, dus je moet handmatig even je cache legen.
...of even wat random garbage in de url naar de CSS gooien (http://foo.bar.com/css/mystle.css?garbage=39081328907). Niet 's werelds mooiste oplossing, wel effectief ;)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • hanneshoffie
  • Registratie: November 2005
  • Laatst online: 19-05-2022
Ik gooi nu random garbage. Zie: http://project2.jopswebdesign.nl/

maar het werkt nog niet...

ik heb nog een extra test in gebouwd
code:
1
2
3
4
5
6
7
<?php 
if(file_exists('http://test.jopswebdesign.nl/css/style.css')) {
    print "FILE EXISTS";
} else {
    print "file: http://test.jopswebdesign.nl/css/style.css -> FILE DIDN'T EXISTS";
}
?>


en hij zegt dat de file niet bestaat terwijl als je met http naar die link gaat het wel goed gaat..
misschien helpt dit jullie in de richting?

  • Blaise
  • Registratie: Juni 2001
  • Niet online
file_exists werkt niet met remote servers:
Opmerking: This function will not work on remote files as the file to be examined must be accessible via the servers filesystem.
In Firefox werken de classes van http://test.jopswebdesign.nl/css/style.css wel als ik deze toeken aan een element bij HTML view in TinyMCE. Heb je je niet gewoon vergist in de implementatie?

In IE7 krijg ik een javascript error doordat je een komma teveel hebt op regel 23 van je HTML. Na de laatste parameter mag je geen komma gebruiken.

  • hanneshoffie
  • Registratie: November 2005
  • Laatst online: 19-05-2022
Dat in ie7 had ik gezien ja, bedankt daarvoor.

Maar ik heb het nu nog precies hetzelfde.

mijn volledige init:
code:
1
2
3
4
5
6
7
8
9
10
11
tinyMCE.init({
    theme : "advanced",
    mode : "textareas",
    language : "en",
    plugins : "save,preview,style,table",
    theme_advanced_toolbar_location : "top",
    theme_advanced_buttons1_add : "fontselect,fontsizeselect",
    theme_advanced_buttons2_add : "tablecontrols",
    theme_advanced_buttons3_add : "save,preview,styleprops",
    content_css : "<?php print "http://test.jopswebdesign.nl/css/style.css?garbage=".mt_rand(); ?>"
});


wat voor implementatie fout heb ik dan gemaakt. Ik kom er nog niet achter

BTW
het werkt in ie7
maar niet in FF2.0 en Opera
misschien helpt dit..

[ Voor 6% gewijzigd door hanneshoffie op 06-07-2007 14:01 ]


  • hanneshoffie
  • Registratie: November 2005
  • Laatst online: 19-05-2022
het werkt wel als ik
code:
1
    theme_advanced_styles : "Rood header=header1_red; Blauw Header=header1_blue; Normale tekst=normal_text;",


toevoeg, maar dan is het niet dynamisch dat hij alles laad uit de css file in die box. Iemand een optie?

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:27

crisp

Devver

Pixelated

Het antwoord is simpel: javascript heeft geen toegang tot de cssRules van een stylesheet afkomstig van een ander domein (cross-domain security)

Intentionally left blank


  • Arjen Tempel
  • Registratie: Januari 2002
  • Niet online
En zo'n cross-domain probleem is simpel op te lossen met een PHP proxy scriptje:
code:
1
2
3
4
5
6
<?
  $fp=fopen('http://test.jopswebdesign.nl/css/style.css','r');
  header('Content-Type: text/css');
  fpassthru($fp);
  fclose($fp);
?>
Plaats deze ergens op project2.jopswebdesign.nl en roep deze aan in plaats van de externe CSS file.
Evt. zou je (als je vanuit PHP daar de leesrechten voor hebt) in de eerste regel rechtstreeks het CSS bestand op schijf kunnen openen.

  • hanneshoffie
  • Registratie: November 2005
  • Laatst online: 19-05-2022
erg bedankt het werkt.
Pagina: 1