<b>FAQ по CMS PHP-Fusion</b>
<u><b>О системе.</b></u>
Система PHP-Fusion использует базу данных mySQL, где хранит все содержимое Вашего сайта, и предоставляет простую и наглядную систему администрирования. PHP-Fusion обладает полным набором функций, необходимых любой CMS.
<u><b>Установка.</b></u>
1. Загрузите содержимое каталога php-files на ваш сервер.
2. Установите CHMOD следующих файлов и каталогов в 777:
- administration/db_backups/
- images/
- images/imagelist.js
- images/articles/
- images/avatars/
- images/news/
- images/news_cats/
- images/photoalbum/
- forum/attachments/
- config.php
3. Идите на ваш сайт и запустите setup.php, например, <a href="http://www.yourdomain.com/setup.php" target="_blank">http://www.yourdomain.com/setup.php</a>.
4. Завершите установку, следую инструкциям установщика.
5. Верните CHMOD config.php обратно в 644 и удалите setup.php с вашего сервера в целях безопасности.
CMS установлена давайте посмотрим как она работает:
<u><b>Общая схема сайта</b></u>
Начнем с самой общей информации: сайт на основе PHP-Fusion состоит из пяти основных частей: заголовка (header), левой и правой части (left & right side), подвала (footer) и центральной части, находящейся по середине между четырьмя остальными.
В состав заголовка входит все, что вы видите на странице от самого верха и до строчки со ссылками и датой, включительно. Подвал это пространство внизу сайта, где содержатся копирайты и встроенный счетчик. Левая и правая часть - это узкие квертикальные колонки по бокам, содержащие панели, (Небольшие таблички сходного вида, но каждая со своим заголовком, содержимым и предназначением. Например панель "Навигация", панель "Мини-чат") расположенные одна под другой.
Не множко разобравшись как устроена CMS, попробуем создать свою панель.
<u><b>Своя панель, как?!</b></u>
Есть 2 способа создания панелей, можно создать php файл, сохранить его в папке infusions предворительно вставив в файл один из перечисленных вариантов панели.
<b>Внимание:</b> Панель в таком случае будет работать если php файл будет помещен предворительно в папку с таким же названием, и в конце название будет слово _panel
Например мы создадим файл example_panel.php
Его нужно будет поместить так: infusions/example_panel/example_panel.php
Есть и другой более легкий способ создания панели, через администрирование.
Заходим в админку=> Панели=> Создать новую панель - и в окне вписываем нужный вам код.
<b>Обычная панель</b>
openside("Название панели");
// контент
closeside();
<b>Открытая панель (можно закрывать)</b>
opensidex("Название панели");
// контент
closesidex();
<b>Закрытая панель (можно открывать)</b>
opensidex("Название панели","off");
// контент
closesidex();
<u><b>Скрытые блоки в PHP-Fusion</b></u>
Что это и с чем его кушают!
Возможно вы встречали где нибудь в интернете на других сайтах "прибомбасину", когда нажимая на ссылку в этом же окне открывается блок, с дополнительной информацией. При этом странница не перезагружается и вы ничего не закачиваете.
В этом виноваты новые интернет технологии, и конечно же инженерная мысль программистов.
Разберёмся как это работает!
Делается JavaScript(JS), почти такой же как работает на Fusion, скрывающий панели. На определенную команду, которую мы указываем вместе с ссылкой < a href…>< /a> выполняется сценарий JS, который меняет стиль на наш скрытый блок.
Другими словами, нажимая на ссылку мы меняем стиль нашего блока на скрытый/видимый
Итак начнем создавать нечто подобное для PHP-Fusion.
<b>Вставим в файл */includes/jscript.js в самом конце следующее:</b>
var id_form_focus=false;
function Hide_Message(){
document.getElementById("message_div").style.left=-300;
document.getElementById("message_div").style.top=-300;
}
function getKeyDown(ev) {
if(document.implementation && document.implementation.createDocument){
var data='';
form=document.getElementById(id_form_focus);
if(form && ev.charCode==115 && ev.ctrlKey) {
ev.preventDefault();
do_quick_save(id_form_focus);
return false;
}
}else{
if (window.event.keyCode==83 && window.event.ctrlKey && id_form_focus) {
do_quick_save(id_form_focus);
return false;
}
}
}
if(window.addEventListener) {
window.addEventListener('keypress', getKeyDown, true);
}
else document.onkeydown = getKeyDown;
Это позволит нам использовать сценарий для того чтобы то и дело прятать и показывать наш блок.
Далее необходимо подготовить наш блок и ссылку, по которой будет вызываться наш скрытый блок.
<b>Делаем ссылку</b>
echo "< a style=\"cursor: pointer\" onClick=\"if(document.getElementById('***').style.display=='none') document.getElementById('***').style.display='block'; else document.getElementById('***').style.display='none';\">Link< /a>";
style.display='block' - При нажатии скрывает блок
style.display='none' - При нажатии показывает блок
Нажимая на данную ссылку, будет вызываться некий скрытый блок, у которого id=***
<b>Пора и блок сделать</b>
echo "< div align=right id=\"***\" style=\"position : absolute; left : 300px; top : 100px; width: 400px; padding: 1px 1px 1px 1px; background-color: $body_bg; border: solid #000000 1px; display: none\">
Место скрытого текста в блоке
< /div>";
Вот такими не хитрыми методами можно делать скрытые блоки в PHP-Fusion
<u><b>Изменяем копирайты.</b></u>
Копирайты чаще всего хранятся в файле theme.php
Не много отойдем от темы..
<u><b>Содержимое theme.php</b></u>
<b>theme.php</b> - главный файл темы.
Все функции, отвечающие за "рисование" элементов оформления сайта находятся в файле theme.php. Именно оттуда, по мере надобности, движок вызвает эти функции. В настоящий момент этих функци всего 11. Во всех темах они имеют одинаковые названия и ОБЯЗАТЕЛЬНО, все 11 штук, должны быть описаны в файле theme.php. Об их назначени можно судить по их названиям, так что сложностей возникать не должно. Вот эти 11 функций:
function render_header($header_content) - эта функция рисует заголовок сайта. Она вызывается из файла (если вам это интересно) subheader.php, где в качестве параметра ей передается код логотипа сайта. Если хотие изменить внешний вид шапки, надо изменить эту функцию в файле theme.php, если хотите вместо логотипа выводить что-то другое, или добавить в шапку код банера - изменяйте параметр вызова данной функции в subheader.php.
function render_footer($license=false) - эта функция выводит подвал сайта, со всеми копирайтам, счетчиками и прочим.
function render_news($subject, $news, $info) - определяет внешний вид каждой новости, грубо говоря - рисует вокруг текста новости таблицу, код которой задается в тексте функции и пририсовывает строчку "автор", "дата", "просмотры" и все такое.
function render_article($subject, $article, $info) - делает в точности то же самое, но для статей (отсюда вывод - статьи могут внешне достаточно сильно отличаться от новостей!).
function openside($title) - выводит открывающую, верхнюю часть панели (прямоугольного блока, размещаемого (обычно, но не только) в боковых колонках. В качестве $title передается заголовок панели.
function closeside() завершает панель, начатую предыдущей функцией. Между вызовами функция выводится содержимое панели.
Для понимания применения этих двух функций, попытайтесь из Панели админинстратора создать новую панель и посмотрите на предложенный вам шаблон кода.
function opensidex($title,$state="on") и
function closesidex() - делают то же самое, что две предыдущие функции, только панель получается хитрая - она может закрываться и раскрываться. Если при вызове функции в качестве второго параметра передается строка "on", панель будет изначально открыта, если "off" - закрыта. ОБратите внимание функции должны обязательно использоваться попарно. То есть если вызывается openside(), то в конце обязательно надо вызвать closeside(), если opensidex(), то в конце - closesidex().
function opentable($title) и
function closetable() начинают и завершают таблицу в которую обычно помещается ВСЕ содержимое центральной части. На Ваших собственных страницах никто не мешает вам использовать любое количество попарных вызовов этих функций для формирования смысловых блоков. В этом случае пригодится последняя функция:
function tablebreak() - код выводимый этой функцией разделяет блоки сайта (обычно выводя между ними пустую таблицу, отсюда и название).
И так вернемся к копирайтам. В версиях до PHP-Fusion 6.01.x копирайты были только в файле theme.php
А вот вверсиях PHP-Fusion 6.01.x копирайты присутсвуют в файле footer.php который находится в корне сайта. Копирайты не удаляйте, уважайте чужой труд.
<u><b>Иконка в адресной строке браузера</b></u>
Прежде всего следует обзавестить, собственно иконкой. В ее качестве может выступать любой файл типа .ICO стандартного размера 32х32 пикселей. Можете где-нибудь стырить, или, что более почетно изготовить самостоятельно. Далее, для простоты переименуем этот файл в "favicon.ico".
Затем, готовый файлик закачиваем в корневую директорию Вашего сайта (туда, где лежат файлы subheader.php, maincore.php и др.). После этого браузеры уже начнут "видеть" Вашу иконку.
Превая часть статьи подошла к концу..скоро напишу вторую.
Материалы были взяты:
<a href="http://php-fusion.int.ru/" target="_blank">http://php-fusion.int.ru/</a>
<a href="http://fusion.byweb.ru/" target="_blank">http://fusion.byweb.ru/</a>
<b>Автор статьм: mf</b>