'Copy all the plugins to a new page.
:param target: The page where the new content should be stored'

def _copy_contents(self, target, language):

    from cms.models.pluginmodel import CMSPlugin
    from cms.plugin_pool import plugin_pool
    plugin_pool.set_plugin_meta()
    for plugin in CMSPlugin.objects.filter(placeholder__page=target, language=language).order_by('-depth'):
        (inst, cls) = plugin.get_plugin_instance()
        if (inst and getattr(inst, 'cmsplugin_ptr_id', False)):
            inst.cmsplugin_ptr = plugin
            inst.cmsplugin_ptr._no_reorder = True
            inst.delete(no_mp=True)
        else:
            plugin._no_reorder = True
            plugin.delete(no_mp=True)
    new_phs = []
    target_phs = target.placeholders.all()
    for ph in self.get_placeholders():
        plugins = ph.get_plugins_list(language)
        found = False
        for target_ph in target_phs:
            if (target_ph.slot == ph.slot):
                ph = target_ph
                found = True
                break
        if (not found):
            ph.pk = None
            ph.save()
            new_phs.append(ph)
        if plugins:
            copy_plugins_to(plugins, ph)
    target.placeholders.add(*new_phs)
