2016-03-19 15 views
0

Ich entwickle ein Admin-Panel für die Verwaltung von Farben im Frontend. Ich möchte nicht alle Farbvariablen in Themendateien hinzufügen (wie header.phtml, footer.phtml, etc), aber ich möchte eine Datei mit allen CSS Klassen- und Farbvariablen erzeugen. Ex.Convert PHP oder PHP-Datei in CSS

<?php 

$color = Mage::getStoreConfig('themeadmin/frontend/general_color'); 

echo '.top-header-container { background-color : #'.$color.'; } .menu { background-color : #'.$color.'; }'; 
?> 

Wie kann ich das tun, ohne diese Datei im Thema hinzufügen? Kann ich eine CSS-Datei generieren? Was ist der beste Weg? Danke

+1

Ich stimme ab, diese Frage als Off-Topic zu schließen, weil es nicht um Magento geht. Bitte denken Sie daran, die Frage auf den allgemeineren Stack-Overflow zu stellen. –

+0

Stattdessen ist es Magento, denn was ich entwickelt habe, ist ein Admin-Panel für mein Magento Theme, für kein anderes cms oder php Skript – user3309614

+0

würde ich vorschlagen, all diese CSS Dateien an Ort und Stelle zu haben Im Voraus und basierend auf der Benutzerauswahl in admin, schließe die relative in Thema ein. – Prateek

Antwort

0

Sie können sehr einfach eine .php-Datei (oder eine Controller-Aktion) als das eigentliche zu verwendende Stylesheet aufrufen.

ref: Include: css with php file extension?

Also, diese Möglichkeit erwägen Sie Folgendes tun können:

  1. Erstellen Sie eine Controller-Aktion in Ihrem Modul.
  2. -Code für diese Aktion einfach Ausgabe eines gültigen formatiert Sheet
  3. diese Aktion zum Layout hinzufügen, über XML oder programmatisch das Blatt in das Layout injizieren, möglicherweise über einen Beobachter Ereignis/Modell/Controller-Aktion

Beispiel: speichern Funktionalität (Ereignis tun sollte) und erzeugen eine bestimmte CSS-Datei ausgewählt, um die Admin-Optionen bilden

Mage::app()->getLayout()->getBlock('head')->addCss(
     'dyncatprod/adminhtml.css' 
); 

eine weitere Möglichkeit ist in den adminhtml einzuhaken. Das Endergebnis ist eine Datei mit statischem Namen, die Sie normalerweise einschließen würden. Stellen Sie sicher, dass Sie eine Standardbasisdatei für vorab gespeicherte Instanzen bereitstellen.

Auf diese Weise würde immer eine Datei mit den richtigen Werten als flache Stylesheet sicherstellen.

+0

Danke proxiblue, kannst du mir einen Tutorial Link oder etwas esle dafür geben? weil ich neu in Magento bin und ich das Admin-Panel nach Tutorial entwickle. Ich versuche es mit einer css.php, aber der Browser-Inspektor gibt mir einen Fehler: Fehler beim Laden der Ressource: Der Server hat mit dem Status 403 (Forbidden) geantwortet. Die Erlaubnis von ordner media/css/css.php ist 775. Aber nicht arbeiten – user3309614

+0

Hallo. Sorry, zu beschäftigt, um Codebeispiele zu geben oder googlen für dich;) - alles was du brauchst ist in der Antwort. Ich würde mit Option 2 gehen. So google auf Hacke, um ein Magento-Modul zu erstellen, und dann wie Beobachter für Ereignisse zu tun, finden Sie das richtige Ereignis, und schreiben Sie etwas Code :) - Viel Glück – proxiblue

+0

Ich bin mir nicht sicher über das verbotene Thema . Möglicherweise ist eine Sicherheitsfunktion in Ihrem Webserver aktiviert. Nicht für eine Weile getan, also nicht sicher, ob etwas Änderungen in Bezug auf die Fähigkeit hat, es zu tun. Wenn Sie jedoch Option 2 verwenden, wird dies zu einem NOOP. Sie können einen festen Dateinamen ausgeben. Darunter wird das normal sein. – proxiblue