【问题标题】:GRAV display all page.media itemsGRAV 显示所有 page.media 项目
【发布时间】:2018-10-05 05:35:28
【问题描述】:

我正在使用 GRAV cms 创建一个网站,我偶然发现了一个需要帮助的问题...我创建了一个页面,我希望它列出我在 GRAV 中上传的所有 pdf 文件。我希望输出看起来像这样:

纯硬编码的 HTML 如下所示:

    <div class="container pt-5 pb-5">
        <div class="row">
            <div class="col-6">
                <ul class="downloads">
                    <li class="download-item pb-3">
                        <i class="fas fa-file-pdf fa-lg"></i>
                        <a href="./assets/downoads/file.pdf" class="action-btn m-0" download</a>
.
. etc...
.
                    </li>
    </ul>
    </div>
    </div>
    </div>

&lt;li&gt;&lt;/li&gt; 的重复次数与 pdf-s 的数量一样多...

grav HTML 和 Twig 组合如下所示:

<div class="container pt-5 pb-5">
    <div class="row">
        <div class="col-12">
            <ul class="downloads">
                {% for pdf in page.media %}
                    <li class="download-item pb-3">
                        <i class="fas fa-file-pdf fa-lg"></i>
                        <a href="{{ pdf.url }}" class="action-btn m-0" download></a>
                    </li>
                {% endfor %}
            </ul>
        </div>
    </div>
</div>

现在这段代码不起作用,它会产生这个错误: Twig_Error_Syntax: 值“.”的意外标记“标点符号” (“运算符”的值应为“in”)。

我也试过这个:

<div class="container pt-5 pb-5">
    <div class="row">
        <div class="col-12">
            <ul class="downloads">
                {% for manuals in page.media %}
                    <li class="download-item pb-3">
                        <i class="fas fa-file-pdf fa-lg"></i>
                        {% set pdf = manuals.media %}
                        <a href="{{ pdf.url }}" class="action-btn m-0" download></a>
                    </li>
                {% endfor %}
            </ul>
        </div>
    </div>
</div>

还有这个:

<div class="container pt-5 pb-5">
    <div class="row">
        <div class="col-12">
            <ul class="downloads">
                <li class="download-item pb-3">
                    <i class="fas fa-file-pdf fa-lg"></i>

                    <a href="{{ page.media.url('/pdf') }}" class="action-btn m-0" download></a>
                </li>
            </ul>
        </div>
    </div>
</div>

这两个结果都没有产生像上面这样的错误......页面加载但在检查元素模式下&lt;a&gt;&lt;/a&gt;标签是空的(看起来像这样):

<a href="" class="action-btn m-0" download=""></a>

我怎样才能做到这一点或我的代码有什么问题??

【问题讨论】:

    标签: html twig content-management-system markdown grav


    【解决方案1】:

    <div class="container pt-5 pb-5">
        <div class="row">
            <div class="col-12">
                <ul class="downloads">
    <?PHP
        $path = "./filespath/"; //set the path of the folder that contains the files
        $dir_handle = @opendir($path) or die("Unable to open $path");
        while ($file = readdir($dir_handle)) 
        {if($file!="." && $file!=".." && is_file($path.$file)){$f[] = $file;}}
        closedir($dir_handle);
    	if(count($f)>0){
        sort($f);//Set an order of the files
        $newpath=substr($path,2);//this takes out the ./ of the path
        foreach ($f as $val) {
        echo '
        <li class="download-item pb-3">
        <i class="fas fa-file-pdf fa-lg"></i>
        <a href="'.$newpath.$val.'" class="action-btn m-0" download>'.substr($val,0,-4).'</a><br>
        </li>
        ';
        }
    	}
    ?>
                    
                </ul>
            </div>
        </div>
    </div>

    我不知道 GRAV 是如何工作的,但是这个 PHP 代码应该可以帮助你。您只需更改文件所在的文件路径。 您的文件所在文件夹的路径,例如:falconimogollon.com/here/there/filesarehere/ 您只需设置 $path = "./here/there/filesarehere/"; 如果您需要进一步的帮助,请回复我。祝你好运

    【讨论】:

      猜你喜欢
      • 2017-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多