[ Príspevkov: 12 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Systém šablón

Registrovaný: 29.01.10
Prihlásený: 23.06.17
Príspevky: 648
Témy: 121 | 121
Bydlisko: Veľká Lomni...
NapísalOffline : 13.09.2014 17:29 | Systém šablón

Ahojte, tak som si povedal, že si skúsim vytvoriť svoj vlastný redakčný systém. Problém je v tom, že ma nenapadá ako urobiť niečo ako šablonovací systém. Moja prvá myšlienka bola takáto no nefunguje mi v tom dosadenie titulku a description.

Pre lepšiu orientáciu kostra projektu:
Kód:
class
  -Page.php
theme
  css
    -main.css
  -install.php
-install.php   
 

Page.php
Kód:
<?php

class Page {
    public $title;
    public $description;
    public $type;

    public function __construct($title, $description, $type)
    {
        $this->title = $title;
        $this->description = $description;
        $this->type = $type;
    }

    public function renderInstall()
    {
        include 'theme/install.php';
    }
}

install.php (v zložke theme)
Kód:
<!DOCTYPE html>
<html>
<head>
    <title><?= $page->title ?></title>
    <meta name="description" content="<?= $page->description ?>">
    <meta charset="UTF-8">
    <link rel="stylesheet" type="text/css" href="theme/css/main.css">
</head>

<body>

<div id="container">
    <form method="post">
        <fieldset>
            <legend>Admin</legend>
        </fieldset>

        <fieldset>
            <legend>Databáza</legend>
        </fieldset>

        <input type="submit" value="Inštalovať">
    </form>
</div>

</body>
</html>


install.php
Kód:
<?php
require 'class/Page.php';
$page = new Page('Inštalácia', 'Inštalácia systému', 'default');
$page->renderInstall();
?>


_________________
PC: CPU: AMD Phenom II X4 965 Black Edition BE 3.4GHz @ 4.0GHz Noctua NH-D14 MB: Gigabyte GA-970A-UD3 VGA: Sapphire AMD Radeon HD7850 2GB GDDR5 RAM: Kingston 4GB 1333MHz DDR3 CL9 DIMM PSU: be quiet! Pure Power L7-430W 80PLUS Monitor: ASUS 21" 1680x1050 CASE: Cooler Master Elite 311 Basic HDD: 7200rpm 500 GB, 5400rpm 500 GB DVD: Samsung DVD OS: Windows7 x64
Tablet: Asus Google Nexus 7, 32 GB, 3G, Nvidia Tegra 3 T30L Quad-Core 1.3 GHz, Android 4.4 KitKat, Synman's GwT ROM
Mobil: Motorola Moto G 2nd. generation Dual-sim
NTB: Toshiba Satellite C855 - 12J CPU: Intel Pentium B960 2.20 GHz GPU: AMD Radeon HD7610M
Offline

Čestný člen
Čestný člen
Systém šablón

Registrovaný: 21.02.06
Prihlásený: 08.12.14
Príspevky: 5447
Témy: 30 | 30
Bydlisko: Bratislava
NapísalOffline : 13.09.2014 18:17 | Systém šablón

Bolo by dobré sa najprv trošku zdokonaliť v základoch OOP.
Kde v šablóne sa zoberie tá premenná $page (to je otázka, nad ktorou máš pouvažovať ty)?


_________________
Neradím a nekomunikujem cez SS, ak niečo potrebujete, máte iné možnosti: Ak vám zmizla téma, alebo sa vám niečo nepáči. Ak potrebujete nahlásiť príspevok/človeka, reportujte ho. Ak máte s niečim problém, riešte to v danej téme.
Offline

Užívateľ
Užívateľ
Systém šablón

Registrovaný: 29.01.10
Prihlásený: 23.06.17
Príspevky: 648
Témy: 121 | 121
Bydlisko: Veľká Lomni...
Napísal autor témyOffline : 13.09.2014 18:23 | Systém šablón

Kde som urobil chybu ohľadom OOP? A práve to neviem, ako tam dostať tú premennú. (teda niečo ma napadlo, ale to by bolo dosť krkolomné).

EDIT:// Vyriešil som to tak, že ešte pred volaním tej funkcie som premenné zadefinoval ako $GLOBALS['premenna'] a potom iba dosadil. Je to dobré riešenie?


_________________
PC: CPU: AMD Phenom II X4 965 Black Edition BE 3.4GHz @ 4.0GHz Noctua NH-D14 MB: Gigabyte GA-970A-UD3 VGA: Sapphire AMD Radeon HD7850 2GB GDDR5 RAM: Kingston 4GB 1333MHz DDR3 CL9 DIMM PSU: be quiet! Pure Power L7-430W 80PLUS Monitor: ASUS 21" 1680x1050 CASE: Cooler Master Elite 311 Basic HDD: 7200rpm 500 GB, 5400rpm 500 GB DVD: Samsung DVD OS: Windows7 x64
Tablet: Asus Google Nexus 7, 32 GB, 3G, Nvidia Tegra 3 T30L Quad-Core 1.3 GHz, Android 4.4 KitKat, Synman's GwT ROM
Mobil: Motorola Moto G 2nd. generation Dual-sim
NTB: Toshiba Satellite C855 - 12J CPU: Intel Pentium B960 2.20 GHz GPU: AMD Radeon HD7610M
Offline

Čestný člen
Čestný člen
Systém šablón

Registrovaný: 21.02.06
Prihlásený: 08.12.14
Príspevky: 5447
Témy: 30 | 30
Bydlisko: Bratislava
NapísalOffline : 13.09.2014 20:56 | Systém šablón

:-| nie, ani náhodou to nie je dobré riešenie. Stále sa pýtaš, kde si urobil chybu ohľadom OOP?
Pozri si, ako sú robené niektoré šablonóvacie triedy.


_________________
Neradím a nekomunikujem cez SS, ak niečo potrebujete, máte iné možnosti: Ak vám zmizla téma, alebo sa vám niečo nepáči. Ak potrebujete nahlásiť príspevok/človeka, reportujte ho. Ak máte s niečim problém, riešte to v danej téme.
Offline

Užívateľ
Užívateľ
Systém šablón

Registrovaný: 29.01.10
Prihlásený: 23.06.17
Príspevky: 648
Témy: 121 | 121
Bydlisko: Veľká Lomni...
Napísal autor témyOffline : 14.09.2014 8:11 | Systém šablón

A čo takto?
Kód:
<?php

class Page {
    private $title;
    private $description;
    private $page;
    private $path;

    public function __construct( $title, $description, $page )
    {
        $this->title = $title;
        $this->description = $description;
        $this->page = $page;
    }

    public function getPath()
    {
        $this->path = "theme/$this->page.php";
    }

    public function render()
    {
        include $this->path;
    }
}


A potom v install.php (v theme) iba volám $this->title atď.


_________________
PC: CPU: AMD Phenom II X4 965 Black Edition BE 3.4GHz @ 4.0GHz Noctua NH-D14 MB: Gigabyte GA-970A-UD3 VGA: Sapphire AMD Radeon HD7850 2GB GDDR5 RAM: Kingston 4GB 1333MHz DDR3 CL9 DIMM PSU: be quiet! Pure Power L7-430W 80PLUS Monitor: ASUS 21" 1680x1050 CASE: Cooler Master Elite 311 Basic HDD: 7200rpm 500 GB, 5400rpm 500 GB DVD: Samsung DVD OS: Windows7 x64
Tablet: Asus Google Nexus 7, 32 GB, 3G, Nvidia Tegra 3 T30L Quad-Core 1.3 GHz, Android 4.4 KitKat, Synman's GwT ROM
Mobil: Motorola Moto G 2nd. generation Dual-sim
NTB: Toshiba Satellite C855 - 12J CPU: Intel Pentium B960 2.20 GHz GPU: AMD Radeon HD7610M
Offline

Čestný člen
Čestný člen
Systém šablón

Registrovaný: 21.02.06
Prihlásený: 08.12.14
Príspevky: 5447
Témy: 30 | 30
Bydlisko: Bratislava
NapísalOffline : 14.09.2014 11:33 | Systém šablón

Skúšal si to vôbec?
Tu ti ťažko poradíme, keď ty by si potreboval popísať návrh celého šablónovacieho systému (a to sa mi nechce).
Keď zavoláš metódu render, čo ti includne? Lebo path v tej chvíli existovať nemusí.

To isté v getPath (aj keď by sa to skôr malo volať setPath), myslíš, že ten zápis je správny? Že ti to bude fungovať?


_________________
Neradím a nekomunikujem cez SS, ak niečo potrebujete, máte iné možnosti: Ak vám zmizla téma, alebo sa vám niečo nepáči. Ak potrebujete nahlásiť príspevok/človeka, reportujte ho. Ak máte s niečim problém, riešte to v danej téme.
Offline

Užívateľ
Užívateľ
Systém šablón

Registrovaný: 29.01.10
Prihlásený: 23.06.17
Príspevky: 648
Témy: 121 | 121
Bydlisko: Veľká Lomni...
Napísal autor témyOffline : 14.09.2014 11:41 | Systém šablón

Ano skusal som a funguje to.


_________________
PC: CPU: AMD Phenom II X4 965 Black Edition BE 3.4GHz @ 4.0GHz Noctua NH-D14 MB: Gigabyte GA-970A-UD3 VGA: Sapphire AMD Radeon HD7850 2GB GDDR5 RAM: Kingston 4GB 1333MHz DDR3 CL9 DIMM PSU: be quiet! Pure Power L7-430W 80PLUS Monitor: ASUS 21" 1680x1050 CASE: Cooler Master Elite 311 Basic HDD: 7200rpm 500 GB, 5400rpm 500 GB DVD: Samsung DVD OS: Windows7 x64
Tablet: Asus Google Nexus 7, 32 GB, 3G, Nvidia Tegra 3 T30L Quad-Core 1.3 GHz, Android 4.4 KitKat, Synman's GwT ROM
Mobil: Motorola Moto G 2nd. generation Dual-sim
NTB: Toshiba Satellite C855 - 12J CPU: Intel Pentium B960 2.20 GHz GPU: AMD Radeon HD7610M
Offline

Čestný člen
Čestný člen
Systém šablón

Registrovaný: 21.02.06
Prihlásený: 08.12.14
Príspevky: 5447
Témy: 30 | 30
Bydlisko: Bratislava
NapísalOffline : 14.09.2014 15:13 | Systém šablón

Aj keď nezavoláš getPath? Lebo v predchádzajúcom kóde ju nemáš a príde mi, ako zbytočná. Prečo path nenastavíš priamo v konštruktore?
Ale je to lepšia z možností, ako globálna premenná, ak ti to funguje a stačí, tak to použi.

A nebol som si istý týmto zápisom:
Kód:
$this->path = "theme/$this->page.php";

nepoužívam úvodzovky (dvojité), ale ak to v pohode zožerie aj $this->page, tak je to ok.


_________________
Neradím a nekomunikujem cez SS, ak niečo potrebujete, máte iné možnosti: Ak vám zmizla téma, alebo sa vám niečo nepáči. Ak potrebujete nahlásiť príspevok/človeka, reportujte ho. Ak máte s niečim problém, riešte to v danej téme.
Offline

Užívateľ
Užívateľ
Systém šablón

Registrovaný: 29.01.10
Prihlásený: 23.06.17
Príspevky: 648
Témy: 121 | 121
Bydlisko: Veľká Lomni...
Napísal autor témyOffline : 14.09.2014 15:52 | Systém šablón

K tomu getPath. Vlastne ani neviem, prečo to mám oddelené. Niekde som čítal, že na každú vec má byť jedna funkcia...


_________________
PC: CPU: AMD Phenom II X4 965 Black Edition BE 3.4GHz @ 4.0GHz Noctua NH-D14 MB: Gigabyte GA-970A-UD3 VGA: Sapphire AMD Radeon HD7850 2GB GDDR5 RAM: Kingston 4GB 1333MHz DDR3 CL9 DIMM PSU: be quiet! Pure Power L7-430W 80PLUS Monitor: ASUS 21" 1680x1050 CASE: Cooler Master Elite 311 Basic HDD: 7200rpm 500 GB, 5400rpm 500 GB DVD: Samsung DVD OS: Windows7 x64
Tablet: Asus Google Nexus 7, 32 GB, 3G, Nvidia Tegra 3 T30L Quad-Core 1.3 GHz, Android 4.4 KitKat, Synman's GwT ROM
Mobil: Motorola Moto G 2nd. generation Dual-sim
NTB: Toshiba Satellite C855 - 12J CPU: Intel Pentium B960 2.20 GHz GPU: AMD Radeon HD7610M
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 13.11.07
Prihlásený: 20.08.16
Príspevky: 1719
Témy: 0 | 0
NapísalOffline : 14.09.2014 17:54 | Systém šablón

Taká funkcia zmysel má, ale tá tvoja robí niečo iné, ako by sa dalo predpokladať podľa názvu (očakával by som, že getPath vráti nejakú cestu a nie to, že bude niečo nastavovať).


Offline

Čestný člen
Čestný člen
Systém šablón

Registrovaný: 21.02.06
Prihlásený: 08.12.14
Príspevky: 5447
Témy: 30 | 30
Bydlisko: Bratislava
NapísalOffline : 14.09.2014 19:42 | Systém šablón

Hlavne píš triedy tak, aby dávali zmysel a boli aj idiot-proof. Ak niekto bude inicializovať triedu Page (ktorú by som skôr pomenoval Template) a zabudne zavolať getPath, tak mu to fungovať nebude.
Nevidím dôvod, prečo nenastaviť cestu v constructe podľa $page a potom dať možnosť userovi to prepísať cez setPath (ak by chcel nastaviť inú cestu).


_________________
Neradím a nekomunikujem cez SS, ak niečo potrebujete, máte iné možnosti: Ak vám zmizla téma, alebo sa vám niečo nepáči. Ak potrebujete nahlásiť príspevok/človeka, reportujte ho. Ak máte s niečim problém, riešte to v danej téme.
Offline

Užívateľ
Užívateľ
Systém šablón

Registrovaný: 02.06.08
Prihlásený: 19.07.16
Príspevky: 3330
Témy: 147 | 147
Bydlisko: Žilina / Os...
Vek: 24
NapísalOffline : 02.10.2014 8:54 | Systém šablón

Daj si do youtube, MVC PHP a prvý odkaz je celý seriál, skús spraviť niečo podľa toho, ak vieš OOP trochu lepšie tak nieje problém si to rozšíriť, jednoduchá kostra, na ktorej sa dá stavať :) Takto ako to máš to je nemožné rozširovať ...

