RomanMedvedev Опубликовано 10 июля, 2015 Жалоба Поделиться Опубликовано 10 июля, 2015 Есть блог, на него выводится та информация, которая указывается в blog.tpl.Как реализовать такую же штуку, только например с названием gallery, что бы можно было вывести страницу через код? В общем подобие страницы блога. Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 10 июля, 2015 Жалоба Поделиться Опубликовано 10 июля, 2015 Продублировать все, что связано с Блогом. Начиная от таблицы в базе до шаблона и админки.Только с другим именем. Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 10 июля, 2015 Жалоба Поделиться Опубликовано 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 запись для копии блога. Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 10 июля, 2015 Жалоба Поделиться Опубликовано 10 июля, 2015 Kosjak76 и mishanya! Ребята, и не стыдно Вам такие советы давать? Дублировать кучу кода на каждый чих - это же и нерационально и непрофессионально... Куда проще так:1. В админ на странице поста блога завести новое поле - Группа блога.2. А дальше как обычно по адресу /blog выводить одну группу, по адресу /gallery - вторую. Потребуются маленькие изменения в .htaccess, view/BlogView.php, api/Blog.php.Причем так легко можно и третью группу завести, и четвертую... А у Вас - на третью группу опять дублировать горы кода? Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 10 июля, 2015 Жалоба Поделиться Опубликовано 10 июля, 2015 Да, согласен, так действительно рациональнее.Но в качестве обучения и для лучшего понимания структуры движка - такой опыт совсем не повредит. Цитата Ссылка на сообщение Поделиться на другие сайты
RomanMedvedev Опубликовано 10 июля, 2015 Автор Жалоба Поделиться Опубликовано 10 июля, 2015 (изменено) Спасибо друзья))) Получилось) Создал новую страницу в админке с адресом 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} Получилась такая своеобразная галерея с выводом картинок =)Может кому нибудь пригодится.Ну и буду рад услышать комментарии и отзывы о данном примере) Изменено 10 июля, 2015 пользователем RomanMedvedev Цитата Ссылка на сообщение Поделиться на другие сайты
RomanMedvedev Опубликовано 10 июля, 2015 Автор Жалоба Поделиться Опубликовано 10 июля, 2015 (изменено) А если в 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 галереи) Останется дело только за дизайном) Изменено 10 июля, 2015 пользователем RomanMedvedev Цитата Ссылка на сообщение Поделиться на другие сайты
Goodwen Опубликовано 22 октября, 2015 Жалоба Поделиться Опубликовано 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"... Подскажите где капать? Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 22 октября, 2015 Жалоба Поделиться Опубликовано 22 октября, 2015 Ну что то еще вы пропустили: simpla/design/html/manager.tpl и даже после этого "Permission denied"... Подскажите где капать? simpla/IndexAdmin.php Цитата Ссылка на сообщение Поделиться на другие сайты
Goodwen Опубликовано 22 октября, 2015 Жалоба Поделиться Опубликовано 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; ...................... и теперь, при клике на кнопку "Добавить запись" меня перебрасывает на товары((( а может дело и не в классах? Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 22 октября, 2015 Жалоба Поделиться Опубликовано 22 октября, 2015 (изменено) точно, спасибо! Но, еще один косяк выплыл, я изменил в 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 еще проверьте првильно ли классы названы (редактирование/добавления ). перебрасывает на страницу товаров как раз из-за этого. Изменено 22 октября, 2015 пользователем mishanya Цитата Ссылка на сообщение Поделиться на другие сайты
Goodwen Опубликовано 22 октября, 2015 Жалоба Поделиться Опубликовано 22 октября, 2015 тут забыли __estate b еще проверьте првильно ли классы названы (редактирование/добавления ). перебрасывает на страницу товаров как раз из-за этого. ох, вернул классы на исходные, изменил только Blog/blog на Estate/estate и Post/post на Estatepost/estatepost во всех файлах. Вроде бы уже перебрал все, но действительно, редактирование/добавление не работает, переброс на товары. И на "сайте страница не найдена". Не хочу ставить "Группу блогов"... клон блога, меня устраивает на все 100%, но что то я делаю не так( Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 23 октября, 2015 Жалоба Поделиться Опубликовано 23 октября, 2015 ох, вернул классы на исходные, изменил только Blog/blog на Estate/estate и Post/post на Estatepost/estatepost во всех файлах. Вроде бы уже перебрал все, но действительно, редактирование/добавление не работает, переброс на товары. И на "сайте страница не найдена". Не хочу ставить "Группу блогов"... клон блога, меня устраивает на все 100%, но что то я делаю не так( напишите в личку доступы, посмотрю Цитата Ссылка на сообщение Поделиться на другие сайты
Манифест Опубликовано 23 февраля, 2019 Жалоба Поделиться Опубликовано 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} Получилась такая своеобразная галерея с выводом картинок =)Может кому нибудь пригодится. Ну и буду рад услышать комментарии и отзывы о данном примере)У меня не работает Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.