[РЕШЕНО]вывод содержимого в блоке

Главные вкладки

Аватар пользователя GEHKA GEHKA 17 мая 2011 в 13:37

Помогите плз у меня токая проблема
нужно чтобы на одной из страниц сайта в блоке выводились в случайном порядке баннеры.
как мне это сделать помогите плиз????????????????

Комментарии

Аватар пользователя SirAndriy SirAndriy 17 мая 2011 в 16:19

"init0" wrote:
Для вывода случайного баннера через Views:
Sort criteria -> Global: Random

А не за "круто" для этой задачи использовать Views? Может проще будет написать кокой-то php код для рандомного вывода. Например


<?php 
  
switch ( rand(0,2) ) { // генерим случайное число от 0 до 2
    
case 0:
        echo 
"<img src='sites/default/files/P1010026.JPG' >"// выводим свой баннер
        
break;
    case 
1:
        echo 
"<img src='sites/default/files/P1010027.JPG' >";
        break;
    case 
2:
        echo 
"<img src='sites/default/files/P1010023.JPG' >";
        break;
}

?>
Аватар пользователя init0 init0 17 мая 2011 в 16:55

"SirAndriy" wrote:
А не за "круто" для этой задачи использовать Views? Может проще будет написать кокой-то php код для рандомного вывода. Например

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

<?php
//католог з банерами
$path './baners/';

//Сканируем каталог
$res scandir($path);

//Допустимее розширения
$white_list = array('jpg''jpeg''png''gif''bmp');

foreach(

$res as $img) {
        
//проверка розшерений по $white_list
        
$extension pathinfo($imgPATHINFO_EXTENSION);
        if(
in_array($extension$white_list))
                {
                        
$full_img[] = $path.$img;
                }
}

//перемешуем дание
shuffle($full_img);

//вивод
print '<img src="'.$full_img[0].'" />';
?>
Аватар пользователя Zonder Zonder 10 июня 2011 в 1:09

init0 wrote:
"SirAndriy" wrote:
А не за "круто" для этой задачи использовать Views? Может проще будет написать кокой-то php код для рандомного вывода. Например

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

<?php
//католог з банерами
$path './baners/';

//Сканируем каталог
$res scandir($path);

//Допустимее розширения
$white_list = array('jpg''jpeg''png''gif''bmp');

foreach(

$res as $img) {
        
//проверка розшерений по $white_list
        
$extension pathinfo($imgPATHINFO_EXTENSION);
        if(
in_array($extension$white_list))
                {
                        
$full_img[] = $path.$img;
                }
}

//перемешуем дание
shuffle($full_img);

//вивод
print '<img src="'.$full_img[0].'" />';
?>


Ваш код, если я ничего не путаю, выводит картинки.
А баннер - это картинка + ссылка.
Ссылки в вашем коде отсутствуют.

Аватар пользователя init0 init0 17 мая 2011 в 18:30

В скрепте SirAndriy так:
./sites/default/files/P1010026.JPG

если мой то создайте в корне сайта каталог baners, и закиньте туда банери.

Аватар пользователя init0 init0 26 октября 2011 в 2:32

"Zonder" wrote:
Ваш код, если я ничего не путаю, выводит картинки.
А баннер - это картинка + ссылка.
Ссылки в вашем коде отсутствуют.

Только сейчас увидел это сообщение, да вы правы, вот немного подправил, теперь он больше по принципу как код от SirAndriy, мож кому и надо будет:


<?php

    

/*
     задайте путь к катинки банера-|-адрес сайта на который ведет баннер
     "-|-" - служат для разделения значений
     Пример: ./baners/picture-39731.png-|-http://drupal.ru
     можно задать еще третий параметр он будет в качестве атрибутов title и alt, он является необязательним
     пример: /baners/picture-39731.png-|-http://drupal.ru-|-Drupal Россия
    */

    

$baners = array(
    
'./baners/avatar2364.jpg-|-http://google.com',
    
'./baners/picture-39731.png-|-http://drupal.ru-|-Drupal Россия',
    
'./baners/picture-42274.jpg-|-http://drupal.org',       
    );
    
    
$size count($baners) - 1;
    
    
$num rand(0$size);
    
    
$img_src explode('-|-'$baners[$num]);
    
    if(@
$img_src[2]) {
        
$title 'title="'.$img_src[2].'"';
        
$alt 'alt="'.$img_src[2].'"';        
    } else {
        
$title '';
        
$alt '';
    }
    
    
    echo 
'<a '.$title.' href="'.$img_src[1].'" '.$alt.'><img src="'.$img_src[0].'"></a>';
    
?>
Аватар пользователя Zonder Zonder 26 октября 2011 в 2:37

Уже написал нечто похожее сам Smile

<?php $banners = array(

'<a href="http://yandex.ru/"><img src="/files/b636ac5ea4ce.gif" /></a>',
'<a href="http://google.ru/"><img src="/files/banner_160-200.gif" /></a>',
'<a href="http://rbc.ru/"><img src="/files/night.jpg" /></a>',

);

shuffle($banners);
foreach ($banners as $banner) {
echo "$banner ";
}
?>