Example #1
0
function synved_option_wp_upgrader_source_selection($source, $remote_source, $object = null)
{
    if (is_wp_error($source)) {
        return $source;
    }
    if ($object != null && $object instanceof Plugin_Upgrader && method_exists($object, 'check_package')) {
        $result = $object->check_package($source);
        if (is_wp_error($result)) {
            $folder_name = basename($source);
            $addon_item = synved_option_item_query(null, array(array('type' => 'addon'), array('folder' => $folder_name)));
            if ($addon_item != null) {
                // XXX fix this $id/$name retrieval...ugly
                $id = $addon_item['_synved_option_id'];
                $name = $addon_item['_synved_option_name'];
                $addon_page = synved_option_item_page($id, $name);
                $page_item = synved_option_item($id, $addon_page);
                $page_label = synved_option_item_label($page_item);
                $page_url = synved_option_item_page_link_url($id, $name);
                $source = new WP_Error('synved_option_invalid_plugin_is_addon', sprintf(__('<b>This addon must be installed through the <a href="%s">%s settings page</a>.</b>'), $page_url, $page_label), '');
            }
        }
    }
    return $source;
}
function synved_option_item_find($id, $name)
{
    return synved_option_item_query($id, array('name' => $name));
}