本文整理汇总了PHP中BlockInstance::copy方法的典型用法代码示例。如果您正苦于以下问题:PHP BlockInstance::copy方法的具体用法?PHP BlockInstance::copy怎么用?PHP BlockInstance::copy使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BlockInstance
的用法示例。
在下文中一共展示了BlockInstance::copy方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: copy_contents
public function copy_contents($template)
{
$artefactcopies = array();
// Correspondence between original artefact ids and id of the copy
$this->set('numcolumns', $template->get('numcolumns'));
$this->set('numrows', $template->get('numrows'));
$this->set('layout', $template->get('layout'));
if ($template->get('owner') == 0 && $template->get('type') == 'portfolio') {
$this->set('description', '');
} else {
$this->set('description', $this->copy_description($template, $artefactcopies));
}
$this->set('tags', $template->get('tags'));
$this->set('columnsperrow', $template->get('columnsperrow'));
$blocks = get_records_array('block_instance', 'view', $template->get('id'));
$numcopied = array('blocks' => 0);
if ($blocks) {
foreach ($blocks as $b) {
safe_require('blocktype', $b->blocktype);
$oldblock = new BlockInstance($b->id, $b);
if ($oldblock->copy($this, $template, $artefactcopies)) {
$numcopied['blocks']++;
}
}
}
// Go back and fix up artefact references in the new artefacts so
// they also point to new artefacts.
if ($artefactcopies) {
foreach ($artefactcopies as $oldid => $copyinfo) {
$a = artefact_instance_from_id($copyinfo->newid);
$a->update_artefact_references($this, $template, $artefactcopies, $oldid);
$a->commit();
}
}
$numcopied['artefacts'] = count($artefactcopies);
return $numcopied;
}