рдореИрдЧреЗрдВрдЯреЛ (рдФрд░ рдХрдИ рдЕрдиреНрдп рдУрдУрдкреА рд╕рд┐рд╕реНрдЯрдо) рдХреЗ рддрд░реНрдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдбреЗрдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ / рдореЙрдбрд▓ рдФрд░ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд╕реНрддрд░ рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред рдбреЗрдЯрд╛ рдЕрдзрд┐рдЧреНрд░рд╣рдг рдФрд░ рднрдВрдбрд╛рд░рдг рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдирд┐рдЪрд▓реЗ рд╕реНрддрд░ рдХреЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрд╕рд╛рдзрди рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдлрд┐рд░, рдбреЗрдЯрд╛ рднрдВрдбрд╛рд░рдг рд╡рд┐рдзрд┐ (рдбреЗрдЯрд╛рдмреЗрд╕, рдлрд╝рд╛рдЗрд▓реЗрдВ, рдЖрджрд┐ ...) рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рддрд░реНрдХ рдХреЛ рдмрджрд▓рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рд╕рдВрд╕рд╛рдзрди рдореЙрдбрд▓ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдбреЗрдЯрд╛ рдХреА рдкреНрд░рд╛рдкреНрддрд┐ рдФрд░ рднрдВрдбрд╛рд░рдг рдореЗрдВ рд▓рдЧреЗ рд╣реБрдП рд╣реИрдВред рд╣рдо рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдорд╛рдЪрд╛рд░ рдЙрддреНрдкрд╛рджрди рдлрд┐рд░ рд╕реЗ рдХрд░реЗрдВрдЧреЗ, рдФрд░ рдЖрдИрдбреА рджреНрд╡рд╛рд░рд╛ рд╕рдорд╛рдЪрд╛рд░ рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рднреА рдЬреЛрдбрд╝реЗрдВрдЧреЗ:
- рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдореЙрдбрд▓ рдиреЛрдб рдореЗрдВ рдХреНрд▓рд╛рд╕ рдиреЛрдб рдЬреЛрдбрд╝реЗрдВ:
<?xml version="1.0" ?> <config> <modules> ... </modules> <frontend> ... </frontend> <global> <models> <dsnews> <class>DS_News_Model</class> <resourceModel>dsnews_resource</resourceModel> </dsnews> <dsnews_resource> <class>DS_News_Model_Resource</class> <entities> <table_news> <table>ds_news_entities</table> </table_news> </entities> </dsnews_resource> </models> <resources> ... </resources> </global> </config>
- рд╕рдорд╛рдЪрд╛рд░ рдореЙрдбрд▓ рдлрд╝рд╛рдЗрд▓ рдореЙрдбрд▓ / News.php рдмрдирд╛рдПрдБ
<?php class DS_News_Model_News extends Mage_Core_Model_Abstract { public function _construct() { parent::_construct(); $this->_init('dsnews/news'); } }
- рд╕рдорд╛рдЪрд╛рд░ рдореЙрдбрд▓ рд╕рдВрд╕рд╛рдзрди рдлрд╝рд╛рдЗрд▓ рдореЙрдбрд▓ / рд╕рдВрд╕рд╛рдзрди / News.php рдмрдирд╛рдПрдБ
<?php class DS_News_Model_Resource_News extends Mage_Core_Model_Mysql4_Abstract { public function _construct() { $this->_init('dsnews/table_news', 'news_id'); } }
- рдПрдХ рд╕рдВрдЧреНрд░рд╣ рд╕рдВрд╕рд╛рдзрди рдлрд╝рд╛рдЗрд▓ рдореЙрдбрд▓ / рд╕рдВрд╕рд╛рдзрди / рд╕рдорд╛рдЪрд╛рд░ / Collection.php рдмрдирд╛рдПрдБ
<?php class DS_News_Model_Resource_News_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract { public function _construct() { parent::_construct(); $this->_init('dsnews/news'); } }
- рдирд┐рдпрдВрддреНрд░рдХ рдирд┐рдпрдВрддреНрд░рдХ / IndexController.php рдмрджрд▓реЗрдВ
<?php class DS_News_IndexController extends Mage_Core_Controller_Front_Action { public function indexAction() { $news = Mage::getModel('dsnews/news')->getCollection()->setOrder('created', 'DESC'); $viewUrl = Mage::getUrl('news/index/view'); echo '<h1>News</h1>'; foreach ($news as $item) { echo '<h2><a href="' . $viewUrl . '?id=' . $item->getId() . '">' . $item->getTitle() . '</a></h2>'; } } public function viewAction() { $newsId = Mage::app()->getRequest()->getParam('id', 0); $news = Mage::getModel('dsnews/news')->load($newsId); if ($news->getId() > 0) { echo '<h1>' . $news->getTitle() . '</h1>'; echo '<div class="content">' . $news->getContent() . '</div>'; } else { $this->_forward('noRoute'); } } }
рдЕрдм рд▓рд┐рдВрдХ
http://site.com/news рд▓рд┐рдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдорд╛рдЪрд╛рд░ рдХреА рд╕реВрдЪреА рдЦреЛрд▓реЗрдЧрд╛, рдЬрдм рдЖрдк рдЙрд╕ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВрдЧреЗ рдЬрд┐рд╕ рдкрд░ рд╕рдорд╛рдЪрд╛рд░ рдХреА рд╕рд╛рдордЧреНрд░реА рд╡рд╛рд▓рд╛ рдПрдХ рдкреГрд╖реНрда рдЦреБрд▓реЗрдЧрд╛ред
рдЪрд░рдг 1 рдореЗрдВ,
рдХреНрд▓рд╛рд╕ рдиреЛрдб рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ
DS_News_Model рдореЙрдбрд▓ рдФрд░ DS_News_Model_Resource рд╕рдВрд╕рд╛рдзрди рдХреЗ рд▓рд┐рдП рдореВрд▓ рд╡рд░реНрдЧ рдЙрдкрд╕рд░реНрдЧ рдкрдВрдЬреАрдХреГрдд рд╣реЛрддреЗ рд╣реИрдВред
рдирд┐рдпрдВрддреНрд░рдХ (рдордж 5) рдореЙрдбрд▓ рдореЗрдВ рдПрдХ рдореЙрдбрд▓ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╕рдордп
:: getModel ('dsnews / news') ,
getModel рдлрд╝рдВрдХреНрд╢рди рдЙрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ
[рдореЙрдбрд▓] / [рд╡рд░реНрдЧ] рдЬрд┐рд╕рд╕реЗ рдореЙрдбрд▓ рд╡рд░реНрдЧ рдХрд╛ рдирд╛рдо рдмрдирддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ
[рдореЙрдбрд▓] рдХреЙрдиреНрдлрд┐рдЧ рдиреЛрдб рдХрд╛ рдирд╛рдо рд╣реИред
/ рд╡реИрд╢реНрд╡рд┐рдХ / рдореЙрдбрд▓ / [рдореЙрдбрд▓] , рдЬрд┐рд╕рдореЗрдВ рд╕реЗ
рд╡рд░реНрдЧ рдиреЛрдб рдХрд╛ рдорд╛рди
рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ -
DS_News_Model , рдФрд░ рдорд╛рди
[рд╡рд░реНрдЧ] рдХреЛ рдЗрд╕ рд╡рд░реНрдЧ рдЙрдкрд╕рд░реНрдЧ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ (рдкреНрд░рддреНрдпреЗрдХ рд╢рдмреНрдж рдореЗрдВ рдкрд╣рд▓рд╛ рдЕрдХреНрд╖рд░
[рд╡рд░реНрдЧ] рдкреВрдВрдЬреА рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛрддрд╛ рд╣реИ)ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
DS_News_Model_News рд╡рд░реНрдЧ
dsnews / рд╕рдорд╛рдЪрд╛рд░ рд▓рд╛рдЗрди рд╕реЗ
рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░
DS_News_Model_News_Gallery рд╡рд░реНрдЧ
dsnews / news_gallery рд▓рд╛рдЗрди рд╕реЗ
рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЦрдгреНрдб 2 рдореЗрдВ, рдмреБрдирд┐рдпрд╛рджреА
DS_News_Model_News рд╕рдорд╛рдЪрд╛рд░ рдореЙрдбрд▓
рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛
рд╣реИ , рдЬрд┐рд╕рдХреЗ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рд╕рдВрд╕рд╛рдзрди
$ рдпрд╣ -> _ init ('dsnews / рд╕рдорд╛рдЪрд╛рд░') рдЖрд░рдВрднрд┐рдХ рд╣реИ: рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ, рдлрд╝рдВрдХреНрд╢рди рд╕реНрдЯреНрд░рд┐рдВрдЧ
[рдореЙрдбрд▓] / [рд╡рд░реНрдЧ] рд▓реЗрддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ
[рдореЙрдбрд▓] рдиреЛрдб рдХрд╛ рдирд╛рдо рд╣реИред
рдХреЙрдиреНрдлрд┐рдЧ / рдЧреНрд▓реЛрдмрд▓ / рдореЙрдбрд▓ / [рдореЙрдбрд▓] , рдФрд░
[рдХреНрд▓рд╛рд╕] рдХреНрд▓рд╛рд╕ рдХрд╛ рдирд╛рдо рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореЙрдбрд▓ рдХреЗ рд╡рд┐рдкрд░реАрдд, рд╕рдВрд╕рд╛рдзрди рд╡рд░реНрдЧ рдХреЛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрд░рдирд╛ рдХреНрдпреЛрдВрдХрд┐ рдХрдХреНрд╖рд╛ рдЙрдкрд╕рд░реНрдЧ,
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди / рд╡реИрд╢реНрд╡рд┐рдХ / рдореЙрдбрд▓ / [resourceModel] рдХреЗ рдореВрд▓реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ
/ рд╕рдВрд╕рд╛рдзрди рдХреЗ рдореЙрдбрд▓ рдиреЛрдб рдХрд╛
рд╕рдВрд╕рд╛рдзрди Model рдиреЛрдб рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред рдирддреАрдЬрддрди, рдЬрдм рд╕рдВрд╕рд╛рдзрди
$ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░ рд░рд╣рд╛ рд╣реИ
-> _ init ('dsnews / news') ,
DS_News_Model_Resource_News рдХреНрд▓рд╛рд╕ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЪрд░рдг 3 рдореЗрдВ, рд╕рдВрд╕рд╛рдзрди рд╡рд░реНрдЧ
DS_News_Model_Resource_News рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ , рдЬрд┐рд╕рдореЗрдВ рддрд╛рд▓рд┐рдХрд╛
$ рдЗрд╕ -> _ init ('dsnews / table_news', 'news_id') рдХреЛ рдЖрд░рдВрднреАрдХреГрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ : рдкрд╣рд▓рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рд╡рд╛рдВрдЫрд┐рдд рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдирд╛рдо рдХрд╛ рдорд╛рд░реНрдЧ рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛ рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдлрд╝реАрд▓реНрдб рд╣реИред рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА) рдЯреЗрдмрд▓ред
рдХреНрд▓реЙрдЬ 4 рдореЗрдВ, рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд▓реЗрдХреНрд╢рди рдХреНрд▓рд╛рд╕ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рд╢реБрд░реБрдЖрддреА рдореЙрдбрд▓
DS_News_Model_News рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рд╣реЛрддрд╛ рд╣реИред
рдкреИрд░рд╛рдЧреНрд░рд╛рдл 5 рдореЗрдВ, рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдПрдХ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рд╕рдордп, рдореЙрдбрд▓ рдФрд░ рд╕рдВрдЧреНрд░рд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
IndexAction рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рд╕рднреА рд╕рдорд╛рдЪрд╛рд░
$ рд╕рдорд╛рдЪрд╛рд░ = Mage :: getModel ('dsnews / news') -> getCollection () рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдХреЗ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдВрдЧреНрд░рд╣ рд╡рд░реНрдЧ рдирд╛рдо рдХреА рдЧрдгрдирд╛
DS_News_Model_Resource_News +
_Collection рдореЙрдбрд▓ рд╕рдВрд╕рд╛рдзрди рд╡рд░реНрдЧ рдирд╛рдо рд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИред
рд╡реНрдпреВрдЕрдХреНрд╢рди рдПрдХреНрд╢рди рдореЗрдВ,
рд╕рдорд╛рдЪрд╛рд░ рдЕрдиреБрд░реЛрдз рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдЖрдИрдбреА рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЗрд╕ рдЖрдИрдбреА рдХреЗ рд╕рд╛рде рд╕рдорд╛рдЪрд╛рд░ рдореМрдЬреВрдж рд╣реИ, рддреЛ рд╕рдорд╛рдЪрд╛рд░ рдФрд░ рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдирд╛рдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЕрдиреНрдпрдерд╛, рдкреГрд╖реНрда 404 рдЙрддреНрдкрдиреНрди рд╣реЛ рдЬрд╛рдПрдЧрд╛ред