Старый 12.02.2008, 16:03   #1
Специалист
 
Регистрация: 29.01.2008
Сообщений: 127
Вес репутации: 171
XAOC на пути к лучшему
Question Сайт на 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

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

Последний раз редактировалось XAOC; 12.02.2008 в 16:07.
XAOC вне форума   Ответить с цитированием
Старый 12.02.2008, 16:12   #2
Специалист
 
Регистрация: 29.01.2008
Сообщений: 127
Вес репутации: 171
XAOC на пути к лучшему
По умолчанию

ёмаё... Админы, хэш потрите мой
XAOC вне форума   Ответить с цитированием
Старый 12.02.2008, 18:43   #3
Администратор
 
Регистрация: 22.11.2006
Сообщений: 5,868
Вес репутации: 21475136
Avelon - репутация неоспоримаAvelon - репутация неоспоримаAvelon - репутация неоспоримаAvelon - репутация неоспоримаAvelon - репутация неоспоримаAvelon - репутация неоспоримаAvelon - репутация неоспоримаAvelon - репутация неоспоримаAvelon - репутация неоспоримаAvelon - репутация неоспоримаAvelon - репутация неоспорима
По умолчанию

Дело в том, что при 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);
?>
И т.д.

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решил ещё раз спросить на счёт граббера. Se0man Курилка 8 22.07.2008 13:17
Блоки и перемещения ссылок по блокам potap Пожелания пользователей системы 8 24.06.2008 10:34
Пропадают ссылки (с блочными ссылками проблему уже решил) Asaf Контекстные ссылки и все, что с ними связано 24 24.03.2008 20:50
Как разделить ссылки по блокам и ... Liv Вопросы от новичков 6 05.02.2008 11:46
Хочу раскидать ссылки по блокам. Надо ли будет реиндексировать? XAOC Вопросы от новичков 2 03.02.2008 04:53


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