Pozri si moju prácu, nieje to nič super, to píšem občas vo vlaku, teraz nato nemám čas, aspoň kvôli štruktúre:

https://github.com/majky358/mvc/


_________________
PC - ASUS M2N-MX Se+ | AMD X2 4200+ | 2GB RAM | Nvidia 8600GT | WD 320GB | 350W |NTB - ASUS K50AB SX-010 | | ASUS X550L | SteelSeries Mousepad | A4tech XL-750BF | HTC Explorer |
CCNA (640-802) |
 [ Príspevkov: 12 ] 


Systém šablón



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

Licencie šablón

v Ostatné

1

83

02.12.2016 0:31

BX

V tomto fóre nie sú ďalšie neprečítané témy.

Predaj nenakodovanych sablon

v Ostatné

3

345

17.01.2010 17:25

shaggy

V tomto fóre nie sú ďalšie neprečítané témy.

Webdesign - zhodnocovanie CMS a sablon

v Správy pre vedenie fóra

2

885

15.08.2008 13:25

Blackshadow

V tomto fóre nie sú ďalšie neprečítané témy.

ako je to s nasadzovanim stiahnutych sablon ?

v Ostatné

2

375

13.03.2008 16:31

MKI-Miro

V tomto fóre nie sú ďalšie neprečítané témy.

