Форум SAPE.RU

Форум SAPE.RU (http://forum.sape.ru/index.php)
-   Биржа статей (http://forum.sape.ru/forumdisplay.php?f=50)
-   -   PHP-Fusion: установка кода статей и изготовление шаблона (http://forum.sape.ru/showthread.php?t=48030)

MonAmur 03.03.2010 20:27

PHP-Fusion: установка кода статей и изготовление шаблона
 
Установка кода статей Sape на PHP-Fusion
1. создать sapearticle_panel в директории infusions, туда кидается файл sapearticle_panel.php с содержанием :
Код HTML:

<?
if (!defined("IN_FUSION")) { header("Location:../../index.php"); exit; }
openside("Статьи от корефанов");
    if (!defined('_SAPE_USER')){
        define('_SAPE_USER', 'хэш-код');
    }
    require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php');
    $sape_article = new SAPE_articles();
    echo $sape_article->
return_announcements(); 
closeside();
?>

2. в корень заливается скачанный файл хэш-код.php, папка хэш-код с файлом sape.php, на эту папку задаются права доступа 777
3. в админке размещаем для отображения в нужном месте и включаем панельку.
4. добавляем в сапу.

Создание динамического шаблона:
1. открываем в текстовом редакторе файл subheader.php
находим
Код HTML:

echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">
и заменяем на
Код HTML:

echo "<!--a1--><!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">
тут же находим
Код HTML:

<head>
и заменяем на
Код HTML:

<head><!--a1-->
тут же после строк, содержащих
Код HTML:

<title>".$title.$settings['sitename']."</title>
<meta name='description' content='".$title.$settings['description']."'>
<meta name='keywords' content='".$title.$settings['keywords']."'>

добавляем
Код HTML:

<!--a3-->
открываем файл side_left.php. в самом низу заменяем
Код HTML:

?>
на
Код HTML:

echo "<!--a4-->";
?>

открываем файл side_right.php. в 2-х местах заменяем
Код HTML:

echo "</td>\n";
на
Код HTML:

echo "<!--a5--></td>\n";
открываем файл footer.php
заменяем строку
Код HTML:

echo "</body>\n</html>\n";
на
Код HTML:

echo "</body>\n</html><!--a6-->\n";
2. создаем в корне сайта файл sapeart.php с таким содержанием:
Код HTML:

<?
$GrabURL = 'http://мой_сайт.ru/index.php?id=123'; //укажите URL любой страницы сайта с какой-нибудь статьей
$RetrieveFile = implode("",file($GrabURL));
$GrabStart = '<!--a1-->';
$GrabEnd = '<!--a2-->';
preg_match("%$GrabStart(.*?)$GrabEnd%is", $RetrieveFile, $m);
echo $m[1];
?>

<title>{title}</title>
<meta name="keywords" content="{keywords}" />
<meta name="description" content="{description}" />
<?
$GrabStart = '<!--a3-->';
$GrabEnd = '<!--a4-->';
preg_match("%$GrabStart(.*?)$GrabEnd%is", $RetrieveFile, $m);
echo $m[1];
?>

<h1>{header}</h1>       
{body}
<?
$GrabStart = '<!--a5-->';
$GrabEnd = '<!--a6-->';
preg_match("%$GrabStart(.*?)$GrabEnd%is", $RetrieveFile, $m);
echo $m[1];
?>

Оформление статьи можно подправить с помощью HTML и стилей CSS.

3. В интерфейсе добавления шаблона добавляем этот шаблон, прописывая его данные:
название шаблона: sapeart
URL: http://мой_сайт.ru/sapeart.php
частота обновления: 30 минут

4. В интерфейсе "Настройка шаблонов URL'ов" добавляем шаблон
/view-content/{id}.html
view-content - можно заменить на любое другое слово, похожее на какое-либо слово, содержащееся в URLах на сайте, либо по формату даты, как написано в интерфейсе "Настройка шаблонов URL'ов".

Avelon 11.03.2010 17:38

просьба отписываться тех, кто установил код по данной инструкции: получилось ли, нет ли добавлений , замечаний.

спасибо

ruslant 17.03.2010 07:40

Уважаемый MonAmur Вы не могли бы написать те же шаги установки для 7-й версии движка. Я думаю этот вопрос многих интересует.

MonAmur 17.03.2010 14:25

ruslant, не юзал 7 версию php-fusion, но подозреваю, что там все так же, как и в 6...
опишите проблему, с которой столкнулись, конкретнее, плиз...

ruslant 18.03.2010 08:39

Дело в том, что там нет side_right.php и side_left.php, в место этого есть один конфиг. файл panels.php, ниже привожу исходник:
Код:

<?php
/*-------------------------------------------------------+
| PHP-Fusion Content Management System
| Copyright (C) 2002 - 2008 Nick Jones
| http://www.php-fusion.co.uk/
+--------------------------------------------------------+
| Filename: panels.php
| Author: Nick Jones (Digitanium)
+--------------------------------------------------------+
| This program is released as free software under the
| Affero GPL license. You can redistribute it and/or
| modify it under the terms of this license which you
| can read by viewing the included agpl.txt or online
| at www.gnu.org/licenses/agpl.html. Removal of this
| copyright header is strictly prohibited without
| written permission from the original author(s).
+--------------------------------------------------------*/
if (!defined("IN_FUSION")) { header("Location: ../../index.php"); exit; }

// Calculate current true url
$script_url = explode("/", $_SERVER['PHP_SELF'].(FUSION_QUERY ? "?".FUSION_QUERY : ""));
$url_count = count($script_url);
$base_url_count = substr_count(BASEDIR, "/") + 1;
$start_page = "";
while ($base_url_count != 0) {
        $current = $url_count - $base_url_count;
        $start_page .= "/".$script_url[$current];
        $base_url_count--;
}

define("START_PAGE", substr(preg_replace("#(&amp;|\?)(s_action=edit&amp;shout_id=)([0-9]+)#s", "", $start_page), 1));

// Side & center panels
ob_start();
$plc = 0;

// Render left panels
if(!defined("ADMIN_PANEL")){
        if (check_panel_status("left")) {
                $p_res = dbquery("SELECT * FROM ".DB_PANELS." WHERE panel_side='1' AND panel_status='1' ORDER BY panel_order");
                if (dbrows($p_res)) {
                        while ($p_data = dbarray($p_res)) {
                                if (checkgroup($p_data['panel_access'])) {
                                        if ($p_data['panel_type'] == "file") {
                                                $panel_name = $p_data['panel_filename'];
                                                include INFUSIONS.$panel_name."/".$panel_name.".php";
                                        } else {
                                                eval(stripslashes($p_data['panel_content']));
                                        }
                                        $plc++;
                                }
                        }
                }
        }
}else{
        require_once ADMIN."navigation.php";
}

define("LEFT", ob_get_contents());
ob_end_clean();

// Render right panels
$prc = 0;
ob_start();
if(!defined("ADMIN_PANEL")){
        if (check_panel_status("right")) {
                $p_res = dbquery("SELECT * FROM ".DB_PANELS." WHERE panel_side='4' AND panel_status='1' ORDER BY panel_order");
                if (dbrows($p_res)) {
                        while ($p_data = dbarray($p_res)) {
                                if (checkgroup($p_data['panel_access'])) {
                                        if ($p_data['panel_type'] == "file") {
                                                $panel_name = $p_data['panel_filename'];
                                                include INFUSIONS.$panel_name."/".$panel_name.".php";
                                        } else {
                                                eval(stripslashes($p_data['panel_content']));
                                        }
                                        $prc++;
                                }
                        }
                }
        }
}
define("RIGHT", ob_get_contents());
ob_end_clean();

// Set the require div-width class
if(defined("ADMIN_PANEL")){
        $main_style = "side-left";
}elseif ($plc && $prc) {
        $main_style = "side-both";
} elseif ($plc && !$prc) {
        $main_style = "side-left";
} elseif (!$plc && $prc) {
        $main_style = "side-right";
} elseif (!$plc && !$prc) {
        $main_style = "";
}

// Render upper center panels       
ob_start();

if(!defined("ADMIN_PANEL")){
        echo "<a id='content' name='content'></a>\n";
        if (iADMIN && $settings['maintenance']) {
                echo "<div class='admin-message'>".$locale['global_190']."</div>";
        }
        if (iSUPERADMIN && file_exists(BASEDIR."setup.php")) {
                echo "<div class='admin-message'>".$locale['global_198']."</div>";
        }
        if (iADMIN && !$userdata['user_admin_password']) {
                echo "<div class='admin-message'>".$locale['global_199']."</div>";
        }
        if (check_panel_status("upper")) {
                $p_res = dbquery("SELECT * FROM ".DB_PANELS." WHERE panel_side='2' AND panel_status='1' ORDER BY panel_order");
                if (dbrows($p_res)) {
                        while ($p_data = dbarray($p_res)) {
                                if (checkgroup($p_data['panel_access'])) {
                                        if ($p_data['panel_display'] == 1 || $settings['opening_page'] == START_PAGE) {
                                                if ($p_data['panel_type'] == "file") {
                                                        $panel_name = $p_data['panel_filename'];
                                                        include INFUSIONS.$panel_name."/".$panel_name.".php";
                                                } else {
                                                        eval(stripslashes($p_data['panel_content']));
                                                }
                                        }
                                }
                        }
                }
        }
}
define("U_CENTER", ob_get_contents());
ob_end_clean();

// Render lower center panels
ob_start();

if(!defined("ADMIN_PANEL")){
        if (check_panel_status("lower")) {
                $p_res = dbquery("SELECT * FROM ".DB_PANELS." WHERE panel_side='3' AND panel_status='1' ORDER BY panel_order");
                if (dbrows($p_res) != 0) {
                        while ($p_data = dbarray($p_res)) {
                                if (checkgroup($p_data['panel_access'])) {
                                        if ($p_data['panel_display'] == 1 || $settings['opening_page'] == START_PAGE) {
                                                if ($p_data['panel_type'] == "file") {
                                                        $panel_name = $p_data['panel_filename'];
                                                        include INFUSIONS.$panel_name."/".$panel_name.".php";
                                                } else {
                                                        eval(stripslashes($p_data['panel_content']));
                                                }
                                        }
                                }
                        }
                }
        }
}
define("L_CENTER", ob_get_contents());
ob_end_clean();
?>


Svetapreree 05.08.2010 13:23

PHP Fusion установка кода статей и изготовление шаблона
 
Сделал такой файл:

<html>
<head>
<?php
require_once sl_articles.php;
art = new SLArticlesClient;
art->print_header;
?>
</head>
<body>
<?php art->print_body; ?>
</body>
</html>

при его открытии выводится только "<html><head>".
А в настройках пишет "Каталог статей по указанному адресу не найден"?

Svetapreree 06.08.2010 18:56

PHP Fusion установка кода статей и изготовление шаблона
 
Описую подробно как в обычноам html все установить

Создаем пустую страницу в html, и называем например - articles

После открываем ее через обычный блокнот, вставляем
Внутри тега <head></head>
<?php require_once _SERVERDOCUMENT_ROOT./sl_articles/sl_articles.php;
art = new SLArticlesClient;
art->print_header;
?>

А внутрь тега <body></body> вставить код php:
<?php art->print_body; ?>

И сохраняем.

После нобходимо изменить его с html на php
это делаем через тот же блокнот или через тотал командер

после чего загружаем на сервер и все работает

Alipapa 08.08.2010 16:11

Цитата:

В шаблоне обязательно должны присутствовать следующие параметры.

1. {title} – описание для тега <title>.

пример: <title>{title} </title>
2.

{keywords} – ключевые слова. Описание для meta-поля keywords, пример:

пример: <meta name="keywords" content="{keywords}">
3. {header} – заголовок статьи.

пример: <h1>{header}</h1>
4. {body} – текст статьи.
В PHP-Fusion 7 шаблон страницы такой:
Цитата:

<?php
require_once "maincore.php";
require_once THEMES."templates/header.php";
add_to_title(" title статьи, пробел в начале не забудьте");
add_to_meta("description", " description для статьи, пробел в начале не забывайте");
add_to_meta("keywords", ", keywords для статьи, запятую с пробелом в начале не забывайте");
opentable("Заголовок статьи")
echo "Здесь сама статья";
closetable();

require_once THEMES."templates/footer.php";
?>
Все четко и предельно понятно. Когда я расставил маркеры, система отказалась принимать мой шаблон. Если я делаю так (показываю только одну строчку для экономии места):
Цитата:

add_to_title(" {title}");
или так:
Цитата:

add_to_title(" ".{title});
или так:
Цитата:

add_to_title(" ".?>{title}<?php);
Ответ один:
Цитата:

В шаблоне не найдено поле {title}
Подскажите пожалуйста, как в такой php-файл шаблона должны вставляться ваши маркеры.
Прошу не советовать мне делать html-шаблон или вносить изменения в файлы cms - это неправильный подход.

Добавлено через 21 минуту
Опечатка. Редактировать тот пост уже не получается. В строке opentable("Заголовок статьи") конечно же, в конце точка с запятой должна стоять.
Может быть, стоит вместо маркеров давать обычные переменные для php-шаблонов? Почему так не делают?

Добавлено через 2 часа 25 минут
Извините, кажется заработал такой вариант:
Цитата:

<?php
require_once "maincore.php";
require_once THEMES."templates/header.php";

add_to_title("{title}");
add_to_meta("description", " {description}");
add_to_meta("keywords", ", {keywords}");

opentable("{header}");
echo "{body}";
closetable();
require_once THEMES."templates/footer.php";
?>
По крайней мере, система приняла шаблон.

Alipapa 11.08.2010 21:05

Наконец-то у меня начали размещать статьи и я убедился в правильности моего шаблона для PHP-Fusion 7. Окончательный вариант следующий:
Цитата:

<?php
require_once "maincore.php";
require_once THEMES."templates/header.php";

add_to_title(": {title}");
add_to_meta("description", " {description}");
add_to_meta("keywords", ", {keywords}");

opentable("{header}");
echo "{body}";
closetable();
require_once THEMES."templates/footer.php";
?>
Это правильный с точки зрения cms шаблон. Если не хотите, чтобы в титлах и мета была общая для всех страниц составляющая, замените add_to на set.
Небольшой совет по шаблонам URL-ов. Не делайте в них имитацию подкаталогов, т.е. вместо шаблона, к примеру, /review/{id}, делайте /review-{id}. Иначе у вас будут проблемы со стилями и внутренними ссылками.
Подобный шаблон можно создать и для 6-й версии. Но так как все нормальные пацаны давно перешли на семерку, то не будем заморачиваться, пусть пользуются методом от MonAmur.
Мой предыдущий пост прошу удалить, чтобы не отвлекал и не сбивал с толку.

V0VAN 09.11.2010 20:35

Цитата:

Установка кода статей Sape на PHP-Fusion
1. создать sapearticle_panel в директории infusions, туда кидается файл sapearticle_panel.php с содержанием :
скажите, эту панель надо ставить на все страницы сайта или только на главную или только на некоторые страницы?


Часовой пояс GMT +3, время: 16:04.

Работает на vBulletin® версия 3.8.7.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
SAPE.RU — система купли-продажи ссылок с главных и внутренних страниц сайтов.