Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ 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
Bydlisko: Veľká Lomni...
Príspevok NapísalOffline : 13.09.2014 17:29

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
Bydlisko: Bratislava
Príspevok NapísalOffline : 13.09.2014 18:17

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
Bydlisko: Veľká Lomni...
Príspevok Napísal autor témyOffline : 13.09.2014 18:23

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
Bydlisko: Bratislava
Príspevok NapísalOffline : 13.09.2014 20:56

:-| 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
Bydlisko: Veľká Lomni...
Príspevok Napísal autor témyOffline : 14.09.2014 8:11

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
Bydlisko: Bratislava
Príspevok NapísalOffline : 14.09.2014 11:33

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
Bydlisko: Veľká Lomni...
Príspevok Napísal autor témyOffline : 14.09.2014 11:41

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
Bydlisko: Bratislava
Príspevok NapísalOffline : 14.09.2014 15:13

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
Bydlisko: Veľká Lomni...
Príspevok Napísal autor témyOffline : 14.09.2014 15:52

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
Príspevok NapísalOffline : 14.09.2014 17:54

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
Bydlisko: Bratislava
Príspevok NapísalOffline : 14.09.2014 19:42

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
Bydlisko: Žilina / Os...
Príspevok NapísalOffline : 02.10.2014 8:54

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) |
Odpovedať na tému [ Príspevkov: 12 ] 


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

418

02.12.2016 0:31

BX Zobrazenie posledných príspevkov

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

v Ostatné

3

594

17.01.2010 17:25

shaggy Zobrazenie posledných príspevkov

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

1053

15.08.2008 13:25

Blackshadow Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. ako je to s nasadzovanim stiahnutych sablon ?

v Ostatné

2

542

13.03.2008 16:31

MKI-Miro Zobrazenie posledných príspevkov

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

v Operačné systémy Microsoft

4

708

19.01.2009 15:32

crawn Zobrazenie posledných príspevkov

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

v PHP, ASP

0

812

18.11.2007 12:48

DADDY Zobrazenie posledných príspevkov

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

v Operačné systémy Unix a Linux

12

991

27.09.2007 15:58

dodo_mt Zobrazenie posledných príspevkov

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

v Redakčné systémy

3

1497

18.01.2009 19:42

K0d1 Zobrazenie posledných príspevkov

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

v Operačné systémy Microsoft

6

477

17.03.2010 0:29

4040 Zobrazenie posledných príspevkov

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

v Operačné systémy Microsoft

12

660

04.11.2011 17:54

ondrejla Zobrazenie posledných príspevkov

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

852

23.01.2011 19:29

shaggy Zobrazenie posledných príspevkov

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

v PHP, ASP

5

720

26.11.2008 21:36

tomxi Zobrazenie posledných príspevkov

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

v Redakčné systémy

1

898

18.03.2009 16:46

chio Zobrazenie posledných príspevkov

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

v Operačné systémy Microsoft

1

454

17.01.2011 16:41

niXo Zobrazenie posledných príspevkov

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

v Notebooky a netbooky

10

958

27.10.2008 18:19

I_hate_Vista Zobrazenie posledných príspevkov

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

v PHP, ASP

9

469

08.03.2008 2:38

walther Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  
cron

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra