0

使用 ModX Revolution,我可以设置一组电视来创建可编辑的幻灯片,并将电视分配给我想要的任何模板资源。(选中)

问题是,如果我想在不同的文档上运行幻灯片,幻灯片的值必须在电视分配到的每个文档上设置,这很麻烦,因为我的目标是创建一组电视和一次值已设置,此值(图像、文本、w/e)应该出现在每个文档(模板、页面等)上,但相反,我必须在每个文档上输入相同的重复数据。

然后我想到了这个。如果我可以只为幻灯片创建一个资源文档,然后将此文档调用到我想要的页面怎么办?这个想法对我来说听起来不错,因为它允许我在单个文档上编辑 TV 值并将其显示在我想要的任何位置,但问题是我根本不知道如何调用资源文档。

它是这样的。

  • 创建一个包含滑块模板的块 [[$slider]]。
  • 创建一组电视。(每个图像之一)[[*slider1]]、[[*slider2]] 等。
  • 将电视放在滑块块内,并用电视替换图像链接。这允许通过简单地将图像上传到相册并在电视中调用图像来轻松更改图像。
  • 将 [[$slider]] 块放在我希望它出现的模板中,然后在另一个文档中调用该模板文档。

我希望这是一个足够清楚的解释。

谢谢,

4

1 回答 1

1

这是我的做法:

  1. 通过包管理安装MIGX 。MIGX 不是使用一些静态电视来保存您的图像,而是允许用户潜在地添加无限数量,并带有用于标题、alt 标签等的额外字段。
  2. 遵循 Mark Hamstra 关于使用 MIGX 管理画廊的优秀教程。在您的主页或专用的“滑块”资源上进行设置

完成此操作后,您需要进行一些调整以在多个页面上使用parseMIGXtoGallery代码段:

$output = array();
$sliderID = $modx->getOption('sliderRes');
$sliderRes = $modx->getObject('modResource',$sliderID);
if ($sliderRes) {
    $sliderTV = $sliderRes->getTVValue('nameOfSliderTV');
    $input = $modx->fromJSON($sliderTV);
    if (!$input || empty($tpl)) return 'no stuff';
    foreach ($input as $row) {
      if (isset($set) && !empty($set) && ($set != $row['set'])) continue;
      $output[] = $modx->getChunk($tpl, $row);
    }
}
return implode("\n", $output);

您需要nameOfSliderTV用...替换您的滑盖电视的名称。

然后,不要使用input片段上的选项,而是将其添加&sliderRes并设置为滑块资源的 id(假设它是 6):

[[mh.parseMIGXToGallery? 
  &tpl=`mh.images.gallery.tpl` 
  &sliderRes=`6` 
  &set=`name of the set`
]]

请注意,通过这种方式,您实际上可以使用 Set 在幻灯片资源上设置多个幻灯片。

于 2013-01-03T09:38:38.357 回答