System

v PHP, ASP

0

531

18.11.2007 12:48

DADDY

V tomto fóre nie sú ďalšie neprečítané témy.

system

v Operačné systémy Microsoft

4

480

19.01.2009 15:32

crawn

V tomto fóre nie sú ďalšie neprečítané témy.

Rapidshare system

v Redakčné systémy

0

338

01.02.2010 17:50

Kriss

V tomto fóre nie sú ďalšie neprečítané témy.

Redakcny system

v Ostatné

0

576

03.08.2007 18:38

desann

V tomto fóre nie sú ďalšie neprečítané témy.

Nestabilny system

v Operačné systémy Microsoft

2

206

30.10.2007 13:01

Zemla

V tomto fóre nie sú ďalšie neprečítané témy.

pipeline system

v Assembler, C, C++, Pascal, Java

0

205

19.12.2010 20:33

bimbo34

V tomto fóre nie sú ďalšie neprečítané témy.

ICQ system ?

v Sieťové a internetové programy

21

1035

04.07.2008 23:49

KingTommy

V tomto fóre nie sú ďalšie neprečítané témy.

Chladiaci system

v Notebooky a netbooky

3

138

20.11.2012 16:53

stanospeed

V tomto fóre nie sú ďalšie neprečítané témy.

REDAKCNY SYSTEM

v Redakčné systémy

6

451

25.07.2007 15:51

JanoF

V tomto fóre nie sú ďalšie neprečítané témy.

Klientsky system

v Redakčné systémy

2

434

19.05.2009 9:46

kajbo

V tomto fóre nie sú ďalšie neprečítané témy.

Redakčný systém

v Redakčné systémy

5

573

13.06.2007 23:02

majdo

V tomto fóre nie sú ďalšie neprečítané témy.

Download system

v Ostatné

3

306

02.12.2010 19:28

Flety



© 2005 - 2017 PCforum, edited by JanoF