Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Здравствуйте. подскажите пожалуйста как лучше организовать такую вещь как:
Мне необходимо часто загружать большое число файлов (чаще pdf) и использовать их на сайте.
Я на PHP придумал для себя удобный (как мне кажется) скрипт - когда я загружаю файл, он переименовывается (с длинного порой до упора 250 символов) в короткий хеш, загружается в папку и записывается в базу данных как ссылка на файл, хеш, название по русски.
Теперь хочу выводить файл на странице. С одной стороны я могу сделать запрос select всех файлов и добавить признак страницы , чтобы выводить только те файлы которые нужны к этой странице. Но это не совсем удобно, т.к. файлы могут быть кроссстраничными. Удобнее всего было бы использовать конкретно какой-то кусочкек (много кусочков) и вставить их по странице. аля <?php ..file1.. ?> и тп.
Или проще сделать генерацию ссылки <a href.. для каждого файла и вставлять в базу данных в текст статей?
А что, у каждой из этих страниц будет какой-то свой хедер, футер, отличающиеся от базового шаблона?Почему нельзя выводить динамический контент из базы и причём здесь 100 страниц? Можно выводить и десятки тысяч страниц правильно используя Laravel. О чём сайт? Блог? Какие модели будешь использовать? Отношения?
Возможно проговорив вопрос, я сам пойму ответ.
Сайт - школьной тематики (сайт школы).
У меня есть свой хидер и футер, далее есть шаблон страницы (всё динамическое).
Есть страницы контроллер page ../page/about ../page/elementary ../page/hightschool и тп.
У каждой страницы есть подразделы, сейчас я вижу это как:
основная страница:
../page/hightschool
её под страницы:
../page/vacant
../page/exam
И в принципе ничего плохого в этом нет, но я хотел бы иметь ссылки вида ../page/hightschool/exam
При этом к каждой странице нужно свое меню. В рамках одной страницы оно дублируется, например в hightschool меню одно, в elementary другое и на их под страницах оно соответствует основной странице.
Я вижу это через вывод case, но у меня уже таких 10 кейсов а еще не все страницы созданы..
пример кода..
<?php switch ($pagename): ?>
<?php case "about": include '_menu_about.tpl'; break; ?>
<?php case "payservice": include '_menu_about.tpl'; break; ?>
<?php case "careerguidance": include '_menu_about.tpl'; break; ?>
<?php case "education": include '_menu_education.tpl'; break; ?>
<?php case "gpd": include '_menu_primaryschool.tpl'; break; ?>
На мой взгляд тебе для начала необходимо научиться работать с шаблонизатором blade. Изучи оф. документацию + посмотри видео на Ютубе. После этого создай правильную структуру и попробуй научиться выводить свой title, description и т.п. для каждой страницы.
Спасибо, я знаю как выводить свой заголовки к каждой странице. у меня вопрос как грамотно сделать структуру..
Ибо выводить 100 страниц с одного контроллера не очень хороший вариант, нужны подразделы, подстраницы..
Добрый день.
Только начинаю знакомство с фреймворками. (ранее пользовался cms)
С простыми сайтами вопросов нет, грубо говоря контроллер новостей с двумя екшенами, и контроллер страницы.
Но сейчас встал вопрос решения более не стандартной (на мой взгляд) задачи. И я затрудняюсь в её решении.
Подскажите пожалуйста, как более грамотно решить задачу.
Есть сайт, у него есть основные разделы, к примеру:
../page/about
../page/structura
В общем ничего сложного, меню сайта храню в html и подгружаю через include. А для контента есть контроллер - PageController, с action. И я вывожу страницу по её имени из роута с запросом данных в БД.
Но в задаче появляется второй момент в каждой странице есть под страницы, по хорошему сделать роут ../page/structura/item1 item2 itemN
И у каждого item есть свое меню.
Прописывать вручную в роутах столько страниц и менюшек ни сколько не DRY метод.. как можно более менее грамотно решить задачу? Ведь для каждой страницы помимо меню нужно выводить title, description а так же еще хлебные крошки..
Относительные ссылки, их наименования сохраняются в БД, а выводить их можно в цикле в представлении при помощи foreach
Хочется изучить и освоить это)
А про способ - логично, допустим, но это не выход.. если мне надо вывести такое в два списка или в разнобой. если два списка можно найти выход а если в разнобой?
Я банально не понимаю как записать это все в базу данных.. неужели просто в text?
Посмотри проект на который я скидывал ссылку выше. Подумай. Скинь пример реального своего кода.
<p><span style="font-size:20px;"><span style="font-family:Times New Roman,Times,serif;"><a href="http://www.sh290.krsl.gov.spb.ru/VospitatlRabota/gbou_sosh_290_programma_vospitanija_na_period_s_se.pdf"><span style="color:#0000cd;"><strong>Рабочая программа воспитания и социализации обучающихся ГБОУ СОШ № 290 Санкт-Петербурга</strong></span></a><span style="color:#0000cd;"> (на период с сентября 2021 по декабрь 2025)</span></span></span></p>
<p><span style="color:#0000cd;"><span style="font-size:20px;"><span style="font-family:Times New Roman,Times,serif;"><b>Образовательные программы:</b></span></span></span></p>
<ul>
<li><span style="font-size:20px;"><span style="font-family:Times New Roman,Times,serif;"><a href="/Obrazovanie/OOP/2021-2022/oop_noo_2021-2022.pdf"><span style="color:#0000cd;">Основная образовательная программа начального общего образования</span></a></span></span></li>
<li><span style="font-size:18px;"><span style="font-family:Times New Roman,Times,serif;"><a href="/Obrazovanie/OOP/2021-2022/ann_oop_noo_2021-2022.pdf"><span style="color:#0000cd;">Аннотация к основной образовательной программе начального общего образования</span></a></span></span></li>
<li><span style="font-size:20px;"><span style="font-family:Times New Roman,Times,serif;"><a href="/Obrazovanie/OOP/2021-2022/oop_ooo_2021-2022.pdf"><span style="color:#0000cd;">Основная образовательная программа основного общего образования</span></a></span></span></li>
<li><span style="font-size:18px;"><span style="font-family:Times New Roman,Times,serif;"><u><a href="/Obrazovanie/OOP/2021-2022/ann_oop_ooo_2021-2022.pdf" target="_blank"><span style="color:#0000cd;">Аннотация к основной образовательной программе основного общего образования</span></a></u></span></span></li>
<li><span style="font-size:20px;"><span style="font-family:Times New Roman,Times,serif;"><a href="/Obrazovanie/OOP/2021-2022/oop_soo_2021-2022.pdf"><span style="color:#0000cd;">Основная образовательная программа среднего общего образования</span></a></span></span></li>
<li><span style="font-size:18px;"><span style="font-family:Times New Roman,Times,serif;"><u><a href="/Obrazovanie/OOP/2021-2022/ann_oop_soo_2021-2022.pdf" target="_blank"><span style="color:#0000cd;">Аннотация к основной образовательной программе среднего общего образования</span></a></u></span></span></li>
<li><span style="font-size:20px;"><a href="/Obrazovanie/OOP/2021-2022/aoop_noo_2021-2022.pdf"><span style="color:#0000cd;"><span style="font-family:Times New Roman,Times,serif;">Адаптированная основная образовательная программа начального общего образования для детей с ОВЗ 1-4 классы (АООП НОО) </span></span></a></span></li>
<li><span style="font-size:18px;"><span style="font-family:Times New Roman,Times,serif;"><u><a href="/Obrazovanie/OOP/2021-2022/ann_aoop_noo_2021-2022.pdf" target="_blank"><span style="color:#0000cd;">Аннотация к основной образовательной программе начального общего образования для детей с ОВЗ 1-4 классы</span></a></u></span></span></li>
<li><span style="font-size:20px;"><span style="font-family:Times New Roman,Times,serif;"><a href="http://www.sh290.krsl.gov.spb.ru/index/dopolnitelnye_obshheobrazovatelnye_obshherazvivajushhie_programmy_2021_2022_uchebnyj_god/0-671"><span style="color:#0000cd;">Дополнительные общеобразовательные общеразвивающие программы 2021-2022 учебный год</span></a></span></span></li>
</ul>
Это не мой код но нужно переносить этот сайт с ucoz. Оптимизировать количество ссылок нельзя. Т.к. должно быть вот так списком либо документы либо что то другое..
Konstantin_N
Возможно некорректно задаю вопрос..
У меня есть страница, допустим
Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum
$image$
Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum $link$
Таких несколько.
Далее:
(boostrap аккордеон)
$link$
$link$
$link$
И все возможные варианты страниц.
Мне кажется если это и можно сделать одним шаблоном то будет много @if..что-то.
PS.
Само собой header, footer, sidebar я отделил в отдельный файл.
Konstantin_N
Например есть главная страница:
@extends('layouts.app')
@section('title')Главная страница@endsection
@section('content')
Контент.
@endsection
В месте где у меня контент - это статика, то есть тут я бутстрапом прописываю текст + ссылки либо вертикальный акордеон и тп.
Для каждой страницы получается надо создавать такой шаблон как выше. А страниц предполагается много.. И хоть они статика но редактировать периодически надо.. а заглядывая на ftp..
/about.blade.php
/contacts.
/education
/gia
/documents
/information
/information/dist
ну и тп, на вскидку страниц 30.
Можно сделать, с одной стороны как новости. Один шаблон а дальше подставлять данные из БД, но как записать в БД данные страницы где страницы сильно разнятся, не только текстом, но и технологиями визуализации..
Konstantin_N
Можно наводку на нужную функцию?
Я листал но не нашел ничего похожего.
Есть инклюд, но это не то.
Добрый день.
Только начинаю осваивать Laravel, до этого был небольшой опыт с Django.
В данный момент я создаю небольшой по функционалу сайт, который можно развернуть в принципе и на CMS. Но хочется узнать что то новое и интересное.
Подскажите пожалуйста, в какую сторону мне можно "копать" или что изучить.
А вопрос вот в чем:
У меня на сайте планируется очень много статических страниц но с разным содержимым.
Например на одной странице списком только текст, на второй текст и пара картинок, на третьей список ссылок. И все это приправлено разным boostrap'ом.
Всё это можно сделать на страницах шаблонов, но тогда придется создавать очень много страниц blade вручную, а так же роутов. Например /static/page-1 /static/page-x
Можно ли как-то упростить и создать один некий шаблон, роут, чтобы все страницы были как бы статические но и динамические одновременно?
Страницы 1