Форум SAPE.RU

Форум SAPE.RU (http://forum.sape.ru/index.php)
-   Установка кода на различные движки (http://forum.sape.ru/forumdisplay.php?f=26)
-   -   Красивый вывод ссылок для joomla нужна помощь. (http://forum.sape.ru/showthread.php?t=65442)

romagromov 14.02.2011 03:54

Красивый вывод ссылок для joomla нужна помощь.
 
В общем, немного сложив разные вариации на тему вывода ссылок в joomla вместе со скриншотами, чуток подмастерил, кое-где скопировал и получилось симпатично, но есть проблема.

Имеем код, который надо запихать в php модуль:

PHP код:

<?php 
     
if (!defined('_SAPE_USER')){
        
define('_SAPE_USER''************'); 
     }
     require_once(
$_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php'); 
     
$o['charset'] = 'UTF-8'
$sape = new SAPE_client($o); 
unset(
$o);

//сам вывод ссылок
$sape_block '';
for(
$i=0$i<count($sape->_links_page); $i++){
$sape_text $sape->return_links();
$sape_link preg_replace('~.*<a[^>]+href="http://([^/\s"]+)[^\s"]*"[^>]*>.*~si',
'$1'$sape_text);
$sape_block.= '<div class="saitsap"><div class="imgsap">
<img src="http://images.websnapr.com/?url='
.$sape_link .'" width="70" 
height="50" alt="Подробнее на сайте '
.$sape_link.'" align="left" title="Источник: '.$sape_link.'" /> </div>
<div class="descsap">'
.$sape_text.'</div></div><br><br>';
}
if(
$sape_block!='')
echo 
'<div class="galerysap">'.$sape_block.'</div>';
else echo 
$sape->return_links();

?>

Данный код выводит скриншот сайта акцептора. Скриншот снабжен тегами alt и title. Текст ссылки обтекает картинку справа.

Чтобы все выглядело именно так, цепляем следующие стили в ваш css файл:
PHP код:

/*Sap*/

.galerysap {
clearboth;
floatleft;
width auto;
height auto;
text-align:center;
/*margin: 0 0 20px 0;*/
padding0;
}
div.saitsap {
/*width : auto;*/
width100%;
heightauto;
/*margin: 3px;*/
padding0;
border1px solid #cccccc;
floatleft;
text-alignleft;
}
div.imgsap {
width70px;
height50px;
margin3px 3px 1px 3px;
padding1px;
border1px solid #cccccc;
floatleft;
text-alignleft;
}


div.descsap {
margin0;
padding0 5px 5px 2px;
/*text-transform:capitalize;*/
first-lettercapitalize;
font-size10px;
text-alignleft;


Но есть такая проблема: когда ссылка одна, все отлично.
Как только ссылки 2 и более, то выводится 1 скриншот и в этом же диве остальные ссылки. А должно быть так: на каждую ссылку, отдельный див, в нем отдельный скриншот. Где я что-то путаю в коде?

С другой стороны, можно разрешить выводить только одну ссылку, и продублировать код самого вывода ссылок несколько раз - тогда все красиво, но это же извращение...

Djeremy 14.02.2011 06:04

Спрячте сапо код для начала

romagromov 14.02.2011 16:14

Цитата:

Сообщение от Djeremy (Сообщение 1014723)
Спрячте сапо код для начала


Да спасибо, по запарке забыл.

Так по коду есть мысли?

zhegloff 14.02.2011 16:32

Цитата:

Сообщение от romagromov (Сообщение 1014712)
$sape_text = $sape->return_links();

Вот тут вы получаете сразу все ссылки. И естественно они выводятся одним блоком.
Получайте ссылки по одной :)...

$sape_text = $sape->return_links(1);

romagromov 14.02.2011 17:20

Спасибо, не заметил...
Теперь есть подвижки. но есть и проблемка.
Теперь каждая ссылка в отдельном диве и отдельной картинкой.
НО... ссылок должно быть 4, а выводится всего две...

вот смотрите:

http://i.piccy.info/i5/24/10/1101024/sap.jpg

Может проблема здесь:

Код:

for($i=0; $i<count($sape->_links_page); $i++){
Или я ошибаюсь?

zhegloff 14.02.2011 17:37

Цитата:

Сообщение от romagromov (Сообщение 1015016)
Может проблема здесь:

может быть :) посмотрите, что возвращает count($sape->_links_page)

romagromov 14.02.2011 18:38

Цитата:

Сообщение от zhegloff (Сообщение 1015025)
может быть :) посмотрите, что возвращает count($sape->_links_page)

Хммм... В php не очень силен, но вот что у меня вышло:

если не трогая код, вставить в цикл фразу:

PHP код:

echo "---";
echo 
count($sape->_links_page); 

(--- для разделения)

выводится это:
---3---2
и показываются 2 ссылки

если в цикле
PHP код:

for($i=0$i<count($sape->_links_page); $i++){ 

ноль заменить на -3

PHP код:

for($i=-3$i<count($sape->_links_page); $i++){ 

выводится это:
---3---2---1---0
и показываются 4 ссылки, то есть все...

В принципе, можно сказать, что все работает, но мне кажется это как-то криво...

Что я еще недопонимаю?

zhegloff 14.02.2011 19:26

А, ну все правильно. Замените.
Цитата:

Сообщение от romagromov (Сообщение 1014712)
for($i=0; $i<count($sape->_links_page); $i++){

на

PHP код:

$count_links=count($sape->_links_page);
for(
$i=0$i<$count_links$i++){ 


romagromov 14.02.2011 20:08

Большое, человеческое вам дякую, товарищ zhegloff.

Пашет на ура и красиво выходит.

Djeremy 14.02.2011 20:14

Красиво:) в заметки занес
romagromov а что будет если _http://images.websnapr.com будет в отключке?


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

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