首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >显示所有page.media项目

显示所有page.media项目
EN

Stack Overflow用户
提问于 2018-10-05 05:35:28
回答 1查看 596关注 0票数 1

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

(纯硬编码的HTML )如下所示:

代码语言:javascript
复制
    <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>

<li></li>作为manny倍被重复作为pdf-s的数量.

的grav和Twig组合如下所示:

代码语言:javascript
复制
<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")。

我也试过这样做:

代码语言:javascript
复制
<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>

和这个:

代码语言:javascript
复制
<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>

这两个结果都没有产生像上面这样的错误.页面已加载,但在检查元素模式下,<a></a>标记是空的(如下所示):

代码语言:javascript
复制
<a href="" class="action-btn m-0" download=""></a>

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-05 06:50:08

代码语言:javascript
复制
<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代码应该可以帮助您。您只需更改文件所在的文件路径即可。您的文件所在文件夹的路径( ex: Falconimogollon.com/here/here/filesarehere/您只设置了$path =“./here/here/filesarehere/”);如果需要进一步的帮助,请回复我。祝好运

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52658932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档