+ Antworten
Seite 1 von 2 1 2 LetzteLetzte
Ergebnis 1 bis 10 von 15

Thema: Template parameters in einer CSS Datei aufrufen, ...

  1. #1
    War schon öfter hier
    Registriert seit
    06.04.2010
    Beiträge
    223
    Bedankte sich
    38
    Erhielt 4 Danksagungen
    in 4 Beiträgen

    Standard Template parameters in einer CSS Datei aufrufen, ...

    Hallo miteinander,

    ich habe mir in einer Template noch ein paar Parameter eingebaut über die "templateDetails.xml"

    das habe ich so gemacht:

    Code:
    	<config>
    		<fields name="params">
    			<fieldset name="basic">
    				<field name="Logo_Datei"			
    									type		=	"imagelist" 
    									default		=	""	
    									label		=	"Logor Image"				
    									description	=	"Bitte wähle ein Logo aus."				
    									directory	=	"templates/TEST/images/Logo" 
    									exclude		=	"" 
    									stripext	=	"" >
    				</field>
    				<field name="Logo_Abstand_Oben"		type="text" 	default="10"				label="Logor abstand oben"	description="Der abstand zum oberen Rand in px"		></field>
    				<field name="Logo_Abstand_Links"	type="text" 	default="10"				label="Logor abstand unten"	description="Der abstand zum unteren Rand in px"	></field>
    				<field name="Logo_Breite"			type="text" 	default="50"				label="Logor Breite"		description="Logo Breite in px wenn Leer dann Original Breite"	></field>
    				<field name="Logo_Hoehe"			type="text" 	default="50"				label="Logor Höhe"			description="Logo Höhe in px wenn Leer dann Original Breite"	></field>
    			</fieldset>
    		</fields>
     	</config>
    in meiner index.php kann ich auch drauf zugreifen über:
    Code:
    		<div id="logo">
    			<a href="<?php echo $this->baseurl ?>">
    				<img 
    					src		= "<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/images/Logo/<?php echo $this->params->get('Logo_Datei'); ?>" 
    					border	= "0" 
    					alt		= "<?php echo $app->getCfg('sitename'); ?>" 
    					width 	= "<?php echo $this->params->get('Logo_Breite'); ?>px"
    					height	= "<?php echo $this->params->get('Logo_Hoehe'); ?>px" />
    			</a>
    		</div>
    Jetzt würde ich gerne noch die Position des Logos mit einbinden, die Daten habe ich aber in der CSS Datei stehen.

    die CSS Datei rufe ich in meiner index.php so auf:

    Code:
    		<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/container.css.php"	type="text/css" media="screen,projection" />
    meine CSS Datei:
    Code:
    <?php
    		header("content-type: text/css");
    ?>
    
    body 
    	{
    		font: 				11px/150% "Lucida Sans",Helvetica,"Helvetica Neue",sans-serif;
    	    color: 				#555;
    	}
    
    
    body#home 
    	{
    		font: 				12px/1.5 Arial,Sans-serif;
    		color:				#333;
    	}
    
    #logo 
    	{
    		padding-top:		0px;
    		padding-left:		0px;
    		width: 				130px;
    		float:				left;
    	}
    ......
    wenn ich nun aber meine Daten (CSS) abrufen möchte: also den Cood mit eingebe:

    Code:
    <?php echo $this->params->get('Logo_Abstand_Oben'); ?>
    <?php echo $this->params->get('Logo_Abstand_Links'); ?>
    dann wir ein Fehler produziert in der Datei :-(
    <b>Fatal error</b>: Using $this when not in object context in <b>/Applications/XAMPP/xamppfiles/htdocs/proRheo.de/templates/rheo/css/container.css.php</b> on line <b>20</b><br />
    meine Frage ist, wie kann ich denn die Parameter in der CSS abrufen ..

    Gruß
    Geändert von Muecke.1982 (22.01.2012 um 23:14 Uhr)

  2. #2
    Hat hier eine Zweitwohnung Avatar von CirTap
    Registriert seit
    12.12.2005
    Ort
    Karlsruhe
    Beiträge
    1.628
    Bedankte sich
    83
    Erhielt 539 Danksagungen
    in 438 Beiträgen

    Standard

    Deine "CSS" Datei ist ein eigenes Ding und wird von J! nicht verarbeitet, deshalb geht auch $this nicht.
    Du kannst höchstens im <head> der index.php eine <style> Element einfügen und darin das CSS ausgeben.
    Joomla FAQ | CSS-Probleme? Verstehen Entdecken Anwenden Meistern

    "I love deadlines. I like the whooshing sound they make as they fly by." (Douglas Adams)
    Man kann Software schnell, gut und günstig schreiben, sich aber nur 2 Dinge aussuchen.


  3. Erhielt Danksagungen von:

    LKF

  4. #3
    War schon öfter hier
    Registriert seit
    06.04.2010
    Beiträge
    223
    Bedankte sich
    38
    Erhielt 4 Danksagungen
    in 4 Beiträgen

    Standard

    Schade, dann muss ich die CSS Datei per include in die Index Datei laden, das mache ich zwar nicht so gerne wenn es nicht anders mach bar ist,...

    ich kann in Joomla nicht irgend wie Variablen Global verfügbar machen? also so das sie auf dem Server überall abrufbar sind? damit man Datei übergreifend damit arbeiten kann?

  5. #4
    Hat hier eine Zweitwohnung Avatar von CirTap
    Registriert seit
    12.12.2005
    Ort
    Karlsruhe
    Beiträge
    1.628
    Bedankte sich
    83
    Erhielt 539 Danksagungen
    in 438 Beiträgen

    Standard

    Zitat Zitat von Gehm Beitrag anzeigen
    ich kann in Joomla nicht irgend wie Variablen Global verfügbar machen? also so das sie auf dem Server überall abrufbar sind? damit man Datei übergreifend damit arbeiten kann?
    1. wäre das katastrophal und 2. wäre das super-katastrophal und 3. hat das nichts mit Joomla zu tun sondern mit der Art und Weise wie PHP und Software so im Allgemeinen funktioniert.

    Überleg mal, was du da grade vorschlägst: Variablen auf dem Server überall abrufbar???
    Selbst wenn das technisch ginge, was es nicht tut. Von so einem Server würde ich schnurstracks und laut schreiend mit meiner Website in der Hand davonlaufen.

    Wenn du die CSS mit include einbindest machst du nichts anderes, als was ich vorschlug: das CSS im <head> der index.php ausgeben. Ob das dann direkt in der index.php steht oder einer "css.php" ist dann auch egal und eher Geschmacksache. In beiden Fällen kommt dein Code aber in den Genuß ein $this zu haben.
    Joomla FAQ | CSS-Probleme? Verstehen Entdecken Anwenden Meistern

    "I love deadlines. I like the whooshing sound they make as they fly by." (Douglas Adams)
    Man kann Software schnell, gut und günstig schreiben, sich aber nur 2 Dinge aussuchen.


  6. #5
    War schon öfter hier
    Registriert seit
    06.04.2010
    Beiträge
    223
    Bedankte sich
    38
    Erhielt 4 Danksagungen
    in 4 Beiträgen

    Standard

    ganz so ist es auch wider nicht habe mich etwas schlecht ausgedrückt meine nicht für den ganzen Server also mit allen Nutzern sondern für mein Projekt, ich weis das man in PHP Variable Global aktivieren kann so kann man dann auch aus anderen Dateien darauf zugreifen wenn die sich in dem Selben Rood Verzeichnis befinden habe nur keinen Plan mehr wie das geht,... ich habe gehofft das Joomla irgend einen kleinen Trick hat wie man auch auserhalb der Index Datei auf die Variablen zugreifen kann, ... z.B. in dem man was bestimmtes aufruft damit Joomla weis das die Datei zuzugreifen darf oder so was, .. naja geht nicht, Fertig.

    das ist mir schon klar das ich dann nichts anderes mache als das was du gesagt hast, ich mag das include für CSS nur nicht so, ... wie du sagst ist Geschmacksache.

  7. #6
    War schon öfter hier
    Registriert seit
    06.04.2010
    Beiträge
    223
    Bedankte sich
    38
    Erhielt 4 Danksagungen
    in 4 Beiträgen

    Standard

    irgend wie bekomme ich das nicht hin die CSS/PHP Datei per include zu importieren :-(

    mein Code:
    Code:
    <style type="text/css">
            <?php 
               include "$this->baseurl/templates/$this->template/css/container.php";
    		?>
    </style>
    ich habe immer die Fehlermeldung:
    <style type="text/css">
    <br />
    <b>Warning</b>: include(/MUECKE_/templates/MUECKE_/css/container.php) [<a href='function.include'>function.include</a>]: failed to open stream: No such file or directory in <b>/Applications/XAMPP/xamppfiles/htdocs/MUECKE_/templates/MUECKE_/index.php</b> on line <b>16</b><br />
    <br />
    <b>Warning</b>: include() [<a href='function.include'>function.include</a>]: Failed opening '/MUECKE_/templates/MUECKE_/css/container.php' for inclusion (include_path='.:/Applications/XAMPP/xamppfiles/lib/php:/Applications/XAMPP/xamppfiles/lib/php/pear') in <b>/Applications/XAMPP/xamppfiles/htdocs/MUECKE_-rheo/templates/MUECKE__rheo/index.php</b> on line <b>16</b><br />
    </style>
    irgend wie verstehe ich das nicht,
    1. Datei existiert:
    2. Pfad solte auch richtig sein da ich sie so auch über den Code ... aufrufe und da klappt es ja.
    Code: <link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/container.php" type="text/css" media="screen,projection" />
    3. Datei ist Lesebar und beschreibbar.

    kann es sein das Joomla 1.7 das nicht zulassen möchte? das man Daten per include importiert?
    oder mache ich was Falsch?


    oder arbeitet Joomla 1.7 denn mit einer ?? session ?? auf die ich zugreifen kann, dann könnte ich da ja ein paar meiner Variablen hinein schreiben :-) und wider abrufen.

    Gruß
    Geändert von Muecke.1982 (22.01.2012 um 23:10 Uhr)

  8. #7
    Hat hier eine Zweitwohnung Avatar von CirTap
    Registriert seit
    12.12.2005
    Ort
    Karlsruhe
    Beiträge
    1.628
    Bedankte sich
    83
    Erhielt 539 Danksagungen
    in 438 Beiträgen

    Standard

    Zitat Zitat von Gehm Beitrag anzeigen
    2. Pfad solte auch richtig sein da ich sie so auch über den Code ... aufrufe und da klappt es ja.
    Code: <link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/container.php" type="text/css" media="screen,projection" />
    Du verwechselst URLs, welche dem Browser gelten, mit Dateisystempfaden.

    include verwendet einen Dateisystempfad und da du diesen mit '/' begonnen hast, einen absoluten Dateipfad.

    Der absolute Pfad zur "container.php" lautet bei dir (vermutlich):
    /Applications/XAMPP/xamppfiles/htdocs/gehm-rheo/templates/gehm_rheo/css/container.php
    du hast PHP aber mitgeteilt, dass es
    /gehm-rheo/templates/gehm_rheo/css/container.php
    laden soll.

    Um den richtigen, absoluten Dateipfad zu erhalten, der zudem lokal ein anderer sein wird als auf dem Online-Server, hast du mehrere Möglichkeiten. Eine besteht darin, den globalen Pfad zum Ordner "/templates" zu verwenden und von dort aus, den Rest des Pfades anzuhängen. Dieser (Teil-)Pfad wird von J! in der Konstanten JPATH_THEMES abgelegt.
    Bei deinem XAMPP verweist JPATH_THEMES auf "/Applications/XAMPP/xamppfiles/htdocs/gehm-rheo/templates".
    "Online" wird der Pfad ein anderer sein,aber er wird in jedem Fall auf [...]/templates enden.
    Diese JPATH_xxx Konstanten haben keine abschließenden '/', sodass man diesen dann mit angeben muss.
    Zusammengebaut ergibt sich dann:
    PHP-Code:
    include_once JPATH_THEMES '/'$this->template '/css/container.php'
    CirTap
    Geändert von CirTap (24.12.2011 um 15:03 Uhr) Grund: schaipfehla
    Joomla FAQ | CSS-Probleme? Verstehen Entdecken Anwenden Meistern

    "I love deadlines. I like the whooshing sound they make as they fly by." (Douglas Adams)
    Man kann Software schnell, gut und günstig schreiben, sich aber nur 2 Dinge aussuchen.


  9. Erhielt Danksagungen von:


  10. #8
    War schon öfter hier
    Registriert seit
    06.04.2010
    Beiträge
    223
    Bedankte sich
    38
    Erhielt 4 Danksagungen
    in 4 Beiträgen

    Standard

    Hey,

    Danke Danke Danke,

    wenn ich das nun richtig verstanden habe habe ich auch meine anderen Daten alle Falsch eingebunden, denn ich habe ein Pfad angegeben der bei mir auf dem Lockatem Rechner gehen tut aber Später auf einem anderem Server nicht :-( das ist schlecht für mich :-) da muss ich das dann mal alles durcharbeiten :-)


    Danke noch mal für die Erklärung, das ist echt super.
    ich dachte schon das mit mir was nicht stimmt.

    Danke Danke Danke.


    ich wünsche Schönes W-Fest allen zusammen.

  11. #9
    Hat hier eine Zweitwohnung Avatar von CirTap
    Registriert seit
    12.12.2005
    Ort
    Karlsruhe
    Beiträge
    1.628
    Bedankte sich
    83
    Erhielt 539 Danksagungen
    in 438 Beiträgen

    Standard

    nun, ob das alle Dateipfade betrifft die du nutzt, vermag ich nicht zu beurteilen.
    Wenn es um URLs geht, die aus "Sicht des Browser" gelten, also alles was so als href="" oder src="" auftaucht, gelten andere Regeln, als für Dateien, die du in PHP einbindest; eben mit sowas wie include.
    Für URLs in der index.php des Templates ist dann $this->baseurl schon richtig.

    Wenn du eine (PHP-)Datei in PHP "includen" möchtest, die sich in einem Unterordner oder parallel zu deiner Datei befindet, kannst du folgendes Konstrukt nehmen; hier mal per echo einfach ausgespuckt:
    PHP-Code:
    echo dirname(__FILE__); 
    Beides sind reine PHP-Dinge und funktionieren auch ohne Joomla! Infos dazu findest du im PHP-Handbuch, http://de.php.net/manual/de/

    Steht das dirname(__FILE__) in der "index.php" käme z.B. dieses heraus:
    /Applications/XAMPP/xamppfiles/htdocs/gehm-rheo/templates/gehm_rheo
    Innerhalb der "container.php" dagegen
    /Applications/XAMPP/xamppfiles/htdocs/gehm-rheo/templates/gehm_rheo/css

    Auf dem Server eben das Äquivalent.

    An den Pfad, der dann zur Laufzeit genau den Pfad enthält der dem Rechner entspricht, klebst du dann einfach ein "/" gefolgt vom benötigten Rest hintendran.

    Diese spezielle Konstante, JPATH_THEMES, existiert nur in J! und ist eben schon fix und fertig da, weil der Pfad zu den Templates ja durchaus mal benötigt wird ;-)

    Schöne Restweihnachten.
    Joomla FAQ | CSS-Probleme? Verstehen Entdecken Anwenden Meistern

    "I love deadlines. I like the whooshing sound they make as they fly by." (Douglas Adams)
    Man kann Software schnell, gut und günstig schreiben, sich aber nur 2 Dinge aussuchen.


  12. Erhielt Danksagungen von:


  13. #10
    War schon öfter hier
    Registriert seit
    06.04.2010
    Beiträge
    223
    Bedankte sich
    38
    Erhielt 4 Danksagungen
    in 4 Beiträgen

    Standard

    :-) danke für die antwort,


    ich glaube dann habe ich doch nicht alles Falsch gemacht *pppuuuu*

    denn das ist mein Header gerade:

    HTML-Code:
    <head>
    
            <jdoc:include type="head" />
    		<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/schriften.css"	type="text/css" /> 		
    
    		<style type="text/css">
    		<?php include_once JPATH_THEMES . '/'. $this->template . '/css/container.php'; ?>
    		</style>
    			
    </head>
    da ich bis jetzt nur das eine in php aufrufe glaube ich das der Rest dann doch Stimmt :-)

    ich bin gerade am überlegen ob ich in meiner "PHP" Alibi CSS Datei denn meine Bilder richtig aufrufe.

    denn das mache ich z.B. so:
    PHP-Code:
    .top 
        {
            background:         #333;        
            background:         url('<?php echo $this->params->get('TPL_MUECKE_HEADER_BACKGROUND_NAME');?>');
            background-repeat:  no-repeat;
            height:             115px;
            color:              #fff;
            position:            relative;

            -moz-border-radius-topleft:      <?php echo $this->params->get('TPL_MUECKE__BORDER_RADIUS_TOPLEFT_NAME');?>px;
            -moz-border-radius-topright:     <?php echo $this->params->get('TPL_MUECKE__BORDER_RADIUS_TOPRIGHT_NAME');?>px;
            -moz-border-radius-bottomright:  0px;
            -moz-border-radius-bottomleft:   0px;
            -webkit-border-radius: <?php echo $this->params->get('TPL_MUECKE__BORDER_RADIUS_TOPLEFT_NAME');?>px <?php echo $this->params->get('TPL_MUECKE__BORDER_RADIUS_TOPRIGHT_NAME');?>px 0px 0px;
            border-radius: <?php echo $this->params->get('TPL_MUECKE__BORDER_RADIUS_TOPLEFT_NAME');?>px <?php echo $this->params->get('TPL_MUECKE__BORDER_RADIUS_TOPRIGHT_NAME');?>px 0px 0px;     
        }
    ich vermute mal das ich die dort richtig aufrufe, da ich das aber aus einem PHP Bereich mache bin ich mir da gerade nicht mehr sicher. :-(
    auf meinem Heim Rechner (XAMPP) tut er gerade :-)

    gruß
    Geändert von Muecke.1982 (22.01.2012 um 23:09 Uhr)

  14. Erhielt Danksagungen von:

    LKF

+ Antworten
Seite 1 von 2 1 2 LetzteLetzte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein