We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 33535
    • 14 Posts
    Добрый день или ночь grin
    Вопрос в следующем: у меня есть код на PHP, он выводит рандомно из папки картинки, но в MODX он выводит текс из картинок - так как еcли бы, .jpg переименовать в текстовый файл и открыть блокнотом
    Возможно ли средствами modx взять из назначенной папки картинки и менять их при перезагрузке/обновлении страницы? а если не возможно, то что делать с PHP кодом? код взят отсюда: http://automaticlabs.com/products/rotator
    p.s. код вставлялся в снипет и вызывался, вызавался из тела страницы посредством include - результат один

    Пасиб
      • 897
      • 1,620 Posts
      хрень какая-то smiley в модх своя пипатая галлерея есть. старшие товарищи меня поправят.
        "Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein."

        Не используйте Revo для "просто сайтов". Используйте Evo

        Who can defeat the Russian bear?
        • 33535
        • 14 Posts
        МНЕ не нужна галерея мне нужно чтобы в определеном месте на сайте динамически случайным образом менялись картинки, и все.
          • 609
          • 36 Posts
          Можно посмотреть на результат работы скрипта?
            • 897
            • 1,620 Posts
              "Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein."

              Не используйте Revo для "просто сайтов". Используйте Evo

              Who can defeat the Russian bear?
              • 22301
              • 1,084 Posts
              Всем привет! сходил, позырил скрипт. в php не рублю, но скриптец подправил, под себя, зато картинки выводит:)
              код ниже с моими комментариями:)

              надо задать:

              $folder ='[путь на серваке к кратинкам]/public_html/pic/';
              $folder_url = 'http://mysite.ru/pic/';        //Это урловый путь к картинкам, этот кусок я сам добавил
              


              дальше кусок кода, в котором я мало понимаю:)

              $extList = array();
              $extList['gif'] = 'image/gif';
              $extList['jpg'] = 'image/jpeg';
              $extList['jpeg'] = 'image/jpeg';
              $extList['png'] = 'image/png';
              
              $img = null;
              
              if (substr($folder,-1) != '/') {
              $folder = $folder.'/';
              }
              
              if (isset($_GET['img'])) {
              $imageInfo = pathinfo($_GET['img']);
              if (
                  isset( $extList[ strtolower( $imageInfo['extension'] ) ] ) &&
                      file_exists( $folder.$imageInfo['basename'] )
                  ) {
              $img = $folder.$imageInfo['basename'];
              }
              } else {
              $fileList = array();
              $handle = opendir($folder);
              while ( false !== ( $file = readdir($handle) ) ) {
              $file_info = pathinfo($file);
              if (
                  isset( $extList[ strtolower( $file_info['extension'] ) ] )
              ) {
              $fileList[] = $file;
              }
              }
              closedir($handle);
              
              if (count($fileList) > 0) {
              $imageNumber = time() % count($fileList);
              $img = $folder.$fileList[$imageNumber];
              $img_url = $folder_url.$fileList[$imageNumber];
              }
              }
              


              внимание!:) в верхнем куске я добавил $img_url = ...

              а теперь я вывожу картинки:

              $pic = "<img src='".$img_url."' alt=''>";
              
              echo $pic;
              
              


              да, весь код надо вставить в сниппет, а сниппет выводить на странице через [!snippet!] -- с восклицательными знаками, чтоб сниппет не кэшировался. если и будут ошибки, то только в пути к файлам...

              был там ещё кусок, но я неврубант, поэтому я его убрал, но привожу его здесь:

              if ($img!=null) {
              $imageInfo = pathinfo($img);
              $contentType = 'Content-type: '.$extList[ $imageInfo['extension'] ];
              header ($contentType);
              readfile($img);
              } else {
              if ( function_exists('imagecreate') ) {
              header ("Content-type: image/png");
              $im = @imagecreate (100, 100)
                  or die ("Cannot initialize new GD image stream");
              $background_color = imagecolorallocate ($im, 255, 255, 255);
              $text_color = imagecolorallocate ($im, 0,0,0);
              imagestring ($im, 2, 5, 5,  "IMAGE ERROR", $text_color);
              imagepng ($im);
              imagedestroy($im);
              }
              }
              


              всё вышеизложенное -- вовсе не рукодство к действию:) ни в коем разе, просто пример адаптации скрипта под modx. и ещё раз, я не (как говорят на англоязычном форуме) php-мастер, если чё:)
                [img]http://jurist-info.ru/pic/rrr.jpg[/img]

                Безжалостный пияр!
                Artima -- неуч!
                Осторожно: преступная локализация -- modx-cms.ru
                Баштанник Андрей -- мегапрограммер из Белоруссии и поедатель говна, очень критично настроенный молодой человек!

                Дисклеймер для общительных: даю сам себе право транслировать в открытый эфир содержание лички, just for fun
                • 22301
                • 1,084 Posts
                UPD

                в директорию с рисунками могут быть запиперены любые файлы, скрипт зацепит только картинки.
                  [img]http://jurist-info.ru/pic/rrr.jpg[/img]

                  Безжалостный пияр!
                  Artima -- неуч!
                  Осторожно: преступная локализация -- modx-cms.ru
                  Баштанник Андрей -- мегапрограммер из Белоруссии и поедатель говна, очень критично настроенный молодой человек!

                  Дисклеймер для общительных: даю сам себе право транслировать в открытый эфир содержание лички, just for fun
                  • 897
                  • 1,620 Posts
                  скрипт создавал картинку в памяти и отдавал её с content-type. ты же сделал чтоон у тебя тег имадж вставляет. я же кинул специально для целй рандомизации MiniGallery ссылку.
                    "Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein."

                    Не используйте Revo для "просто сайтов". Используйте Evo

                    Who can defeat the Russian bear?
                    • 22301
                    • 1,084 Posts
                    ага, именно так и есть...
                    по твоей ссылке сходил, да, прикольно, более универсальная вещь, но смущает js немного. а zilON’у, как я понял, нужен был элементарный скрипт для рандомной демонстрации картинок, плюс ко всему, он немного пока не рубит, как сочлинять php и modx, да и в php такой же мастер, как и я:)

                    к zilON’у:

                    сходи по ссылочке, глянь, как в адрес запихивать серверный и урловый пути атоматом, чтоб не париться в случае переноса сайта.

                    урловый путь можно указать так:
                    $folder_url = $modx->config[’site_url’].’pic/’;

                    серверный вот так:
                    $folder = $_SERVER["DOCUMENT_ROOT"].’/pic/’

                    если заморочиться совсем чуток, то можно "pic" вынести в параметры сниппета
                      [img]http://jurist-info.ru/pic/rrr.jpg[/img]

                      Безжалостный пияр!
                      Artima -- неуч!
                      Осторожно: преступная локализация -- modx-cms.ru
                      Баштанник Андрей -- мегапрограммер из Белоруссии и поедатель говна, очень критично настроенный молодой человек!

                      Дисклеймер для общительных: даю сам себе право транслировать в открытый эфир содержание лички, just for fun
                      • 33114
                      • 518 Posts
                      2 ziION:
                      на сайте Modx.ru один из трех баджей при загрузке страницы выводится следующим простым способом.
                      сниппет [!бадж!]:
                      $max = 3; //колличество баджей всего
                      $no = rand(1,$max);
                      return $no;
                      


                      и в коде вызывается так
                      /images/badge[!бадж!].jpg


                      естественно в папке /images/ должны лежать файлы badge1.jpg...badge3.jpg
                        http://modx.ru - российская поддержка MODx
                        http://newscup.ru - экспериментальный проект
                        http://yentsun.com - персональный сайт