Du bist nicht angemeldet.

JuKu

Profi

  • »JuKu« ist der Autor dieses Themas

Beiträge: 574

Registrierungsdatum: 29.09.2011

Danksagungen: 48

  • Private Nachricht senden

1

04.11.2011, 18:06

21. Die Stylesheets auslagern

Damit in den Stylesheets auch PHP-Anweisungen stehen können, müssen wir in der ".htaccess"-Datei im Hauptverzeichnis / Hauptordner noch folgende Zeilen ergänzen:

PHP-Quelltext

1
2
AddType application/x-httpd-php .css
AddType application/x-httpd-php .js


Jetzt legen wir in dem Ordner "styles/default" eine neue datei namens "style.css" an.
Sie sieht erst einmal so aus:

PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
header("content-type: text/css");
?>
body {
    background-color:#9AD7FF;
    color:#002EFF;
}

#menu {
    float:left;
    width:10%;
}

#breadcrump {
    background-color:#CFFFFF;
    color:#300000;
}

#content {
    float:right;
    width:90%;
}

#text {
    background-color:#CFFFFF;
    color:#000085;

    min-height:200px;
}


Wichtig ist diese Zeile, sonst funktioniert es nicht:

PHP-Quelltext

1
2
3
<?php
 header("content-type: text/css");
 ?>


Da wir in der ".htaccess"-Datei angegeben haben, das sie auch CSS-Dateien nach PHP parsen soll, muss auch der richtige Header zurückgegeben werden.
Wenn euch mein Beitrag weitergeholfen hat, drückt auf "Bedanken"!
Danke! :D

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »JuKu« (04.11.2011, 18:47)


Es hat sich bereits 1 registrierter Benutzer bedankt.

Benutzer, die sich für diesen Beitrag bedankt haben:

Drakor (12.11.2011)

JuKu

Profi

  • »JuKu« ist der Autor dieses Themas

Beiträge: 574

Registrierungsdatum: 29.09.2011

Danksagungen: 48

  • Private Nachricht senden

2

04.11.2011, 18:14

Die Datei "index.php" im Ordner "styles/default" sieht jetzt so aus:

PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
<head>
<title>{TITLE}</title>
{HEADER}
<style type="text/css">
@import "{STYLEPATH}/style.css";
/*@import url("erweitert.css");
@import url("druck.css") print, embossed;
@import url("pocketcomputer.css") handheld;
@import url("normal.css") screen;*/
</style>
</head>
<body>
<!-- Dateidefault2/index.php -->
<div id="content">
<div id="breadcrump">
{BREADCRUMP}
</div><br />
<div id="text">
{CONTENT}
</div>
</div>
<div id="menu">
{MENU}
</div>
</body>
</html>


Da die CSS-Eigenschaften nicht mehr in dieser Datei sind, sind es auch weniger Zeilen. ;-)
Hier wurde auch ein neuer "BBCode" hinzugefügt namens "{STYLEPATH}".
Dieser gibt den Style-Pfad an, in dem die Datei liegt.
Die Datei "style.css" im selben Ordner wird dann in den Cache geladen.
Der BBCode "{STYLEPATH}" gibt dann also den Cache-Pfad zurück.
Wenn euch mein Beitrag weitergeholfen hat, drückt auf "Bedanken"!
Danke! :D

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »JuKu« (04.11.2011, 18:48)


JuKu

Profi

  • »JuKu« ist der Autor dieses Themas

Beiträge: 574

Registrierungsdatum: 29.09.2011

Danksagungen: 48

  • Private Nachricht senden

3

04.11.2011, 18:51

Jetzt nur noch zur "SkinController.php" im Ordner "CMS/classes".
Sie sieht jetzt so aus:

PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
<?php

class SkinController {

private $text_menu_list "";
private $text_undermenu_list "";
private $text_breadcrump_first_list "";
private $text_breadcrump_list "";
private $breadcrump_zaehler 0;

    public function SkinController () {

        $handle fopen ("styles/" SkinController::getSelectedSkin() . "/menu_list.php""r");

        while (!feof($handle)) {
        $buffer fgets($handle);
        $this->text_menu_list .= $buffer;
        }

        fclose($handle);

        $handle fopen ("styles/" SkinController::getSelectedSkin() . "/undermenu_list.php""r");

        while (!feof($handle)) {
        $buffer fgets($handle);
        $this->text_undermenu_list .= $buffer;
        }

        fclose($handle);

        $handle fopen ("styles/" SkinController::getSelectedSkin() . "/breadcrump_first_list.php""r");

        while (!feof($handle)) {
        $buffer fgets($handle);
        $this->text_breadcrump_first_list .= $buffer;
        }

        fclose($handle);

        $handle fopen ("styles/" SkinController::getSelectedSkin() . "/breadcrump_list.php""r");

        while (!feof($handle)) {
        $buffer fgets($handle);
        $this->text_breadcrump_list .= $buffer;
        }

        fclose($handle);

    }

