Я, администратор данного сайта, являюсь вебмастером уже более 3х лет. Любой вебмастер, если он подходит к своему делу серьёзно, то создаёт не простые html странички, а старается идти дальше и пытается усложнять свою работу. Так появляются сначала простенькие функции калькулятора (калькулятор на PHP скрипте) на домашней страничке, затем на сайте появляется автоматический вывод информации на экран с помощью всё тех же написанных PHP скриптов, и так проекты постепенно усложняются по функционалу. За 3 года у меня накопилось очень много и чужих и своих PHP скриптов. Я решил, что чем они будут пылиться на компьютере, пусть ими пользуются другие - так и появилась идея создания данного сайта. Здесь в основном представлены бесплатные PHP скрипты, но есть и платные - это самые дорогие мне скрипты, над которыми проделана очень большая работа.
Пользуйтесь и на своих проектах моими скриптами:)
Php скрипт редактирования страниц сайта также необязательный его элемент. Наверняка проще и надежнее изменять и редактировать страницы на локальном компе в старом добром Dreamweaver, а затем просто переносить их на сервер посредством ftp соединения. Но поскольку раздел админпанели php сайта уже начат, то будет правильно довести его до логического конца, во всяком случае хотя-бы основные ее элементы. Проект нашего динамического сайта построен очень гибко с точки зрения формирования собственно страниц сайта. Упор сделан на максимальное удобство их написания. Поэтому страницы имеют обычное расширение .html, а управляет загрузкой страниц в шаблон простейший шаблонизатор в паре с соответствующим php скриптом который и загружает нужную страницу в шаблон в нужное место. Вообщем сколько страниц столько и php скриптов загружчиков. В простейшем случае вообще можно в самом скрипте загружчике и писать текст самой страницы. Но, как уже обсуждалось в самом начале раздела пошагового создания сайта на php это сразу лишит юзера многих выгод. Поэтому наш комплексный подход к проекту облегчает жизнь не только сайтостроителю, но и самому движку сайта. Скрипты загружчики в основном повторяющие названия файлов самих страниц ведь могут выполнять еще много дополнительных функций, как например постройка графики, статистики, да и элементы администрирования. И разделение проекта на шаблон, шаблонизатор, элементарные движки и сами .html страницы только на пользу всего php движка.
Теперь с точки зрения администрирования, тоесть редактирования страниц сайта, коечно-же полезно будет предусмотреть возможность редактирования не только самих html страниц, но php движков приданных к ним, а также страниц мета ключевиков и описаний. На базе всего выше описанного админка с редактированием страниц ничего особенного из себя не представляет. Для редактирования той или иной страницы необходимо, после входа в админку просто ее открыть и перейти по ссылке ее редактирования, которая откроет ее еще и в форме редактирования из которой открытую страницу можно просто перезаписать. Вот и вся музыка. Ниже по тексту небольшой участок такого php скрипта.
<?php
//--------------------------------------------------------------------------------
// Редактирование страниц сайта
if($submit == 'Сохранить php')
{
$tmpphp = PHPPAGES."$PageName.php";
// положить отредактированный файл на свое место без обратных слэшей
file_put_contents("$tmpphp", stripslashes($messagephp), LOCK_EX);
}
elseif($submit == 'Сохранить html')
{
$tmphtml = HTMLPAGES."$PageName.html";
file_put_contents("$tmphtml", $messagehtml, LOCK_EX);
}
elseif($submit == 'Сохранить meta')
{
$tmpmeta = HTMLMETAPAGES."$PageName"."_meta.html";
file_put_contents("$tmphtml", $messagemeta, LOCK_EX);
}
$textphp = file_get_contents(PHPPAGES."$PageName.php");
$texthtml = file_get_contents(HTMLPAGES."$PageName.html");
$textmeta = file_get_contents(HTMLMETAPAGES."$PageName"."_meta.html");
// Формирование запрошенной страницы
include (PHPPAGES."$PageName.php");
//--------------------------------------------------------------------------------
?>
Для того, чтобы проследить все действия выполняемые в скрипте редактирования страниц сайта на практике, нужно заменить предыдущий скрипт проекта на новый, выполнив не только полную синхронизацию, но и команду put. Далее необходимо запустить локальный сервер, набрать в браузере mysitephp.ru, войти в админпалель (логин -login, пароль - pass) и проверить в работе проект со скриптом редактирования страниц сайта на борту.
Php скрипт редактирования рекламных блоков почти один к одному должен быть похож на скрипт редактирования страниц сайта. Чтобы выяснить, что это должно быть именно так необходимо выяснить как-же в нашем проекте можно размещать рекламные блоки в выбранных местах шаблона. Это несложно. Поскольку большинство рекламных скриптов написаны на яве, то достаточно всего-лишь поместить скрипт в нужное место шаблона, как он заработает сразу после загрузки шаблона в браузер. Но такой путь будет ошибочен, поскольку редактирование рекламных блоков будет предполагать редактирование самого шаблона, что нам совершенно ни к чему. Само собой напрашивается выход. Ява, или любые другие в том числе и php блоки рекламы записывать в отдельные файлы, которые подгружать в шаблон, каждый в нужное выбранное место, а лучше вообще разместить все рекламные блоки в оди файл, который кстати затем можно изменять и редактировать непосредственно из админпанели. Ниже и представлен небольшой скрипт содержащий заготовки рекламных блоков.
<?php
/*
// поиск по сайту от Google
$googlesearch=<<<gsearch
<div class='reklams_468'>
<img height=60 width=468 alt="Я скрипт поиска по сайту живу в php/ad.php">
</div>
gsearch;
*/
// горизонтальный баннер от Google
$add_468_60=<<<gorizont
<img height=60 width=468 alt="Я баннер 468*60, живу в php/ad.php">
gorizont;
// вертикальный баннер от Google
$add_120_600=<<<right
<img height=600 width=120 alt="Я баннер 120*600, живу в php/ad.php">
right;
// вертикальный баннер от Google
$add_120_90=<<<left
<img height=90 width=120 alt="Я баннер 120*90, живу в php/ad.php">
left;
?>
Работу и редактирование скрипта в составе нашего проэкта php сайта можно проследить на базе самого обновленного проекта. Далее, как обычно необходимо выполнить не только полную синхронизацию, но и команду put. Далее запускаем локальный сервер, набраем в браузере mysitephp.ru, входим в админпалель (логин -login, пароль - pass) и проверяем на практике все, что описано выше.
Php скрипт добавления и редактирования разделов главного меню сайта наверняка будет одним из основных скриптов админпанели. На первых порах он должен выполнять функции формирования новых и редактирования существующих разделов рубрик php меню. В дальнейшем этот php скрипт обязан будет выполнять и функцию формирования дефолтовых страниц разделов и страниц их мета описания с последующим их редактированием. Ниже представлена одна из частей скрипта отвечающая за добавление новых разделов в выбранных рубриках. Все управление в этой части осуществляется в админпанели путем выбора действия по соответствующей ссылке на странице редактирования меню.
<?php
//----------------------------------------------------------------------------
// Изменения и удаления в меню
if($design == 'удалить' or $design == 'изменить')
{
$cont2 = str_replace (" ","_",$cont2);
if(preg_match ("~[а-яА-Я]~",$cont2))
{
$error = 'yes';
$text_admin = "<b>Ошибка:</b> в ссылках не должно быть русских букв!!!<br>\n";
}
if ($error != 'yes' and $ParName[1] == 'rub')
{
$general = @file ($general_file);
$lines = count($general);
$fp = @fopen($general_file,'w');
for ($i=0; $i< $lines; $i++)
{
list($menu_link,$menu_name,$menu_title)=explode("::", $general[$i]);
if($cont_abs2 == $menu_link)
{
if($design == 'изменить')
{
@fwrite ($fp,"$cont2::$cont3::$cont4::\n");
}
}
else{@fwrite ($fp,$general[$i]);}
}
@fclose ($fp);
}
elseif ($error != 'yes' and $ParName[1] == 'part')
{
$general = @file ($general_file);
$lines = count($general);
$fp = @fopen($general_file,'w');
for ($i=0; $i< $lines; $i++)
{
list($menu_link,$menu_name,$menu_title,$menu_file)=explode("::", $general[$i]);
$arrln=explode("_",$menu_link);
$cntln = count ($arrln);
$cont5 = $arrln[$cntln - 1];
$cfl = $cont5;
$cont5 = "data/"."$cont5.dat";
if($cont_abs2 == $menu_link)
{
$tmphtml = HTMLPAGES."$cfl.html";
$tmphtmlmeta = HTMLMETAPAGES."$cfl"."_meta.html";
$tmpphp = PHPPAGES."$cfl.php";
// удаление файлов данных и страниц
if(@file_exists($cont5)){ unlink($cont5); }
if(@file_exists($tmphtml)){ unlink($tmphtml); }
if(@file_exists($tmphtmlmeta)){ unlink($tmphtmlmeta); }
if(@file_exists($tmpphp)){ unlink($tmpphp); }
if($design == 'изменить')
{
@fwrite ($fp,"$cont2::$cont3::$cont4::$cont5::\n");
// пересоздать файл .html страницы раздела
touch("$tmphtml");
// пересоздать файл .html мета описания страницы раздела
touch("$tmphtmlmeta");
// пересоздать файл .php страницы раздела
touch("$tmpphp");
// пересоздать файл для разделов редактируемой рубрики
touch("$cont5");
}
}
else{@fwrite ($fp,$general[$i]);}
}
@fclose ($fp);
}
}
//----------------------------------------------------------------------------
?>
Для того, чтобы проследить все действия выполняемые в скрипте добавления и редактирования разделов меню сайта на практике, нужно заменить предыдущий скрипт проекта на новый, выполнив не только полную синхронизацию, но и команду put, которая описана на этой странице данного раздела. Далее необходимо запустить локальный сервер, набрать в браузере mysitephp.ru, войти в админпалель (логин -login, пароль - pass) и проверить в работе проект со скриптом добавления и редактирования рубрик и разделов на борту. Кроме всего прочего обновленный проект имеет некоторые изменения в основных php файлах, касающиеся его корректной работы на php5, которые можно проследить в комментариях, сравнив с предыдущим. В частности обновлен скрипт популярности страниц, который теперь может показывать популярные посещенные страницы не в пооизвольном порядке, а в порядке снижения их популярности. В дальнейшем планируется сделать последний штрих в этом php скрипте - управление из .ini файла количеством отображаемых страниц популярности за определенный период времени.