Обновление dotcms 2.5.7 до 3.7.2 $ folder = $ fileRepository_filesList.get (0) .folder - не возвращает идентификатор папки - PullRequest
0 голосов
/ 10 октября 2019

Помогите пожалуйста:)

Я обновил dotcms с 2.5.7 до 3.7.2.

Следующий код действительно связан с кнопкой, которая открывает слайд-шоу.

Этот код работал в старых cms, но не в Funy 3.7.2! - Если я не вошел в бэкэнд, этот код работает, иначе он не будет.

Чтобы просмотреть кнопку для слайд-шоу, вам нужно войти, но не в бэкэнд! Что я скучаю по парням?

Как получить список файлов из папки, в которой есть 4 дочерних элемента (папки в ней), которые содержат изображения, а затем я мог бы использовать его с javascript?

# set ($folder = $ fileRepository_filesList.get (0) .folder) - эта строка должна возвращать идентификатор папки, но ничего не возвращает (это просто $ folder). Если я вошел в бэкэнд, эта строка возвращает идентификатор (61763395-ca41-4446-95cc-4ddfbaaf0cea ). Почему?

Большое спасибо за помощь!


#if((($UtilMethods.isSet($user) && $cmsuser.isUserRole($user, "Taa Primerjava Konkurence")) || $EDIT_MODE) && ($langId == 1 || $langId == 3 ||$langId == 4 ||$langId == 7))
      <tr>
        <td id="servis6" data-servis="konkurenca">
          <a id="gumb-konkurenca" href="#konkurenca" data-toggle="modal" href="#konkurenca" data-target="#konkurenca"><div>$text.get('servis.primerjava-konkurence-vitli')</div></a>
          #set ($lan = $languagewebapi.getLanguage($langId))
          #set ($langStr = $lan.languageCode + "-" + $lan.countryCode.toLowerCase())
          #set ($fileSrc = "/docs/primerjava-konkurence/vitli/" + $langStr)
          #set($fileRepositorySourceCode = "/application/files_konkurenca_new.vtl")
          #fileRepository("$fileSrc")
        </td>
      </tr>
      #end

VTL file:


#set($hasParent = false)
#if($fileRepository_showFolder != $fileRepository_rootFolder)
#set($hasParent = true)
#set($fileRepository_upFolder = ${UtilMethods.getParentFolder($fileRepository_showFolder, $host).getPath()})
#else
#if(!$fileRepository_showFolder.endsWith("/"))
  #set ($fileRepository_showFolder = ${fileRepository_showFolder} + "/" )
#end
#end

#set($folder = $fileRepository_filesList.get(0).folder)  ##Folder should now be "61763395-ca41-4446-95cc-4ddfbaaf0cea" but it is empty

<script>
$(document).ready(function(){
  $('#gumb-konkurenca').one('click', function(){
    $('#konkurenca .modal-body').prepend('<img class="close-info" src="/img/buttons/x.png" alt="x" />');
    $('#konkurenca .modal-body').append('&lt;script&gt;$(".close-info").click(function(){$("#konkurenca").modal("hide")});&lt;/script&gt;'.replace(/&{1}lt;{1}/g,"<").replace(/&{1}gt;{1}/g,">"));
    $('#konkurenca script').each(function() {
      $.globalEval($(this).text());
    });
    var dataQuery = "/api/content/render/false/type/json/query/%2BstructureName:FileAsset%20%2BconFolder:" + "$folder" + "*%20%2Bdeleted:false%20%20%2Bworking:true/orderby/FileAsset.title%20asc/limit/0";  ## This is empty then, beacuse of $folder
    $.ajax({
      url: dataQuery,
      data: '',
      dataType: 'json',
      success: function(data){
        $("#slider-konkurenca .slides").html('');
        $("#carousel-konkurenca .slides").html('');
        $.each(data.contentlets, function(i, contentlet) {
          $("#slider-konkurenca .slides").append('<li><img src="/dotAsset/' + contentlet.identifier + '" /></li>');
          var w = contentlet.metaData.width;
          var h = contentlet.metaData.height;
          if(h/w > 0.75){
            $("#carousel-konkurenca .slides").append('<li><img src="/contentAsset/image/' + contentlet.inode + '/fileAsset/byInode/1/filter/Resize,Crop/resize_w/100/crop_w/100/crop_h/75/crop_x/0/crop_y/' + Math.floor((100*h/w-75)/2) + '" /></li>');
          }
          else{
            $("#carousel-konkurenca .slides").append('<li><img src="/contentAsset/image/' + contentlet.inode + '/fileAsset/byInode/1/filter/Resize,Crop/resize_h/75/crop_w/100/crop_h/75/crop_x/' + Math.floor((75*w/h-100)/2) + '/crop_y/0" /></li>');
          }
        });
        setTimeout(function(){
          $("#carousel-konkurenca").flexslider({
            namespace: "galleryNav-",
            animation: "slide",
            controlNav: false,
            animationLoop: false,
            slideshow: false,
            itemWidth: 105,
            itemMargin: 5,
            asNavFor: "#slider-konkurenca"
          });
          $("#slider-konkurenca").flexslider({
            namespace: "gallery-",
            animation: "slide",
            controlNav: false,
            animationLoop: false,
            slideshow: false,
            sync: "#carousel-konkurenca"
          });
        },1000);
      }
    });
  });
  $('#gumb-konkurenca').on('click', function(){
    $('#konkurenca').modal('toggle');
  });

  $(document).keydown(function(e) {
    $('#konkurenca.in').modal('hide');
  });
  $(window).blur(function(){
    $('#konkurenca.in').modal('hide');
  });
});
</script> ```


1 Ответ

1 голос
/ 14 октября 2019

Так что я думаю, что CMS Anon не имеет доступа для чтения к файлам. Вы можете попытаться получить идентификатор папки, используя что-то вроде

$folderAPI.findCurrentFolder("/path", $host).id

, где путь - это путь к папке, которую вы ищете. Кроме того, зачем вам переходить с версии EOL на другую версию EOL - вам лучше перейти на последнюю версию.

...