    public function getSelectedSkin () {
        return Settings::getSetting("selectedskin");
    }

    public function getSkinPath () {

    if (!file_exists("Cache")) {
        mkdir("Cache");
    }

    if (!file_exists("Cache/styles")) {
        mkdir("Cache/styles");
    }

    if (!file_exists("Cache/styles/" SkinController::getSelectedSkin())) {
        mkdir("Cache/styles/" SkinController::getSelectedSkin());
    }

    if (!file_exists("Cache/styles/" SkinController::getSelectedSkin()) . "/style.css") {

        if (file_exists("styles/" SkinController::getSelectedSkin() . "/style.css")) {
            copy ("styles/" SkinController::getSelectedSkin() . "/style.css""Cache/styles/" SkinController::getSelectedSkin() . "/style.css");
        }

    }

    if (!file_exists("Cache/styles/" SkinController::getSelectedSkin() . "/index.php")) {

        $handle fopen ("styles/" SkinController::getSelectedSkin() . "/index.php""r");

        $text "";

        while (!feof($handle)) {
        $buffer fgets($handle);
        $text .= $buffer;
        }

        fclose ($handle);

        $text str_replace("{CONTENT}"SkinController::PHPCode("$" "page->getContent()"), $text);
        $text str_replace("{STYLE}"SkinController::PHPCode("echo Settings::getSetting("selectedskin");"), $text);
        $text str_replace("{HEADER}"SkinController::PHPCode("$" "page->getHeader();"), $text);
        $text str_replace("{TITLE}"SkinController::PHPCode("echo " "$" "page->getTitle();"), $text);
        $text str_replace("{MENU}"SkinController::PHPCode("echo " "$" "page->getMenu();"), $text);
        $text str_replace("{BREADCRUMP}"SkinController::PHPCode("echo " "$" "page->getBreadcrump();"), $text);

        $text str_replace("{STYLEPATH}""Cache/styles/" SkinController::getSelectedSkin() , $text);

        $handle fopen ("Cache/styles/" SkinController::getSelectedSkin() . "/index.php""w");

        fwrite($handle$text);

        fclose($handle);

        return "Cache/styles/" SkinController::getSelectedSkin();

    } else {
        return "Cache/styles/" SkinController::getSelectedSkin();
    }

    }

    public function PHPCode ($text) {
        return "<" "?" "php " $text " ?" ">";
    }

    public function showMenu ($href$content$id$menuID) {

        $text $this->text_menu_list;

        $text str_replace("{HREF}"$href$text);
        $text str_replace("{CONTENT}"$content$text);
        $text str_replace("{ID}"$id$text);
        $text str_replace("{MENUID}"$menuID$text);

        echo "" $text;

        $menu = new Menu();
        $menu->getUnderMenu($id);

    }

    public function showUnderMenu ($href$content$id$menuID) {

        $text $this->text_undermenu_list;

        $text str_replace("{HREF}"$href$text);
        $text str_replace("{CONTENT}"$content$text);
        $text str_replace("{ID}"$id$text);
        $text str_replace("{MENUID}"$menuID$text);

        echo "" $text;

    }

    public function showBreadcrump ($alias$title$id$owner) {

        if ($this->breadcrump_zaehler == 0) {
            $text $this->text_breadcrump_first_list;
        } else {
            $text $this->text_breadcrump_list;
        }

        $text str_replace("{HREF}"$alias ".html"$text);
        $text str_replace("{ALIAS}"$alias$text);
        $text str_replace("{CONTENT}"$title$text);
        $text str_replace("{ID}"$id$text);
        $text str_replace("{OWNER}"$owner$text);

        echo "" $text;

        $this->breadcrump_zaehler $this->breadcrump_zaehler 1;

    }

}

?>


Hier hat sich nicht viel geändert.
Nur folgende Zeile wurden hinzugefügt:

PHP-Quelltext

1
$text str_replace("{STYLEPATH}""Cache/styles/" SkinController::getSelectedSkin() , $text);


Und diese Zeilen wurden auch hinzugefügt:

PHP-Quelltext

1
2
3
4
5
6
7
if (!file_exists("Cache/styles/" SkinController::getSelectedSkin()) . "/style.css") {

        if (file_exists("styles/" SkinController::getSelectedSkin() . "/style.css")) {
            copy ("styles/" SkinController::getSelectedSkin() . "/style.css""Cache/styles/" SkinController::getSelectedSkin() . "/style.css");
        }

    }


Hier wird die Datei "style.css" im Ordner "styles/default" in den Cache geladen. ;)
Wenn euch mein Beitrag weitergeholfen hat, drückt auf "Bedanken"!
Danke! :D