如何从 Batflat CMS 仅发送图库 IMG

How To Emit Only Gallery IMGs from Batflat CMS

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

创建 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 的管理系统中激活这个不活动的模块。您会注意到它没有管理面板——因为它不需要一个。你已经有了画廊之一。不要停用 Galleries 模块,因为 Gallerymod 模块依赖于 Galleries 模块。

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

    [ 来解决它=48=]
  3. 在 Batflat 管理系统中,返回并在图库中编辑您的图像标题。将这些标题视为 slug(带破折号的小写字母数字短语),因为它们在 gallery-alt1.html 的 IMG 标签上用作 class 名称,您可能希望在 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 的版本,您可能需要再次重新应用此自定义 -- 这取决于在更新现有画廊模块时所做的工作。

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

另一个调试技巧,以防您的网站无法加载或管理系统崩溃,编辑 inc/core/defines.php 并将 DEV_MODE 更改为 false。这样,PHP 会向您显示每个错误,这可能会帮助您调试可能出错的地方。