| Autor | Správa |
misko16
 Užívateľ
 Založený: 12.11.2008 Príspevky: 88
 | Zaslal: St 28.12.11 22:04 |   |
zdravim,
zacal som sa trochu zaujimat o tento sposob tvorenia webov, pokukal par tutorialov a frameworkov a nie vsetko som dostatocne pochopil. respektive som schopny uz vytvorit v podstate hocijaku web aplikaciu prostrednictvom jednoho jednoduchsieho MVC frameworku, len neviem, ci by bola spravne strukturovana podla MVC logiky.
najprv som skusal Zend Framework, ten bol ale dost zlozity a pre mna asi zbytocny, kedze nechapem poriadne ani zakladom. nasiel som si teda taky uplne elementarny framework http://www.phpro.org/tutorials/Model-View-Controller-MVC.html , co je nieco ako zjednodusena verzia Zendu a do neho si chcem spravit jednoduche CMS. zo zaciatku staci, ked bude prepojeny z MySQL DB a schopny odtial vytiahnut nejake zakladne settingy, dalej samozrejme zobrazovat jednotlive stranky, ktore budu tiez v DB a zakomponovat do toho nejakym sposobom moznost zmenit jazyk, ktory sa ulozi userovi do cookies. nasledne si preklad predstavujem tak, ze kazdy string pred vystupom prebehne nejakou funkciou, ktora ho vyhlada v patricnom csv subore a ak najde, prelozi.
stiahol som si teda ten framework a zacal som so zobrazovanim straniek. do indexovej akcie indexoveho kontroleru som napisal kod na vytiahnutie titulku a HTML kodu z databaze pre indexovu stranku, posunul tieto hodnoty templejte a ta to vykreslila. dalej je v tom kontroleri funkcia _call(), ktora zaisti zobrazovanie dalsich straniek.
dalej chcem spravit nejake menu a uz tu som si neisty. kam ten kod pre zobrazovanie menu vlozit? mam spravit novy kontroler pre menu a potom to nejakym sposobom prepojit alebo to zakomponovat do indexoveho kontrolera? to iste pre preklad, vobec neviem kam tu funkciu mam plesknut :/
mohol by mi to niekto vysvetlit? pripadne poskytnut nejaky vhodny priklad jednoducheho webu, ktory vyuziva MVC?
dakujem |
| |
  |
 |
emer
 Užívateľ
 Založený: 26.12.2006 Príspevky: 3683 Bydlisko: Nitra Vek: 18
 | Zaslal: St 28.12.11 23:01 |   |
CodeIgniter si skusal?
http://codeigniter.com/user_guide/
// pridané po 48 sekundách od posledného príspevku
mas tam aj videotutorialy, popripadne na zajtra.sk je celkom poho videocast |
_________________ Pocity popi*i, keď víš že všetko hrá jak má, vychádza to všetko pekne, tak jak má, hovorim si ná ne, musíš vedeť plánovať | |
    |
 |
misko16
 Užívateľ
 Založený: 12.11.2008 Príspevky: 88
 |
tak problematika je tam predsa rovnaka. nejde mi o framework, ale proste o celkove pochopenie toho MVC.
ten kontroler, co ma na starosti zobrazovanie stranok, si myslim, ze mi funguje spravne - vypyta si udaje (titulok, HTML kod) z db pre konkretnu stranku a posle ich do viewu. zvysok templejty stranky ako header a footer je definovany v php subory na serveri. cize jedine, co je tam zatial dynamicke, je ten titulok a HTML kod danej stranky.
menu by som mohol spravit podobne, ze jednoducho v tom istom kontrolery si selectnem z databazy vsetky titulky a poslem ich v arrayi do view, kde ich nejakym cylkom zobrazim. neviem ale to, ako a kam zakomponovat do toho webu nejake ine funkcie, ako spominany preklad alebo hocico ine, co vlastne ani nepotrebuje databazu, aby to bolo stale v tom MVC kontexte. |
| |
  |
 |
emer
 Užívateľ
 Založený: 26.12.2006 Príspevky: 3683 Bydlisko: Nitra Vek: 18
 | Zaslal: Št 29.12.11 12:28 |   |
