Форум SAPE.RU

Форум SAPE.RU (http://forum.sape.ru/index.php)
-   Вопросы по работе системы (http://forum.sape.ru/forumdisplay.php?f=13)
-   -   Распределение ссылок по разным местам страницы для блогов.. (http://forum.sape.ru/showthread.php?t=6195)

cesq 19.11.2007 06:13

Распределение ссылок по разным местам страницы для блогов..
 
Для блога на WordPress код вызывающий ссылки такой:

PHP код:

<?php 
 define
('_SAPE_USER''22222222222222222222222'); 
 require_once(
$_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php'); 
 
$o['charset'] = 'UTF-8';
 
$sape = new SAPE_client($o);
 unset(
$o);
?>

далее ссылки вызываются по одной.... так вот
PHP код:

<? echo $sape->return_links(1); ?>

НО, вставляя ссылку <? echo $sape->return_links(1); ?> в другой php файл, она выдаёт ошибку..

а если вставить в другой файл ВЕСЬ код целиком, то покажет все ссылки разом :(

Помогите, пожалуйста, что делать??

leszkin 19.11.2007 09:58

Допустим хотим разместить ссылки первый блок в сайдбаре - остальные в футере. В сайдбаре пишем
Цитата:

<?php
define('_SAPE_USER', 'ххххххх');
require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php');
$sape = new SAPE_client();
echo $sape->return_links(2);
global $sape_echo;
$sape_echo = $sape->return_links();
?>
при таком раскладе выведет 2 ссылки в сайдбаре.
в футере просто дописываем
Цитата:

<? global $sape_echo;
echo $sape_echo; ?>
Не забываем дописать по необходимости кодировку ЮТФ (если она используется)

cesq 19.11.2007 15:00

Супер.. Спасибо огромное..

Ещё вопросик.. Можно ли тиу часть, что в сайдбаре вывести отдельными ссылками, что их в тег списка заключить..

Цитата:

<?php
define('_SAPE_USER', 'xxx');
require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php');
$o['charset'] = 'UTF-8';
$sape = new SAPE_client($o);
unset($o);
echo $sape->return_links(1);

global $sape_echo;
$sape_echo = $sape->return_links();
?>
а отдельно

Цитата:

<? echo $sape->return_links(1); ?>
Ну чтобы каждая ссылка под
Цитата:

<li>
была :)

leszkin 19.11.2007 15:14

так в админке сапы поставьте просто разделитель ссылок <li> и все..

cesq 19.11.2007 16:33

Мерси :)

Stutzer 19.11.2007 20:44

Не думаю ,что открыл америку, но я после некоторых мытарств пришел вот к такому решению:

В настройках сапы в качестве разделителя ссылок ставим что-нибудь вроде "<split/>"

далее в коде инициализации sape_client-a делаете примерно следующее:
PHP код:

define('_SAPE_USER''******************************'); 
require_once(
$_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php');
// если используем mod_rewrite:
if (isset($_SERVER['REDIRECT_URL'])){
  
$o['request_uri'] = $_SERVER['REDIRECT_URL'];
}

$sape = new SAPE_client($o);
$links $sape->return_links();
// разделитель ссылок
$links_split '<split/>';

// разбиваем строку, содержащую ссылки в массив
if ( substr($links,0,4) != '<!--' ) {
  
$sapelinks['checkcode'] = '<!--none-->';
  
$sapelinks['links'] = explode($links_split$links);
} else {
  
$sapelinks['checkcode'] = $links;
  
$sapelinks['links'] = array();
}

// А далее можно извращаться как вам угодно:
// передать массив в Smarty переменную
// или прям здесь сформировать нужные блоки
// В моем случае формируются два блока, по которым ссылки распределяются равномерно

for ($i=0$i<count($sapelinks['links']); $i++) {
  if (
$i == 0) {
    
$sapelinks['block1'][] = $sapelinks['links'][$i];
  } else {
    
$sapelinks['block2'][] = $sapelinks['links'][$i];
  }
}
$sapelinks['block1'] = implode('<br/>'$sapelinks['block1']);
$sapelinks['block2'] = implode('<br/>'$sapelinks['block2']);

$GLOBALS['sapelinks'] = $sapelinks


Надеюсь, кому-нибудь пригодится

Ank 19.11.2007 21:07

на выходе что будем иметь? Лень было вникать в код. Но если будем иметь подмененный разделитель - будут ерроры.

Stutzer 19.11.2007 21:18

на выходе будем иметь массив оригинальных ссылок. или готовые блоки с ссылками.
Проверено на 2х сайтах. На одном пришлось так сделать, т.к. хотелось вывести ссылки в виде списка
<li>ссылка</li>
...
на втором не получалось разбить на блоки стандартным средством - решил использовать этот же трюк.

А суть вкратце такая:
сапа возвращает ссылки в виде:
СсылкаРаделительСсылкаРазделительСсылка

с помошью функции explode(разделитель, строка) формируем из того, что нам возвращает $sape->links массив и выводим ссылки как душе угодно. Сами ссылки и околоссылочные тексты при этом не изменяются.

Wink 20.11.2007 08:37

Цитата:

Сообщение от Ank (Сообщение 59001)
Но если будем иметь подмененный разделитель - будут ерроры.

Не будут. У меня разделитель, установленный в панели вебмастера, вообще на картинку меняется и всё в порядке. Разделители не проверяются.

leszkin 20.11.2007 09:20

Цитата:

Сообщение от Ank (Сообщение 59001)
Но если будем иметь подмененный разделитель - будут ерроры.

не, точно не будут. у меня на одной площадке в 2-х блоках выводятся с резделителем <li>, а вот в футере этот разделитель меняется на |


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

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