zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden $_server["document_root"]

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 13.08.2012, 13:56
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 12.11.2010
Ort: Bad Langensalza
Beiträge: 733
gabischatz ist in Verruf geraten
Standard $_server["document_root"]

Hi ich habe folgendes Problem in WP,
ich bekomme nicht den richtigen Pfad zusammen.
$_SERVER["DOCUMENT_ROOT"] gibt mir folgendes aus
http ://gabischatz.bplaced.net/users/gabischatz/www/css/neu.css
es sollte aber nur http ://gabischatz.bplaced.net/css/neu.css
dabei rauskommen.
PHP-Code:
define('CSS_Ordner',$_SERVER["DOCUMENT_ROOT"].'css/');                // Ordnername für zusatz CSS
     
$myStyleFile_1 =  CSS_Ordner $dateiname;

         if ( 
file_exists($myStyleFile_1) ) {
         
/** Register **/
            
wp_register_style('myStyleSheets'$myStyleFile_1$deps = array(), $ver CSS_VERSION$media 'all');
        
/** Einreihen **/
            
wp_enqueue_style'myStyleSheets');
        } 
Mfg gabischatz
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 13.08.2012, 14:08
Benutzer
neuer user
 
Registriert seit: 14.09.2009
Beiträge: 88
Hook befindet sich auf einem aufstrebenden Ast
Standard

Hi,