no tazko ti poviem, kedze tvoj Framework nepoznam a netusim ako tam funguje hierarchia.
no vseobecne by to malo byt asi tak, ze kontroler a jeho metody ti vlastne kontroluju, ktora cast webu sa zobrazi. model ti komunikuje s databazou, spracuva nejake data. takez v kontrolery volas potrebne metody z modelov a dalej nejak spracujes data. a nakoniec do viewu tie data posielas, aby si ich zobrazil v prehliadaci.
takze ak chces vytvorit menu, nevytvaras dalsi kontroler, ale ho vygenerujes v nejakej casti modelu.
v CI existuju aj helpre popripadne libraries. takze ja to tam robim trochu inak, ale je to zbytocne vysvetlvoat, ekd itak nebudes mat sajnu o com hovorim.
Pozri si te videotutiraly, ktore som ti spominal. ten videocast na zajtra.sk ma viac dielov a je po slovensky, takze by si z toho mal dost pochopit.
Dalej co je "original" tutorial od tvorcov CI, ukazuju tam ako za 20 minut naprogramovat blog pomocou toho FW. a je tam aj nejaky uvod do CI. z toho by si mal princip pochopit. |
_________________ Pocity popi*i, keď víš že všetko hrá jak má, vychádza to všetko pekne, tak jak má, hovorim si ná ne, musíš vedeť plánovať | |
    |
 |
misko16
 Užívateľ
 Založený: 12.11.2008 Príspevky: 88
 | Zaslal: Po 02.01.12 19:53 |   |
no pozeral som si tak letmo tu user guide a nejake priklady a je to v podstate +- dost podobne tomu zendu. v zende som to ale pochopil tak, ze model je naviazany iba na jednu tabulku v databaze. tu ale pozeram, ze vlastne mozem pracovat s ktoroukolvek tabulkou.
cize keby som napriklad chcel spravit indexovu stranku, ktora by vypisovala 10 najnovsich noviniek a 10 najnovsich tem vo fore, tak do indexoveho modelu by som spravil jednu metodu, ktora by vracala 10 noviniek z novinkovej tabulky a druhu z fora. v kontroleri by som to array vlastne iba posunul do viewu, kde by sa to nejakym cyklom vypisalo. tak? |
| |
  |
 |
emer
 Užívateľ
 Založený: 26.12.2006 Príspevky: 3683 Bydlisko: Nitra Vek: 18
 | Zaslal: Ut 03.01.12 19:25 |   |
no myslim ze si to pochopil spravne |
_________________ Pocity popi*i, keď víš že všetko hrá jak má, vychádza to všetko pekne, tak jak má, hovorim si ná ne, musíš vedeť plánovať | |
    |
 |
misko16
 Užívateľ
 Založený: 12.11.2008 Príspevky: 88
 | Zaslal: Po 09.01.12 16:49 |   |
tak diky moc, celkom ma to chytilo
inak skusam si prerobit moj povodny web do tohoto frameworku a celkom mi tam nevyhovuje ta trieda Language, lebo preklady dokaze cerpat iba so suborov na serveri. kedze ale ja mam kopu prekladov dlhsich textov ulozenych v databazi, ako to riesit? zatial som to spravil tak, ze som si vytvoril novu kniznicu (do application/libraries), ktora cerpa tie preklady z DB na zaklade ID. v podstate mi vsetko funguje ako ma, len by som chcel vediet tvoj nazor, ci je to riesene spravne a ako by si to riesil ty. myslim si, ze samotny kod tej triedy mam spraveny dobre, len si nie som isty, ci je to spravne zakomponovane do toho webu - ci to nema byt riesene ako helper, alebo to zakomponovat do modelu a ci vobec je spravne, ze kniznica komunikuje s databazou. lebo pride mi, ze takto trochu straca zmysel model, kedze z modelu vyberiem iba id, to posuniem tej mojej funkcii na preklad a az ta vyberie z databaze konkretny text.
| kód: | <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Translate
{
var $user_language;
var $default_language;
var $CI;
public function __construct(){
$this->CI =& get_instance();
$this->CI->load->helper('cookie');
$this->user_language = get_cookie("lang");
$this->default_language = $this->CI->config->item("default_language");
if(!$this->user_language){
$this->user_language = $this->default_language;
set_cookie("lang", $this->default_language, time()+3600000);
}
}
public function translate($item, $id){
$query = $this->CI->db->query("SELECT translate FROM preklady WHERE item='$item' AND text_id='$id' AND language='$this->user_language'");
if($query->num_rows() > 0){
$translate = $query->result();
return $translate[0]->translate;
}
else{
return $this->get_default_translate($item, $id);
}
}
private function get_default_translate($item, $id){
$query = $this->CI->db->query("SELECT $item FROM stranky WHERE id='$id'");
if($query->num_rows() > 0){
$default_translate = $query->result();
return $default_translate[0]->$item;
}
else{
return "Sorry, no translate for this text - ".$item."_".$id;
}
}
} |
|
| |
  |
 |
shaggy
 Moderátor
 Založený: 21.02.2006 Príspevky: 4627 Bydlisko: Bratislava
 | Zaslal: Po 09.01.12 17:23 |   |
|
    |
 |
|
Nemôžete pridávať nové témy do tohto fóra. 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. Nemôžete hlasovať v tomto fóre.
|
|