Форум SAPE.RU

Форум SAPE.RU (http://forum.sape.ru/index.php)
-   Вопросы от новичков (http://forum.sape.ru/forumdisplay.php?f=25)
-   -   Сайт на SSI. Решил раскидать ссылки по блокам - вылазит ошибка. (http://forum.sape.ru/showthread.php?t=9026)

XAOC 12.02.2008 16:03

Сайт на SSI. Решил раскидать ссылки по блокам - вылазит ошибка.
 
Не было у бабы проблем, да купила баба порося... ;)

Сайт построен с SSI инклюдами, в одно нужное место на странице инклюдился файл name.php:
PHP код:

<?php 
     
if (!defined('_SAPE_USER')){
        
define('_SAPE_USER''..................'); 
     }
     require_once(
$_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php'); 
     
$sape = new SAPE_client();
     echo 
$sape->return_links();
?>

Пока работал по этой схеме - проблем не было.

А сегодня решил раскидать ссылки по разным местам страницы, разделил код на 2 части и наступил на граблю.
Сделал, как и предлагается мануалом 2 файла-инклюда с переменной $sape.
Первый, с названием name_a.php инклюдю в HEAD, содержимое его такое:
PHP код:

<?php 
    
global $sape;
    if (!
defined('_SAPE_USER')){
        
define('_SAPE_USER''..................'); 
    }
    require_once(
$_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php'); 
    
$sape = new SAPE_client();
?>

Второй, с названием name_b.php инклюдю в нужное место на странице.
Содержимое его такое:
PHP код:

<?php 
    
global $sape
    echo 
$sape->return_links();
?>

После этого получаю на странице сообщение:
Fatal error: Call to a member function on a non-object in xxxxxxx\name_b.php on line 3

Не подкажете? :D

XAOC 12.02.2008 16:12

ёмаё... Админы, хэш потрите мой :)

Avelon 12.02.2008 18:43

Дело в том, что при SSI инклюдах на странице выводится результат работы скрипта, т.е. нет общего пространства имен для этих двух скриптов name_a и name_b
Можно стделать так.
1. Создать скрипт sape_init.php
<?php
if (!defined('_SAPE_USER')){
define('_SAPE_USER', '..................');
}
require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php');
$sape = new SAPE_client();
?>

2. Далее,в том месте где вам нужен первый блок инклюдите такой скрипт sape_links_1.php
<?php
include('sape_init.php');
echo $sape->return_links(3);

?>
3. В следующем блоке инклюдите скрипт sape_links_2.php
<?
include('sape_init.php');

//пролистываем 1 блок из 3х ссылок
$sape->return_links(3);

//вывод следующих 2 ссылок
echo $sape->return_links(2);
?>
И т.д.

Т.е. инициировать клиента надо каждый раз, а потом "пролистывать" ссылки.
Не самый изящный способ, но должно работать.


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

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