RomanMedvedev Posted July 10, 2015 Report Share Posted July 10, 2015 Есть блог, на него выводится та информация, которая указывается в blog.tpl.Как реализовать такую же штуку, только например с названием gallery, что бы можно было вывести страницу через код? В общем подобие страницы блога. Quote Link to post Share on other sites
Kosjak76 Posted July 10, 2015 Report Share Posted July 10, 2015 Продублировать все, что связано с Блогом. Начиная от таблицы в базе до шаблона и админки.Только с другим именем. Quote Link to post Share on other sites
mishanya Posted July 10, 2015 Report Share Posted July 10, 2015 дублировать таблицу s_blogфайлы:api/Blog.phpview/BlogView.phpdesign/theme/blog.tpldesign/theme/post.tplsimpla/BlogAdmin.phpsimpla/PostAdmin.phpsimpla/design/html/blog.tplsimpla/design/html/post.tpl дублироватьв api/Simpla.php клас блогав api/Managers.php права блогав .htacces запись для копии блога. Quote Link to post Share on other sites
Kors Posted July 10, 2015 Report Share Posted July 10, 2015 Kosjak76 и mishanya! Ребята, и не стыдно Вам такие советы давать? Дублировать кучу кода на каждый чих - это же и нерационально и непрофессионально... Куда проще так:1. В админ на странице поста блога завести новое поле - Группа блога.2. А дальше как обычно по адресу /blog выводить одну группу, по адресу /gallery - вторую. Потребуются маленькие изменения в .htaccess, view/BlogView.php, api/Blog.php.Причем так легко можно и третью группу завести, и четвертую... А у Вас - на третью группу опять дублировать горы кода? Quote Link to post Share on other sites
Kosjak76 Posted July 10, 2015 Report Share Posted July 10, 2015 Да, согласен, так действительно рациональнее.Но в качестве обучения и для лучшего понимания структуры движка - такой опыт совсем не повредит. Quote Link to post Share on other sites
RomanMedvedev Posted July 10, 2015 Author Report Share Posted July 10, 2015 (edited) Спасибо друзья))) Получилось) Создал новую страницу в админке с адресом galleryВ .htaccess прописал # Галерея RewriteRule ^gallery/([^/]+)/?$ index.php?module=GalleryView&url=$1 [L,QSA] RewriteRule ^gallery/?$ index.php?module=GalleryView [L,QSA] Создал новый документ GalleryViewИ в нём написал <?PHP require_once('View.php'); class GalleryView extends View { public function fetch() { // Иначе выводим ленту блога return $this->fetch_gallery(); } // Отображение списка постов private function fetch_gallery() { $folder_gallery = "design/sushishop/images/menu/"; $gallery = $this->check_type_img(array_diff(scandir($folder_gallery), array('..', '.')), $folder_gallery); // считывание всех файлов из директории $this->design->assign('list', $gallery); // Метатеги if($this->page) { $this->design->assign('meta_title', $this->page->meta_title); $this->design->assign('meta_keywords', $this->page->meta_keywords); $this->design->assign('meta_description', $this->page->meta_description); } $body = $this->design->fetch('gallery.tpl'); return $body; } private function check_type_img($array, $path) { $allowed_extentions = array('png', 'jpg', 'jpeg'); $i = 0; foreach ($array AS $val) { if(in_array(strtolower(pathinfo($val, PATHINFO_EXTENSION)), $allowed_extentions)) { $clear_array[$i] = iconv('cp1251', 'UTF-8', $path.$val); $i++; } } return $clear_array; } } Эта строка отвечает за название шаблона в design и конечная папка откуда выводятся картинки: $folder_gallery = "design/sushishop/images/menu/"; И создал gallery.tpl с кодом {foreach $list as $pic} <img src="{$pic}"> {/foreach} Получилась такая своеобразная галерея с выводом картинок =)Может кому нибудь пригодится.Ну и буду рад услышать комментарии и отзывы о данном примере) Edited July 10, 2015 by RomanMedvedev Quote Link to post Share on other sites
RomanMedvedev Posted July 10, 2015 Author Report Share Posted July 10, 2015 (edited) А если в GalleryView вместо $folder_gallery = "design/sushishop/images/menu/"; $gallery = $this->check_type_img(array_diff(scandir($folder_gallery), array('..', '.')), $folder_gallery); // считывание всех файлов из директории $this->design->assign('list', $gallery); написать так $folder_gallery = "design/sushishop/images/menu/"; $gallery = $this->check_type_img(array_diff(scandir($folder_gallery), array('..', '.')), $folder_gallery); // считывание всех файлов из директории $this->design->assign('list', $gallery); $folder_gallery = "design/sushishop/images/menu2/"; $gallery = $this->check_type_img(array_diff(scandir($folder_gallery), array('..', '.')), $folder_gallery); // считывание всех файлов из директории $this->design->assign('list2', $gallery); и в gallery.tpl написать например {foreach $list as $pic} <img src="{$pic}"> {/foreach} <hr> {foreach $list2 as $pic} <img src="{$pic}"> {/foreach} то будет выводится 2 галереи) Останется дело только за дизайном) Edited July 10, 2015 by RomanMedvedev Quote Link to post Share on other sites
Goodwen Posted October 22, 2015 Report Share Posted October 22, 2015 дублировать таблицу s_blogфайлы:api/Blog.phpview/BlogView.phpdesign/theme/blog.tpldesign/theme/post.tplsimpla/BlogAdmin.phpsimpla/PostAdmin.phpsimpla/design/html/blog.tplsimpla/design/html/post.tpl дублироватьв api/Simpla.php клас блогав api/Managers.php права блогав .htacces запись для копии блога.Ну что то еще вы пропустили: simpla/design/html/manager.tpl и даже после этого "Permission denied"... Подскажите где капать? Quote Link to post Share on other sites
mishanya Posted October 22, 2015 Report Share Posted October 22, 2015 Ну что то еще вы пропустили: simpla/design/html/manager.tpl и даже после этого "Permission denied"... Подскажите где капать? simpla/IndexAdmin.php Quote Link to post Share on other sites
Goodwen Posted October 22, 2015 Report Share Posted October 22, 2015 simpla/IndexAdmin.phpточно, спасибо! Но, еще один косяк выплыл, я изменил в api/Blog.php класс с b. на e. ......................... if(is_int($id)) $where = $this->db->placehold(' WHERE e.id=? ', intval($id)); else $where = $this->db->placehold(' WHERE e.url=? ', $id); $query = $this->db->placehold("SELECT e.id, e.url, e.name, e.annotation, e.annotation_tiny, e.text, e.meta_title, e.meta_keywords, e.meta_description, e.visible, e.date, e.thumb, e.image FROM __estate b $where LIMIT 1"); if($this->db->query($query)) return $this->db->result(); else return false; ...................... и теперь, при клике на кнопку "Добавить запись" меня перебрасывает на товары((( а может дело и не в классах? Quote Link to post Share on other sites
mishanya Posted October 22, 2015 Report Share Posted October 22, 2015 (edited) точно, спасибо! Но, еще один косяк выплыл, я изменил в api/Blog.php класс с b. на e. ......................... if(is_int($id)) $where = $this->db->placehold(' WHERE e.id=? ', intval($id)); else $where = $this->db->placehold(' WHERE e.url=? ', $id); $query = $this->db->placehold("SELECT e.id, e.url, e.name, e.annotation, e.annotation_tiny, e.text, e.meta_title, e.meta_keywords, e.meta_description, e.visible, e.date, e.thumb, e.image FROM __estate b $where LIMIT 1"); if($this->db->query($query)) return $this->db->result(); else return false; ...................... и теперь, при клике на кнопку "Добавить запись" меня перебрасывает на товары((( а может дело и не в классах? тут забыли __estate b еще проверьте првильно ли классы названы (редактирование/добавления ). перебрасывает на страницу товаров как раз из-за этого. Edited October 22, 2015 by mishanya Quote Link to post Share on other sites
Goodwen Posted October 22, 2015 Report Share Posted October 22, 2015 тут забыли __estate b еще проверьте првильно ли классы названы (редактирование/добавления ). перебрасывает на страницу товаров как раз из-за этого. ох, вернул классы на исходные, изменил только Blog/blog на Estate/estate и Post/post на Estatepost/estatepost во всех файлах. Вроде бы уже перебрал все, но действительно, редактирование/добавление не работает, переброс на товары. И на "сайте страница не найдена". Не хочу ставить "Группу блогов"... клон блога, меня устраивает на все 100%, но что то я делаю не так( Quote Link to post Share on other sites
mishanya Posted October 23, 2015 Report Share Posted October 23, 2015 ох, вернул классы на исходные, изменил только Blog/blog на Estate/estate и Post/post на Estatepost/estatepost во всех файлах. Вроде бы уже перебрал все, но действительно, редактирование/добавление не работает, переброс на товары. И на "сайте страница не найдена". Не хочу ставить "Группу блогов"... клон блога, меня устраивает на все 100%, но что то я делаю не так( напишите в личку доступы, посмотрю Quote Link to post Share on other sites
Манифест Posted February 23, 2019 Report Share Posted February 23, 2019 Спасибо друзья))) Получилось) Создал новую страницу в админке с адресом gallery В .htaccess прописал # Галерея RewriteRule ^gallery/([^/]+)/?$ index.php?module=GalleryView&url=$1 [L,QSA] RewriteRule ^gallery/?$ index.php?module=GalleryView [L,QSA] Создал новый документ GalleryViewИ в нём написал <?PHP require_once('View.php'); class GalleryView extends View { public function fetch() { // Иначе выводим ленту блога return $this->fetch_gallery(); } // Отображение списка постов private function fetch_gallery() { $folder_gallery = "design/sushishop/images/menu/"; $gallery = $this->check_type_img(array_diff(scandir($folder_gallery), array('..', '.')), $folder_gallery); // считывание всех файлов из директории $this->design->assign('list', $gallery); // Метатеги if($this->page) { $this->design->assign('meta_title', $this->page->meta_title); $this->design->assign('meta_keywords', $this->page->meta_keywords); $this->design->assign('meta_description', $this->page->meta_description); } $body = $this->design->fetch('gallery.tpl'); return $body; } private function check_type_img($array, $path) { $allowed_extentions = array('png', 'jpg', 'jpeg'); $i = 0; foreach ($array AS $val) { if(in_array(strtolower(pathinfo($val, PATHINFO_EXTENSION)), $allowed_extentions)) { $clear_array[$i] = iconv('cp1251', 'UTF-8', $path.$val); $i++; } } return $clear_array; } } Эта строка отвечает за название шаблона в design и конечная папка откуда выводятся картинки: $folder_gallery = "design/sushishop/images/menu/"; И создал gallery.tpl с кодом {foreach $list as $pic} <img src="{$pic}"> {/foreach} Получилась такая своеобразная галерея с выводом картинок =)Может кому нибудь пригодится. Ну и буду рад услышать комментарии и отзывы о данном примере)У меня не работает Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.