首页 > 解决方案 > 如何从 Batflat CMS 中仅发出图库 IMG

问题描述

如果您在Batflat CMS中创建图库,它创建的模板标签将为图库生成其唯一的 Bootstrap HTML。如果我只想为画廊项目发出 IMG 标签怎么办?

标签: imagecontent-management-systemtemplate-engine

解决方案


创建一个 Gallerymod 自定义模块。这样一来,您的自定义设置可能会在 Batflat 更新后继续存在。

  1. 将 inc/modules/galleries 复制为 inc/modules/gallerymod。
  2. 删除您的 gallerymod 文件夹中的 lang 文件夹和 Admin.php。
  3. 更改gallerymod/Info.php 中的名称和描述以及注释。我使用静态字符串而不是代码。同样在此文件中,在安装函数和卸载函数中,删除其中的代码,使其在安装或卸载时不执行任何操作。
  4. 在您的 gallerymod/Site.php 中,查找$assign[$gallery['slug']]分配,然后在以下行中添加:
$assign[$gallery['slug'] . '-alt1'] = $this->draw('gallery-alt1.html', ['gallery' => $tempAssign]);

此外,如果您将命名空间行设置为namespace Inc\Modules\Galleries;,请将其更改为namespace Inc\Modules\Gallerymod;.

  1. 在您的 gallerymod/view 文件夹中,创建一个 gallery-alt1.html 文件并添加以下内容:
{loop: $gallery.items}
<img class="photo-{if: $value.title}{$value.title}{/if}" alt="" class="img-responsive" src="{?=url($value.src.lg)?}">
{/loop}
  1. 现在在 Batflat 的管理系统中激活这个非活动模块。您会注意到它没有管理面板——因为它不需要管理面板。您已经拥有画廊之一。不要停用画廊模块,因为 Gallerymod 模块依赖于画廊模块。

  2. 现在,从您的自定义主题模板中,您可以通过改变调用旧 slug 的方式来调用它。因此,如果您调用画廊的旧方式类似于{$gallery.home-photos},那么您只需在末尾加上“-alt1”并将其称为{$gallery.home-photos-alt1}。我喜欢将它们包装在一个带有 ID 的 DIV 包装器中,以便我可以使用 CSS、jQuery 或 Javascript 来处理它。

  3. 在 Batflat 管理系统中,返回并在图库中编辑您的图像标题。将这些标题视为 slug(带有破折号的小写字母数字短语),因为它们在 gallery-alt1.html 中的 IMG 标记上用作类名,您可能希望稍后在 CSS、jQuery 或 Javascript 中单独处理这些问题。

  4. 刷新您的浏览器,您可能会看到源代码显示类似于:

<div id="hidden-images" class="hidden">
  <img class="photo-man2" alt="" class="img-responsive" src="https://example.com/uploads/galleries/2/15831273220.jpg">
  <img class="photo-woman1" alt="" class="img-responsive" src="https://example.com/uploads/galleries/2/15831272980.jpg">
  <img class="photo-man1" alt="" class="img-responsive" src="https://example.com/uploads/galleries/2/15831272540.jpg">
</div><!-- hidden-images -->

请记住,如果您更新 Batflat 版本,您可能需要再次重新应用此自定义 - 这取决于对现有画廊模块的更新中所做的事情。

如果您对如何格式化图像有不同的喜好,只需编辑您的 gallery-alt1.html 文件。另外,您可以针对不同的情况制作多个这些,例如 gallery-alt2.html、gallery-alt3.html 等。您甚至可以使其发出 JSON 而不是 html,以便您可以将其插入到您的 Javascript 块中主题。

如果您的站点无法加载或管理系统崩溃,另一个调试技巧是编辑 inc/core/defines.php 并将 DEV_MODE 更改为 false。这样,PHP 将向您显示每个错误,这可能有助于您调试可能出现的错误。


推荐阅读