SimplePage - Visavi.net https://visavi.net/ RSS - Visavi.net https://visavi.net/assets/img/images/logo_small.png RSS - Visavi.net https://visavi.net/ [email protected] (admin) [email protected] (admin) Thu, 28 Nov 2024 21:57:30 +0300 <strong>Муз-ТВ</strong>, я раньше тоже думал, что все должно быть строго &quot;кошерно&quot;, но со временем все больше и больше понимаешь - задачи нужно решать так, чтобы и клиент оставался доволен, и самому руки марать не пришлось. Вот 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 Avilon Thu, 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 Don Sat, 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"> { &quot;name&quot;&#58; &quot;MyProject&quot;, &quot;type&quot;&#58; &quot;project&quot;, &quot;require&quot;&#58; { &quot;michelf/php-markdown&quot;&#58; &quot;*&quot; } } </pre> <br> Выполните команду в консоли (если у вас установлен composer):<br> <br> <pre class="prettyprint"> composer install </pre> <br> После создайте ваш плагин <em>_plugins/mk.php</em>:<br> <br> <pre class="prettyprint"> &lt;?php function markdown($content){ return Michelf\Markdown&#58;&#58;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"> &lt;?php return &#91; &#039;plugins&#039; =&gt; &#91; &#039;vendor/autoload.php&#039;, // Для загрузки зависимостей &#039;_plugins/mk.php&#039;, // Для загрузки плагина ], &#039;layout&#039; =&gt; &#039;_layout/default.html&#039;, &#039;title&#039; =&gt; &#039;Мой сайт&#039;, ]; </pre> <br> Плагин подключен, теперь можно использовать его на всех страницах проекта, но мы изменим с его помощью только страницу &quot;О проекте&quot;, для этого отредактируем <em>about/index.php</em>:<br> <br> <pre class="prettyprint"> &lt;?php $sp = &#91;&#039;render&#039; =&gt; &#039;markdown&#039;, &#039;title&#039; =&gt; &#039;О проекте&#039;]; include(&#039;../sp.php&#039;); ?&gt; # О проекте Мой очень хороший проект </pre> <br> <em><span style="font-size:x-small">Добавлено через 02:26 сек.</span></em><br> Под лендинги и сайты, думаю, подойдет просто идеально, если нужно что то посложнее, можно использовать такую схему:<br> <br> <pre class="prettyprint"> &lt;?php include(&#039;sp.php&#039;); // Контроллер страницы $db = $sp&#91;&#039;database&#039;]; $rows = $db-&gt;query(...); ?&gt; &lt;!-- Шаблон --&gt; &lt;ul&gt; &lt;?php foreach($rows as $row); ?&gt; &lt;li&gt;&lt;?= $row&#91;&#039;val&#039;] ?&gt;&lt;/li&gt; &lt;?php endforeach; ?&gt; &lt;/ul&gt; </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"> &lt;?php return &#91; &#039;layout&#039; =&gt; &#039;_layout/default.html&#039;, &#039;title&#039; =&gt; &#039;Мой сайт&#039;, ]; </pre> <br> Если вы перезагрузите страницу сайта то увидите, что Title изменился. Теперь необходимо задать новый Title странице <em>/about</em>, для этого изменим ее следующим образом:<br> <br> <pre class="prettyprint"> &lt;?php $sp = &#91;&#039;title&#039; =&gt; &#039;О проекте&#039;]; include(&#039;../sp.php&#039;); ?&gt; &lt;h1&gt;О проекте&lt;/h1&gt; &lt;p&gt;Мой очень хороший проект&lt;/p&gt; </pre> <br> После перехода на страницу <em>/about</em> вы увидите, что ее Title кастомизировался.<br> <br> <strong>Совет:</strong> если вам нужно изменить Title всем страницам в каталоге, добавьте в этот каталог файл <em>sp.php</em> следующего содержания:<br> <br> <pre class="prettyprint"> &lt;?php $sp = &#91;&#039;title&#039; =&gt; &#039;Заголовок для всех страниц каталога&#039;]; include(&#039;../sp.php&#039;); </pre> <br> После чего вы можете подключать этот файл к страницам каталога вместо корневого файла <em>sp.php</em>:<br> <br> <pre class="prettyprint"> &lt;?php include(&#039;sp.php&#039;) ?&gt; &lt;h1&gt;О проекте&lt;/h1&gt; &lt;p&gt;Мой очень хороший проект&lt;/p&gt; </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&#58; silver; } </pre> <br> Создайте файл <em>_layout/default.html</em> следующего содержания:<br> <br> <pre class="prettyprint"> &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;&lt;?= $title ?&gt;&lt;/title&gt; &lt;meta charset=&quot;utf-8&quot; /&gt; &lt;link href=&quot;/css/style.css&quot; rel=&quot;stylesheet&quot;&gt; &lt;/head&gt; &lt;body&gt; &lt;?= $content ?&gt; &lt;/body&gt; &lt;/html&gt; </pre> <br> Это будет обертка для страниц вашего сайта.<br> <br> Теперь необходимо указать системе использовать эту обертку. Для этого создайте файл config.php со следующим содержимым:<br> <br> <pre class="prettyprint"> &lt;?php return &#91; &#039;layout&#039; =&gt; &#039;_layout/default.html&#039;, ]; </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"> &lt;?php include(&#039;../sp.php&#039;) ?&gt; &lt;h1&gt;О проекте&lt;/h1&gt; &lt;p&gt;Мой очень хороший проект&lt;/p&gt; </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"> &lt;?php include(&#039;sp.php&#039;) ?&gt; &lt;h1&gt;Hello world&lt;/h1&gt; &lt;p&gt; Моя главная страница &lt;a href=&quot;/about&quot;&gt;проекта&lt;/a&gt; &lt;p&gt; </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"> &lt;?php // Шаблонизатор function template($path, array $assign = &#91;]){ extract($assign); ob_start(); include($path); return ob_get_clean(); } // Загрузка контейнера $sp = isset($sp)? $sp &#58; &#91;]; if(is_readable(__DIR__ . &#039;/config.php&#039;)){ $sp = array_merge(include(__DIR__ . &#039;/config.php&#039;), $sp); } // Загрузка плагинов if(isset($sp&#91;&#039;plugins&#039;])){ foreach($sp&#91;&#039;plugins&#039;] 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) &amp;&amp; isset($sp&#91;&#039;error&#039;])){ return call_user_func($sp&#91;&#039;error&#039;], $error, $content, $sp); } // Рендеринг страницы if(isset($sp&#91;&#039;render&#039;])){ $content = call_user_func($sp&#91;&#039;render&#039;], $content, $sp); } // Подключение layout if(isset($sp&#91;&#039;layout&#039;])){ $content = template($sp&#91;&#039;layout&#039;], &#91; &#039;title&#039; =&gt; isset($sp&#91;&#039;title&#039;])? $sp&#91;&#039;title&#039;] &#58; &#039;SimplePage&#039;, &#039;content&#039; =&gt; $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"> &lt;?php include(&#039;sp.php&#039;) ?&gt; &lt;h1&gt;Hello world&lt;/h1&gt; &lt;p&gt;Моя главная страница&lt;p&gt; </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