Concrete5 具体5:何时以及如何在块控制器中使用duplicate()函数?
我发现很难理解控制器的duplicate()函数的概念 在C5文档中,它说:Concrete5 具体5:何时以及如何在块控制器中使用duplicate()函数?,concrete5,Concrete5,我发现很难理解控制器的duplicate()函数的概念 在C5文档中,它说: 复制块时自动运行。最有可能发生这种情况的是,已批准版本中的块被更新… 当一个已批准版本中的块被更新时,它不是像save()函数所处理的那样被保存了吗 我也不确定这个函数里面有什么。有人能澄清一下吗 此外,duplicate()函数是否处理从剪贴板粘贴块时的情况?在保存块之前,需要对其进行复制,以便将其保存到新版本。(然后,新版本与创建的新页面版本相关联。) 如果你看一下,你会发现基类有一个非常简单的复制方法。如果您的块
复制块时自动运行。最有可能发生这种情况的是,已批准版本中的块被更新…
当一个已批准版本中的块被更新时,它不是像save()函数所处理的那样被保存了吗
我也不确定这个函数里面有什么。有人能澄清一下吗
此外,duplicate()函数是否处理从剪贴板粘贴块时的情况?在保存块之前,需要对其进行复制,以便将其保存到新版本。(然后,新版本与创建的新页面版本相关联。) 如果你看一下,你会发现基类有一个非常简单的复制方法。如果您的块很简单(主要是因为它只有一个DB表),那么这应该可以很好地工作,并且您不必重载它 幻灯片块中有一个需要重载duplicate()的示例。它不仅有“普通”表,还有一个图像ID的链接表。因此,它首先调用父方法,该方法复制普通块表,然后自己进行复制 继续编辑/粘贴一些内容块,同时查看
块
表,您将看到何时创建新块。记住在编辑之间发布
您会注意到,当创建新的投标时,他们会得到一个新的投标
(这很有意义)。现在看一下btContentLocal
。您会注意到,每个新块ID都有一个新条目(与块
中的出价
匹配)。这就是duplicate()
所做的——每次编辑块时,它都会创建一个新行。一切都很好,它自动工作
但是如果在MyBlock的第二个表中有一些行,那么我保证这些行不会使用新的bID
创建/复制。因此,如果块依赖具有bID
链接到块实例的辅助表,则新(更新)块将具有新的bID
,并且无法“查找”旧记录
幻灯片就是这样做的。您有出价
==1。有一堆btSlideshowImg
行,其中bID
1,每个文件一行。编辑幻灯片块时,您会得到bID
==2。现有的btSlideshowImg
行不会使用新的bID
进行更新,它们会被保留,以便您可以还原版本。(这就是恢复工作正常的原因…不是duplicate()
处理的恢复,而是新版本。)
(从剪贴簿(剪贴板)粘贴块后,不会立即调用Duplicate()。这与创建特定页面类型的新页面非常相似——该块最初是作为别名创建的,只有在首次编辑时才会复制,但Duplicate()会被调用。)在保存块之前,它需要复制,以便保存到新版本。(然后,新版本与创建的新页面版本相关联。)
如果你看一下,你会发现基类有一个非常简单的复制方法。如果您的块很简单(主要是因为它只有一个DB表),那么这应该可以很好地工作,并且您不必重载它
幻灯片块中有一个需要重载duplicate()的示例。它不仅有“普通”表,还有一个图像ID的链接表。因此,它首先调用父方法,该方法复制普通块表,然后自己进行复制
继续编辑/粘贴一些内容块,同时查看块
表,您将看到何时创建新块。记住在编辑之间发布
您会注意到,当创建新的投标时,他们会得到一个新的投标
(这很有意义)。现在看一下btContentLocal
。您会注意到,每个新块ID都有一个新条目(与块
中的出价
匹配)。这就是duplicate()
所做的——每次编辑块时,它都会创建一个新行。一切都很好,它自动工作
但是如果在MyBlock的第二个表中有一些行,那么我保证这些行不会使用新的bID
创建/复制。因此,如果块依赖具有bID
链接到块实例的辅助表,则新(更新)块将具有新的bID
,并且无法“查找”旧记录
幻灯片就是这样做的。您有出价
==1。有一堆btSlideshowImg
行,其中bID
1,每个文件一行。编辑幻灯片块时,您会得到bID
==2。现有的btSlideshowImg
行不会使用新的bID
进行更新,它们会被保留,以便您可以还原版本。(这就是恢复工作正常的原因…不是duplicate()
处理的恢复,而是新版本。)
(从剪贴簿(剪贴板)粘贴块后,不会立即调用Duplicate()。这与创建特定页面类型的新页面非常相似——该块最初是作为别名创建的,只有在您第一次编辑时才会复制,但Duplicate()会被调用。)每当分配模板或复制/粘贴块时,都会调用复制功能
对于需要保存在多个表中的附加组件,复制函数是必不可少的
加载项只能识别一个表,并且只能自动管理该表
滑落