image - 如何从 Batflat CMS 中仅发出图库 IMG
问题描述
如果您在Batflat CMS中创建图库,它创建的模板标签将为图库生成其唯一的 Bootstrap HTML。如果我只想为画廊项目发出 IMG 标签怎么办?
解决方案
创建一个 Gallerymod 自定义模块。这样一来,您的自定义设置可能会在 Batflat 更新后继续存在。
- 将 inc/modules/galleries 复制为 inc/modules/gallerymod。
- 删除您的 gallerymod 文件夹中的 lang 文件夹和 Admin.php。
- 更改gallerymod/Info.php 中的名称和描述以及注释。我使用静态字符串而不是代码。同样在此文件中,在安装函数和卸载函数中,删除其中的代码,使其在安装或卸载时不执行任何操作。
- 在您的 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;
.
- 在您的 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}
现在在 Batflat 的管理系统中激活这个非活动模块。您会注意到它没有管理面板——因为它不需要管理面板。您已经拥有画廊之一。不要停用画廊模块,因为 Gallerymod 模块依赖于画廊模块。
现在,从您的自定义主题模板中,您可以通过改变调用旧 slug 的方式来调用它。因此,如果您调用画廊的旧方式类似于
{$gallery.home-photos}
,那么您只需在末尾加上“-alt1”并将其称为{$gallery.home-photos-alt1}
。我喜欢将它们包装在一个带有 ID 的 DIV 包装器中,以便我可以使用 CSS、jQuery 或 Javascript 来处理它。在 Batflat 管理系统中,返回并在图库中编辑您的图像标题。将这些标题视为 slug(带有破折号的小写字母数字短语),因为它们在 gallery-alt1.html 中的 IMG 标记上用作类名,您可能希望稍后在 CSS、jQuery 或 Javascript 中单独处理这些问题。
刷新您的浏览器,您可能会看到源代码显示类似于:
<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 将向您显示每个错误,这可能有助于您调试可能出现的错误。
推荐阅读
- azure - 天蓝色数据工厂中的文件格式
- pandas - 如何根据熊猫中其他列的唯一值添加行
- spring-boot - 如何将 Spring Pageable 传递给 FeignClient
- javascript - GWT 框架应用程序在 IE11 中工作,但在 chrome 中不工作
- python - 是否可以在数据库(Firebase 或任何其他)中以类似于数组的方式存储具有值的图像?
- php - Google API PHP 客户端和 __Secure-XXX 会话名称
- c# - 在持续运行基于 Timer 的事件编程时,事件发生了超出预期的跳跃。为什么会这样?
- java - Webdriver:通过占位符文本定位输入框,然后通过 sendkey("test text") 将文本定位到输入框
- jquery - 如何显示数据以从 ajax 发布响应中选择选项以在 laravel 中查看
- amazon-web-services - 是否可以在 'waf-regional' web-acls 上添加标签?