Joomla 1.0 Помогите подправить mod_random_image

Тема в разделе "Программирование", создана пользователем PavelCh, 11.11.2008.

  1. PavelCh
    Offline

    PavelCh Недавно здесь

    Регистрация:
    15.02.2006
    Сообщения:
    104
    Симпатии:
    6
    Пол:
    Мужской
    Всем привет.

    Хочу поправить mod_random_image.php ,чтобы он выводил не 1, а 9 картинок в таблицы. Я в php мало чего понимаю, но намудрил такую весчь - в самом низу файла, вместо:
    Код (CODE):
    1. <div align="center">
    2.     <?php
    3.     if ($link) {
    4.         ?>
    5.         <a href="<?php echo $link; ?>" target="_self">
    6.         <?php
    7.     }
    8.     ?>
    9.     <img src="<?php echo $image; ?>" border="0" width="<?php echo $width; ?>" height="<?php echo $height; ?>" alt="<?php echo $image_name; ?>" /><br />
    10.     <?php
    11.     if ($link) {
    12.         ?>
    13.         </a>
    14.         <?php
    15.     }
    16.     ?>
    17.     </div>

    воткнул таблицу, и в каждую ячейку скопипастил этот кусок... :) 9 картинок получил, но проблема в том, что все картинки однинаковые, что нужно дописать, чтобы выводились рандомно разные картинки...?
     

    Вложения:

    Последнее редактирование: 11.11.2008
  2.  
  3. Dead Krolik
    Offline

    Dead Krolik Недавно здесь => Cпециалист <=

    Регистрация:
    13.04.2007
    Сообщения:
    3 685
    Симпатии:
    101
    Пол:
    Мужской
    И чиво? Как этот кусок кода сможет нам чем-то помочь?
     
  4. PavelCh
    Offline

    PavelCh Недавно здесь

    Регистрация:
    15.02.2006
    Сообщения:
    104
    Симпатии:
    6
    Пол:
    Мужской
    Кинул в 1ый пост сам файл mod_random_image.php :)
     
  5. Dead Krolik
    Offline

    Dead Krolik Недавно здесь => Cпециалист <=

    Регистрация:
    13.04.2007
    Сообщения:
    3 685
    Симпатии:
    101
    Пол:
    Мужской
    Меняем примерно так (пишу на коленке, не проверяю):

    После этого:
    Код (CODE):
    1. if (!$the_image) {
    2.         echo _NO_IMAGES;
    3.     } else {

    Добавляем
    Код (CODE):
    1. shuffle($the_image);
    2. for($AAAA=0;$AAAA<9;$AAAA++) {


    Вот это:
    Код (CODE):
    1. $random = mt_rand(0, $i - 1);

    Заменяем на:
    Код (CODE):
    1. $random = $AAAA;


    После этого:
    Код (CODE):
    1. <?php
    2.     }
    3.     ?>
    4.     </div>
    5.     <?php
    6.     }

    Добавляем
    закрывающую скобку
    Код (CODE):
    1. }
     
    PavelCh нравится это.
  6. PavelCh
    Offline

    PavelCh Недавно здесь

    Регистрация:
    15.02.2006
    Сообщения:
    104
    Симпатии:
    6
    Пол:
    Мужской
    Отлично, работает, спс...:)

    P.S. Только теперь не понятно как их загнать в таблицу, чтобы выровнить 3 по 3. Если я копипастю в каждую ячейку код из 1ого поста, то в кадой ячейки получаю 9 картинок :) Если я ограничиваю
    Код (CODE):
    1. for($AAAA=0;$AAAA<3;$AAAA++)
    , и в каждый столбец таблицы вставляю код, то я получаю 3 ряда одинаковых картинок.

    Скрин:
    http://img113.imageshack.us/img113/985/screento3.jpg
     
    Последнее редактирование: 13.11.2008
  7. Dead Krolik
    Offline

    Dead Krolik Недавно здесь => Cпециалист <=

    Регистрация:
    13.04.2007
    Сообщения:
    3 685
    Симпатии:
    101
    Пол:
    Мужской
    >Если я ограничиваю
    Дак ты в каждом следующем делай

    for($AAAA=0;$AAAA<3;$AAAA++)
    for($AAAA=3;$AAAA<6;$AAAA++)
    for($AAAA=6;$AAAA<9;$AAAA++)

    и тэдэ
     
  8. PavelCh
    Offline

    PavelCh Недавно здесь

    Регистрация:
    15.02.2006
    Сообщения:
    104
    Симпатии:
    6
    Пол:
    Мужской
    Заменил
    Код (CODE):
    1. for($AAAA=0;$AAAA<3;$AAAA++)
    на
    Код (CODE):
    1. for($AAAA=0;$AAAA<3;$AAAA++)
    2. for($AAAA=3;$AAAA<6;$AAAA++)
    3. for($AAAA=6;$AAAA<9;$AAAA++)

    ,но видно я чего-то не так делаю, осталось попрежнему...
     
  9. Dead Krolik
    Offline

    Dead Krolik Недавно здесь => Cпециалист <=

    Регистрация:
    13.04.2007
    Сообщения:
    3 685
    Симпатии:
    101
    Пол:
    Мужской
    Да блин. Не три раза одно и тоже for($AAAA=0;$AAAA<3;$AAAA++), а в каждом блоке меняешь цифры начала и конца.
     
  10. doctorgrif
    Offline

    doctorgrif Местный => Cпециалист <=

    Регистрация:
    14.01.2008
    Сообщения:
    1 284
    Симпатии:
    66
    Пол:
    Мужской
    Dead Krolik, может я туплю,
    Оффтопик (не в тему) - жми сюда!
     
  11. infoman
    Offline

    infoman Пользователь

    Регистрация:
    28.08.2007
    Сообщения:
    581
    Симпатии:
    12
    Пол:
    Мужской
    бррр математика.......
     
  12. PavelCh
    Offline

    PavelCh Недавно здесь

    Регистрация:
    15.02.2006
    Сообщения:
    104
    Симпатии:
    6
    Пол:
    Мужской
    Я уже запутался где чего менять... :)
     
  13. PavelCh
    Offline

    PavelCh Недавно здесь

    Регистрация:
    15.02.2006
    Сообщения:
    104
    Симпатии:
    6
    Пол:
    Мужской
    Так и не разобрался как сделать, вот код:
    Код (CODE):
    1. <?php
    2. // запрет прямого доступа
    3. defined( '_VALID_MOS' ) or die( 'Доступ ограничен' );
    4.  
    5. global $mosConfig_absolute_path, $mosConfig_live_site;
    6.  
    7. $type           = $params->get( 'type', 'jpg' );
    8. $folder         = $params->get( 'folder' );
    9. $link           = $params->get( 'link' );
    10. $width          = $params->get( 'width' );
    11. $height         = $params->get( 'height' );
    12. $the_array      = array();
    13. $the_image      = array();
    14.  
    15. // if folder includes livesite info, remove
    16. if ( strpos($folder, $mosConfig_live_site) === 0 ) {
    17.     $folder = str_replace( $mosConfig_live_site, '', $folder );
    18. }
    19. // if folder includes absolute path, remove
    20. if ( strpos($folder, $mosConfig_absolute_path) === 0 ) {
    21.     $folder= str_replace( $mosConfig_absolute_path, '', $folder );
    22. }
    23. // if folder doesnt contain slash to start, add
    24. if ( strpos($folder, '/') !== 0 ) {
    25.     $folder = '/'. $folder;
    26. }
    27. // construct absolute path to directory
    28. $abspath_folder = $mosConfig_absolute_path . $folder;
    29. // check if directory exists
    30. if (is_dir($abspath_folder)) {
    31.     if ($handle = opendir($abspath_folder)) {
    32.         while (false !== ($file = readdir($handle))) {
    33.             if ($file != '.' && $file != '..' && $file != 'CVS' && $file != 'index.html' ) {
    34.                 $the_array[] = $file;
    35.             }
    36.         }
    37.     }
    38.     closedir($handle);
    39.  
    40.     foreach ($the_array as $img) {
    41.         if (!is_dir($abspath_folder .'/'. $img)) {
    42.             if (eregi($type, $img)) {
    43.                 $the_image[] = $img;
    44.             }
    45.         }
    46.     }
    47.  
    48.     if (!$the_image) {
    49.         echo _NO_IMAGES;
    50.     } else {
    51.  
    52.  
    53. shuffle($the_image);
    54. for($AAAA=0;$AAAA<3;$AAAA++) {
    55.  
    56.  
    57.     $i = count($the_image);
    58.     $random = $AAAA;
    59.     $image_name = $the_image[$random];
    60.         $abspath_image  = $abspath_folder . '/'. $image_name;
    61.         $size           = getimagesize ($abspath_image);
    62.  
    63.     if ($width == '') {
    64.             ($size[0] > 100 ? $width = 100 : $width = $size[0]);
    65.     }
    66.     if ($height == '') {
    67.         $coeff = $size[0]/$size[1];
    68.         $height = (int) ($width/$coeff);
    69.     }
    70.  
    71.         $image = $mosConfig_live_site . $folder .'/'. $image_name;
    72.  
    73.  
    74.     ?>
    75.    
    76.     <table border="0" cellspacing="0" cellpadding="0">
    77.   <tr>
    78.     <td><div>
    79.     <?php
    80.     if ($link) {
    81.         ?>
    82.         <a href="<?php echo $link; ?>" target="_self">
    83.         <?php
    84.     }
    85.     ?>
    86.     <img src="<?php echo $image; ?>" border="0" width="<?php echo $width; ?>" height="<?php echo $height; ?>" alt="<?php echo $image_name; ?>" />
    87.     <?php
    88.     if ($link) {
    89.         ?>
    90.         </a>
    91.         <?php
    92.     }
    93.     ?>
    94.     </div></td>
    95.     <td><div>
    96.     <?php
    97.     if ($link) {
    98.         ?>
    99.         <a href="<?php echo $link; ?>" target="_self">
    100.         <?php
    101.     }
    102.     ?>
    103.     <img src="<?php echo $image; ?>" border="0" width="<?php echo $width; ?>" height="<?php echo $height; ?>" alt="<?php echo $image_name; ?>" />
    104.     <?php
    105.     if ($link) {
    106.         ?>
    107.         </a>
    108.         <?php
    109.     }
    110.     ?>
    111.     </div></td>
    112.     <td><div>
    113.     <?php
    114.     if ($link) {
    115.         ?>
    116.         <a href="<?php echo $link; ?>" target="_self">
    117.         <?php
    118.     }
    119.     ?>
    120.     <img src="<?php echo $image; ?>" border="0" width="<?php echo $width; ?>" height="<?php echo $height; ?>" alt="<?php echo $image_name; ?>" />
    121.     <?php
    122.     if ($link) {
    123.         ?>
    124.         </a>
    125.         <?php
    126.     }
    127.     ?>
    128.     </div></td>
    129.   </tr>
    130. </table>
    131.  
    132.    
    133.     <?php
    134.     }
    135. }
    136. }
    137. ?>

    Как прописть для каждого блока таблицы...?
     
  14. PavelCh
    Offline

    PavelCh Недавно здесь

    Регистрация:
    15.02.2006
    Сообщения:
    104
    Симпатии:
    6
    Пол:
    Мужской
    Эх, жаль что никто подсказать не может...
     

Поделиться этой страницей

Загрузка...