[ Príspevkov: 12 ] 
AutorSpráva
Offline

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

Registrovaný: 29.01.10
Prihlásený: 21.01.22
Príspevky: 627
Témy: 122 | 122
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: 5404
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ý: 21.01.22
Príspevky: 627
Témy: 122 | 122
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: 5404
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ý: 21.01.22
Príspevky: 627
Témy: 122 | 122
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: 5404
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ý: 21.01.22
Príspevky: 627
Témy: 122 | 122
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: 5404
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ý: 21.01.22
Príspevky: 627
Témy: 122 | 122
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: 1702
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: 5404
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: 3325
Témy: 147 | 147
Bydlisko: Žilina / Os...
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

462

02.12.2016 0:31

BX

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

Predaj nenakodovanych sablon

v Ostatné

3

648

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

1104

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

586

13.03.2008 16:31

MKI-Miro

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

system

v Operačné systémy Microsoft

4

787

19.01.2009 15:32

crawn

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

System

v PHP, ASP

0

901

18.11.2007 12:48

DADDY

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

System info

v Operačné systémy Unix a Linux

12

1070

27.09.2007 15:58

dodo_mt

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

Ligovy system

v Redakčné systémy

3

1545

18.01.2009 19:42

K0d1

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

nenabehne system

v Operačné systémy Microsoft

6

521

17.03.2010 0:29

4040

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

operacny system

v Operačné systémy Microsoft

12

709

04.11.2011 17:54

ondrejla

Táto téma je zamknutá, nemôžete posielať nové príspevky alebo odpovedať na staršie.

Coj2-system

[ Choď na stránku:Choď na stránku: 1, 2 ]

v Počítačové hry

34

967

23.01.2011 19:29

shaggy

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

redakčny system

v PHP, ASP

5

787

26.11.2008 21:36

tomxi

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

Blog system

v Redakčné systémy

1

936

18.03.2009 16:46

chio

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

padá systém

v Operačné systémy Microsoft

1

501

17.01.2011 16:41

niXo

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

operacny system

v Notebooky a netbooky

10

1000

27.10.2008 18:19

I_hate_Vista

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

Vyhovujuci system ?

v PHP, ASP

9

525

08.03.2008 2:38

walther



© 2005 - 2025 PCforum, edited by JanoF