SimplePage - Visavi.net
https://visavi.net/
RSS - Visavi.nethttps://visavi.net/assets/img/images/logo_small.pngRSS - Visavi.net
https://visavi.net/
[email protected] (admin)[email protected] (admin)Thu, 28 Nov 2024 21:57:30 +0300<strong>Муз-ТВ</strong>, я раньше тоже думал, что все должно быть строго "кошерно", но со временем все больше и больше понимаешь - задачи нужно решать так, чтобы и клиент оставался доволен, и самому руки марать не пришлось. Вот SimplePage примерно из то же оперы.
https://visavi.net/topics/43525/696002
SimplePage АртурThu, 04 May 2017 17:52:51 +0300Сообщенияhttps://visavi.net/topics/43525/696002Весьма интересно и познавательно. Возьму себе на заметку.
https://visavi.net/topics/43525/696001
SimplePage AvilonThu, 04 May 2017 17:49:25 +0300Сообщенияhttps://visavi.net/topics/43525/696001Странно видеть в 2017 фреймворк в таком стиле, да еще и от Башки.
https://visavi.net/topics/43525/696000
SimplePage АлександрThu, 04 May 2017 17:46:59 +0300Сообщенияhttps://visavi.net/topics/43525/696000О движке <a href="https://habrahabr.ru/post/328002" target="_blank" rel="nofollow">на хабре</a>
https://visavi.net/topics/43525/695999
SimplePage АртурThu, 04 May 2017 17:18:57 +0300Сообщенияhttps://visavi.net/topics/43525/695999Спасибо, у тебя как всегда все самое интересное +
https://visavi.net/topics/43525/695549
SimplePage DonSat, 01 Apr 2017 23:22:15 +0300Сообщенияhttps://visavi.net/topics/43525/695549<strong>Плагины</strong><br>
Система никак не ограничивает возможности языка. Чтобы это показать, давайте реализуем возможности блога с единственным автором на базе синтаксиса Markdown. В первую очередь подключим механизм рендеринга этого языка. Я рекомендую для загрузки внешних зависимостей использовать Composer. Создайте файл <em>composer.json</em> в корне проекта:<br>
<br>
<pre class="prettyprint">
{
"name": "MyProject",
"type": "project",
"require": {
"michelf/php-markdown": "*"
}
}
</pre>
<br>
Выполните команду в консоли (если у вас установлен composer):<br>
<br>
<pre class="prettyprint">
composer install
</pre>
<br>
После создайте ваш плагин <em>_plugins/mk.php</em>:<br>
<br>
<pre class="prettyprint">
<?php
function markdown($content){
return Michelf\Markdown::defaultTransform($content);
}
</pre>
<br>
<div class="spoiler">
<b class="spoiler-title">Структура проекта</b>
<div class="spoiler-text" style="display: none;"><pre class="prettyprint">
/
_layout/
default.html
_plugins/
mk.php
vendor/
css/
style.css
about/
index.php
sp.php
config.php
index.php
</pre></div>
</div>
<br>
Теперь необходимо подключить плагин к проекту. Для этого измените <em>config.php</em>:<br>
<br>
<pre class="prettyprint">
<?php
return [
'plugins' => [
'vendor/autoload.php', // Для загрузки зависимостей
'_plugins/mk.php', // Для загрузки плагина
],
'layout' => '_layout/default.html',
'title' => 'Мой сайт',
];
</pre>
<br>
Плагин подключен, теперь можно использовать его на всех страницах проекта, но мы изменим с его помощью только страницу "О проекте", для этого отредактируем <em>about/index.php</em>:<br>
<br>
<pre class="prettyprint">
<?php
$sp = ['render' => 'markdown', 'title' => 'О проекте'];
include('../sp.php');
?>
# О проекте
Мой очень хороший проект
</pre>
<br>
<em><span style="font-size:x-small">Добавлено через 02:26 сек.</span></em><br>
Под лендинги и сайты, думаю, подойдет просто идеально, если нужно что то посложнее, можно использовать такую схему:<br>
<br>
<pre class="prettyprint">
<?php
include('sp.php');
// Контроллер страницы
$db = $sp['database'];
$rows = $db->query(...);
?>
<!-- Шаблон -->
<ul>
<?php foreach($rows as $row); ?>
<li><?= $row['val'] ?></li>
<?php endforeach; ?>
</ul>
</pre>
<br>
Страницы получаются более структурированны (вверху контроллер, внизу шаблон) и крайне гибкими (можно сделать все, что позволяет PHP).<br>
<br>
<em><span style="font-size:x-small">Добавлено через 00:51 сек.</span></em><br>
Все описанное в данной теме прикрепляю в виде архива.<br>
<br>
Может кому пригодиться ) Лицензировать не буду, делайте с кодом что хотите, считайте учебным проектом.
https://visavi.net/topics/43525/695546
SimplePage АртурSat, 01 Apr 2017 21:19:55 +0300Сообщенияhttps://visavi.net/topics/43525/695546<strong>Установка Title страницам</strong><br>
Контейнер (конфигурация) системы может быть дополнена на уровне любой станицы. Мы используем это правило для установки Title страницам сайта. Для начала добавим глобальное значение <em>title</em> всем страницам. Для этого поменяем файл <em>config.php</em> следующим образом:<br>
<br>
<pre class="prettyprint">
<?php
return [
'layout' => '_layout/default.html',
'title' => 'Мой сайт',
];
</pre>
<br>
Если вы перезагрузите страницу сайта то увидите, что Title изменился. Теперь необходимо задать новый Title странице <em>/about</em>, для этого изменим ее следующим образом:<br>
<br>
<pre class="prettyprint">
<?php
$sp = ['title' => 'О проекте'];
include('../sp.php');
?>
<h1>О проекте</h1>
<p>Мой очень хороший проект</p>
</pre>
<br>
После перехода на страницу <em>/about</em> вы увидите, что ее Title кастомизировался.<br>
<br>
<strong>Совет:</strong> если вам нужно изменить Title всем страницам в каталоге, добавьте в этот каталог файл <em>sp.php</em> следующего содержания:<br>
<br>
<pre class="prettyprint">
<?php
$sp = ['title' => 'Заголовок для всех страниц каталога'];
include('../sp.php');
</pre>
<br>
После чего вы можете подключать этот файл к страницам каталога вместо корневого файла <em>sp.php</em>:<br>
<br>
<pre class="prettyprint">
<?php include('sp.php') ?>
<h1>О проекте</h1>
<p>Мой очень хороший проект</p>
</pre>
https://visavi.net/topics/43525/695545
SimplePage АртурSat, 01 Apr 2017 21:19:17 +0300Сообщенияhttps://visavi.net/topics/43525/695545<strong>Layout</strong><br>
Подключим <em>css</em> к вашему сайта. Создайте файл <em>css/style.css в</em> корне вашего проекта и добавьте в него следующий стиль:<br>
<br>
<pre class="prettyprint">
h1 {
color: silver;
}
</pre>
<br>
Создайте файл <em>_layout/default.html</em> следующего содержания:<br>
<br>
<pre class="prettyprint">
<!DOCTYPE html>
<html>
<head>
<title><?= $title ?></title>
<meta charset="utf-8" />
<link href="/css/style.css" rel="stylesheet">
</head>
<body>
<?= $content ?>
</body>
</html>
</pre>
<br>
Это будет обертка для страниц вашего сайта.<br>
<br>
Теперь необходимо указать системе использовать эту обертку. Для этого создайте файл config.php со следующим содержимым:<br>
<br>
<pre class="prettyprint">
<?php
return [
'layout' => '_layout/default.html',
];
</pre>
<br>
<div class="spoiler">
<b class="spoiler-title">Структура проекта</b>
<div class="spoiler-text" style="display: none;"><pre class="prettyprint">
/
_layout/
default.html
css/
style.css
sp.php
config.php
index.php
</pre></div>
</div>
<br>
После перезагрузки страницы в браузере вы увидите обновленный дизайн.<br>
<br>
<em><span style="font-size:x-small">Добавлено через 00:42 сек.</span></em><br>
<strong>Еще одна страница с ЧПУ</strong><br>
Предположим вам необходимо добавить на сайт страницу с описанием проекта, не нарушая принципов ЧПУ. Для этого создайте файл <em>about/index.php</em> следующего содержания:<br>
<br>
<pre class="prettyprint">
<?php include('../sp.php') ?>
<h1>О проекте</h1>
<p>Мой очень хороший проект</p>
</pre>
<br>
<div class="spoiler">
<b class="spoiler-title">Структура проекта</b>
<div class="spoiler-text" style="display: none;"><pre class="prettyprint">
/
_layout/
default.html
css/
style.css
about/
index.php
sp.php
config.php
index.php
</pre></div>
</div>
<br>
Добавьте на главной странице сайта (<em>index.php</em>) ссылку на эту страницу:<br>
<pre class="prettyprint">
<?php include('sp.php') ?>
<h1>Hello world</h1>
<p>
Моя главная страница <a href="/about">проекта</a>
<p>
</pre>
<br>
Теперь у вас появилась новая страница на сайте, перезагрузите браузер и перейдите на нее.
https://visavi.net/topics/43525/695544
SimplePage АртурSat, 01 Apr 2017 21:17:56 +0300Сообщенияhttps://visavi.net/topics/43525/695544<em>Делал проект для развлечения, но возможно кому то пригодиться, ибо очень прост в освоении, но при этом достаточно удобен и гибок.</em><br>
<br>
<strong>Задача:</strong><br>
Простая и расширяемая система управления контентом, без ограничений на язык.<br>
<br>
<strong>Решение:</strong><br>
Немного инфы чтоб было понятнее:<br>
<ul><li>В систему изначально включено: layout, обработка ошибок, менеджер плагинов</li></ul><br>
<ul><li>Система использует возможности веб-сервера для роутинга запросов</li></ul><br>
<ul><li>Система работает на голом PHP и если немного подправить, то практически любой версии</li></ul><br>
<br>
Система представляет единственный файл следующего содержания:<br>
<pre class="prettyprint">
<?php
// Шаблонизатор
function template($path, array $assign = []){
extract($assign);
ob_start();
include($path);
return ob_get_clean();
}
// Загрузка контейнера
$sp = isset($sp)? $sp : [];
if(is_readable(__DIR__ . '/config.php')){
$sp = array_merge(include(__DIR__ . '/config.php'), $sp);
}
// Загрузка плагинов
if(isset($sp['plugins'])){
foreach($sp['plugins'] as $plugin){
include($plugin);
}
}
ob_start();
register_shutdown_function(function() use($sp){
$content = ob_get_contents();
ob_end_clean();
// Обработка ошибок
$error = error_get_last();
if(is_array($error) && isset($sp['error'])){
return call_user_func($sp['error'], $error, $content, $sp);
}
// Рендеринг страницы
if(isset($sp['render'])){
$content = call_user_func($sp['render'], $content, $sp);
}
// Подключение layout
if(isset($sp['layout'])){
$content = template($sp['layout'], [
'title' => isset($sp['title'])? $sp['title'] : 'SimplePage',
'content' => $content,
]);
}
echo $content;
});
</pre>
<br>
Далее я распишу возможности системы и процесс ее установки.<br>
<br>
<em><span style="font-size:x-small">Добавлено через 01:13 сек.</span></em><br>
<strong>Установка</strong><br>
Система работает на любом веб-сервере, поддерживающим PHP. Для установки необходимо переместить код системы в файл <em>sp.php</em> корня сайта. На этом все, система готова к работе. Правда она пока ничего не умеет. <br>
<br>
<div class="spoiler">
<b class="spoiler-title">Структура проекта</b>
<div class="spoiler-text" style="display: none;"><pre class="prettyprint">
/
sp.php
</pre></div>
</div>
<br>
<strong>Hello world</strong><br>
Создайте файл index.php в корне сайта со следующим содержанием:<br>
<pre class="prettyprint">
<?php include('sp.php') ?>
<h1>Hello world</h1>
<p>Моя главная страница<p>
</pre>
<br>
<div class="spoiler">
<b class="spoiler-title">Структура проекта</b>
<div class="spoiler-text" style="display: none;"><pre class="prettyprint">
/
sp.php
index.php
</pre></div>
</div>
<br>
Откройте браузер и перейдите на ваш сайт: <a href="http://your-site.com" target="_blank" rel="nofollow">http://your-site.com</a> - вы увидите вашу главную страницу.
https://visavi.net/topics/43525/695543
SimplePage АртурSat, 01 Apr 2017 21:16:02 +0300Сообщенияhttps://visavi.net/topics/43525/695543