wenn dir nur /css/neu.css reicht (das Protokoll und deine URI kennst du ja und kannst sie als fixe Adresse voraussetzen), dann nimm:
PHP-Code:
$_SERVER['PHP_SELF'
PHP-Code:
define('CSS_Ordner',"http ://gabischatz.bplaced.net".$_SERVER['PHP_SELF']."css/"); 
Hook
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 13.08.2012, 15:18
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 13.07.2006
Beiträge: 414
Maxefix ist ein sehr geschätzer MenschMaxefix ist ein sehr geschätzer MenschMaxefix ist ein sehr geschätzer Mensch
Standard

In dem Fall kannst du die Konstante einfach auf "/css/" setzen. Wo der Document-Root liegt ist ja egal, da die CSS-Datei relativ zum Document-Root verlinkt werden muss.

@Hook:
$_SERVER['PHP_SELF'] beinhaltet den Pfad zum aktuell ausgeführten Skript. Der hilft hier ganz und gar nicht.

Gruß,
Max

EDIT: Eventuell helfen dir auch paar Wordpress-Funktionen:
http://codex.wordpress.org/Function_...e/get_home_url

Geändert von Maxefix (13.08.2012 um 15:22 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 13.08.2012, 15:30
Benutzer
neuer user
 
Registriert seit: 14.09.2009
Beiträge: 88
Hook befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Maxefix Beitrag anzeigen
@Hook:
$_SERVER['PHP_SELF'] beinhaltet den Pfad zum aktuell ausgeführten Skript.
Natürlich

Zitat:
Zitat von Maxefix Beitrag anzeigen
Der hilft hier ganz und gar nicht.
Warum nicht? Das jetzt verwendete $_SERVER['DOCUMENT_ROOT'] macht das auch, also gehe ich davon aus, dass das so gewünscht ist.
Zitat:
'DOCUMENT_ROOT'
Das Document Root-Verzeichnis, unter dem das aktuelle Skript ausgeführt wird, so wie es in der Konfiguration des Servers festgelegt wurde.
Quelle: PHP: $_SERVER - Manual

Hook

Edit:Sorry... ich glaube ich habe etwas falsch verstanden. Wenn der Scriptname nicht enthalten sein darf, ist PHP_SELF natürlich nicht geeignet (ausser man extrahiert ihn)

Geändert von Hook (13.08.2012 um 15:37 Uhr)
Mit Zitat antworten
  #5 (permalink)  
Alt 13.08.2012, 15:47
Benutzerbild von David
auch, ja!
XHTMLforum-Kenner
 
Registriert seit: 08.11.2007
Beiträge: 2.626
David ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von gabischatz Beitrag anzeigen
Hi ich habe folgendes Problem in WP,
ich bekomme nicht den richtigen Pfad zusammen.
$_SERVER["DOCUMENT_ROOT"] gibt mir folgendes aus
http ://gabischatz.bplaced.net/users/gabischatz/www/css/neu.css
es sollte aber nur http ://gabischatz.bplaced.net/css/neu.css
dabei rauskommen.
Der Document-Root ist der Dateisystem-Pfad deines Virtual-Hosts! Das hat mit der URL nichts zu tun. Es gibt eine WP-Funktion, mit der Du die Site URL bekommst.

Viel interessanter ist aber, warum du in WP eine CSS außerhalb des Themes liegen hast?
__________________
github | http://dnaber.de

Geändert von David (13.08.2012 um 16:07 Uhr)
Mit Zitat antworten
  #6 (permalink)  
Alt 13.08.2012, 16:47
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 12.11.2010
Ort: Bad Langensalza
Beiträge: 733
gabischatz ist in Verruf geraten
Standard

Hi danke für eure Bemühungen.
Zitat:
Zitat von David
Der Document-Root ist der Dateisystem-Pfad deines Virtual-Hosts! Das hat mit der URL nichts zu tun. Es gibt eine WP-Funktion, mit der Du die Site URL bekommst.
Nur welche, ich bin noch am suchen.
Zitat:
Zitat von David
Viel interessanter ist aber, warum du in WP eine CSS außerhalb des Themes liegen hast?
Die gehört zu meinem Plugin und ermöglicht mir 2CSS und ein JS Dateien einfach hinzuzuladen. Dadurch kann man jedem Artikel oder Seite ein eigenes CSS mitzugeben und zusätzlich für zB. Highslide Gallery Viewer die entsprechenden Dateien einfügen.
Zitat:
Zitat von Maxefix
EDIT: Eventuell helfen dir auch paar Wordpress-Funktionen:
http://codex.wordpress.org/Function_...e/get_home_url
leider auch nicht.


Nachtrag: Lösung
HTML-Code:
	 $myStyleFile_1 =  get_option( 'home' )."/css/". $sql[css];
Hat aber einen kleinen Haken. Man kann nicht mehr mit
if ( file_exists($myStyleFile_1) ) prüfen, warum auch immer!
MfG

Geändert von gabischatz (13.08.2012 um 16:58 Uhr) Grund: Lösung
Mit Zitat antworten
  #7 (permalink)  
Alt 14.08.2012, 10:28
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.977
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von gabischatz Beitrag anzeigen
Die gehört zu meinem Plugin und ermöglicht mir 2CSS und ein JS Dateien einfach hinzuzuladen. Dadurch kann man jedem Artikel oder Seite ein eigenes CSS mitzugeben und zusätzlich für zB. Highslide Gallery Viewer die entsprechenden Dateien einfügen.
Das klingt reichlich umständlich und sieht auch nicht nach einer sauberen Lösung aus, was du da machst.

Zitat:
Zitat von gabischatz Beitrag anzeigen
Nachtrag: Lösung
HTML-Code:
	 $myStyleFile_1 =  get_option( 'home' )."/css/". $sql[css];
Hat aber einen kleinen Haken. Man kann nicht mehr mit
if ( file_exists($myStyleFile_1) ) prüfen, warum auch immer!
MfG
Weil die URL und das Filesystem zwei völlig unterschiedliche Dinge sind. Aber trotzdem würde ich CSS in einen Unterpfad deines Themes oder Plugin platzieren und nicht irgendwo.
Mit Zitat antworten
  #8 (permalink)  
Alt 14.08.2012, 14:11
Benutzerbild von David
auch, ja!
XHTMLforum-Kenner
 
Registriert seit: 08.11.2007
Beiträge: 2.626
David ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von gabischatz Beitrag anzeigen
Die gehört zu meinem Plugin und ermöglicht mir 2CSS und ein JS Dateien einfach hinzuzuladen. Dadurch kann man jedem Artikel oder Seite ein eigenes CSS mitzugeben und zusätzlich für zB. Highslide Gallery Viewer die entsprechenden Dateien einfügen.
JS und CSS Dateien die durch Plugins nachgerüstet werden sollte man mit wp_enqueue_script() bzw. wp_enqueue_style() ins Frontend laden. Mit plugins_url() bekommst du die korrekte URL zu den Dateien im Pluginverzeichnis.

Zitat:
Nachtrag: Lösung
PHP-Code:
     $myStyleFile_1 =  get_option'home' )."/css/"$sql[css]; 
Die Home_URL ist nicht unbedingt identisch mit dem Installationsverzeichnis. Beides kannst du in Einstellungen → Allgemein unabhängig von einander ändern. Dann stimmt dein Pfad wieder nicht.
__________________
github | http://dnaber.de
Mit Zitat antworten
  #9 (permalink)  
Alt 15.08.2012, 11:12
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 12.11.2010
Ort: Bad Langensalza
Beiträge: 733
gabischatz ist in Verruf geraten
Standard

Zitat:
Zitat von protonenbeschleuniger
Das klingt reichlich umständlich und sieht auch nicht nach einer sauberen Lösung aus, was du da machst.
Saubere Lösung? Kann sei das es das nicht ist. Umständlich ist es nicht. Dateien im Options-Feld auswählen und aktualisieren fertig.
Neue CSS-Datei erstellen ist auch möglich und Änderungen an dieser wird demnächst Möglich sein.
Zitat:
Zitat von protonenbeschleuniger
Weil die URL und das Filesystem zwei völlig unterschiedliche Dinge sind. Aber trotzdem würde ich CSS in einen Unterpfad deines Themes oder Plugin platzieren und nicht irgendwo.
Das kann ja jeder handhaben wie er es mag. Um zu verschleiern das die HP mit WP erstellt wurde, ist es eben sinnvoll andere Wege zu beschreiten.
Zitat:
Zitat von David
JS und CSS Dateien die durch Plugins nachgerüstet werden sollte man mit wp_enqueue_script() bzw. wp_enqueue_style() ins Frontend laden. Mit plugins_url() bekommst du die korrekte URL zu den Dateien im Pluginverzeichnis.
Ich habe das mit wp_head und wp_footer erledigt.
Ich weis nicht recht welche gravierende Unterschiede es da gibt.
Ich habe erst angefangen in WP und mir hat nicht gefallen, dass wenn man ein Thema wechselt alle CSS und JS Einstellungen einfach weg sind.
Zitat:
Zitat von David
Die Home_URL ist nicht unbedingt identisch mit dem Installationsverzeichnis. Beides kannst du in Einstellungen → Allgemein unabhängig von einander ändern. Dann stimmt dein Pfad wieder nicht.
Das ist wie war ein Problem. Wie Löst man es?
@protonenbeschleuniger:
Hast du schon mal eine print.css hinzugefügt?
Das ist nur von Hand möglich, dazu musst du erst die Datei in den Themen-Ordner ablegen und dann den Verweis in die header.php des Themes hinterlegen.
HTML-Code:
<link rel="stylesheet" href="<?php bloginfo('stylesheet_directory'); ?>/print.css" type="text/css" media="print" />
MfG

Geändert von gabischatz (15.08.2012 um 21:11 Uhr) Grund: Nachtrag.
Mit Zitat antworten
Sponsored Links
  #10 (permalink)  
Alt 16.08.2012, 12:26
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.977
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von gabischatz Beitrag anzeigen
Das kann ja jeder handhaben wie er es mag. Um zu verschleiern das die HP mit WP erstellt wurde, ist es eben sinnvoll andere Wege zu beschreiten.
Warum sollte man das tun?

Zitat:
Zitat von gabischatz Beitrag anzeigen
Ich habe erst angefangen in WP und mir hat nicht gefallen, dass wenn man ein Thema wechselt alle CSS und JS Einstellungen einfach weg sind.
Das ist wie war ein Problem. Wie Löst man es?
Normalerweise sind das Bestandteile des Template. Wenn das bei dir nicht der Fall ist (was aber an sich schon etwas ungewöhnlich ist), dann gehören sie in dem Fall vermutlich eher in ein Plugin.

Der Code sähe dann z.b. so aus:
PHP-Code:
<?php
/*
Plugin Name: CSS Plugin
Description: Ein Plugin, dass eine CSS Datei einbindet.
Version: .1
*/
function theme_styles()   { 
  
wp_register_style'custom'
    
plugins_url'css/custom.css' __FILE__ )
    , array(), 
null);

  
wp_enqueue_style'custom' );
}

add_action('wp_enqueue_scripts''theme_styles');
Die CSS Datei sind dann in einem Plugin Unterverzeichnis mit dem Namen 'css'


Zitat:
Zitat von gabischatz Beitrag anzeigen
@protonenbeschleuniger:
Hast du schon mal eine print.css hinzugefügt?
So wie du es zeigst so wurde es früher gemacht. Als Aufruf im Template. Es gibt aber mittlerweile andere Wege, z.b. über die functions.php oder eben wie gezeigt über ein Plugin.

Wobei ich da aber nicht den zusammenhang mit deiner Frage sehe. Der Punkt ist, dass CSS Dateien zu einem Template gehören, wenn das bei dir nicht so ist, dann ist das - wie gesagt - eher ungewöhnlich. Evtl. sind child-themes etwas, was dir weiterhilft. Aber dazu kenne ich mich damit zu wenig aus und wir Wissen auch nicht, was bei dir der wirkliche Grund ist für dieses Vorgehen.
Mit Zitat antworten
Sponsored Links
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus



Alle Zeitangaben in WEZ +2. Es ist jetzt 11:18 Uhr.