コード例 #1
0
function uninstall_for_current_blog()
{
    global $wpdb;
    Model\Feed::destroy();
    Model\FileType::destroy();
    Model\EpisodeAsset::destroy();
    Model\MediaFile::destroy();
    Model\Episode::destroy();
    Model\Template::destroy();
    Model\DownloadIntent::destroy();
    Model\DownloadIntentClean::destroy();
    Model\UserAgent::destroy();
    Model\GeoArea::destroy();
    Model\GeoAreaName::destroy();
    do_action('podlove_uninstall_plugin');
    // trash all episodes
    $query = new \WP_Query(['post_type' => 'podcast']);
    if ($query->have_posts()) {
        while ($query->have_posts()) {
            $query->the_post();
            wp_trash_post(get_the_ID());
        }
    }
    wp_reset_postdata();
    // delete everything from wp_options
    $wpdb->query('DELETE FROM `' . $wpdb->options . '` WHERE option_name LIKE "%podlove%"');
}
コード例 #2
0
 /**
  * Save episode assets based on checkbox data.
  *
  * @param \Podlove\Model\Episode $episode
  * @param  array $checkbox_data Raw form data for checkboxes.
  *               Contains 'on' for checked boxes and no entry at all for unchecked ones.
  */
 function save_episode_assets($episode, $checkbox_data)
 {
     // create array where the keys are asset_ids and values false
     $assets = array_map(function ($_) {
         return false;
     }, array_flip(array_map(function ($l) {
         return $l->id;
     }, Model\EpisodeAsset::all())));
     // set those assets to true where the checkbox is set
     foreach ($assets as $id => $_) {
         if (isset($checkbox_data[$id]) && $checkbox_data[$id] === 'on') {
             $assets[$id] = true;
         }
     }
     // create new ones, delete unchecked ones
     foreach ($assets as $episode_asset_id => $episode_asset_value) {
         $file = Model\MediaFile::find_by_episode_id_and_episode_asset_id($episode->id, $episode_asset_id);
         if ($file === NULL && $episode_asset_value) {
             $file = new Model\MediaFile();
             $file->episode_id = $episode->id;
             $file->episode_asset_id = $episode_asset_id;
             $file->save();
         } elseif ($file !== NULL && !$episode_asset_value) {
             $file->delete();
         }
     }
 }
コード例 #3
0
ファイル: plugin.php プロジェクト: rthees/podlove
function uninstall_for_current_blog()
{
    Model\Feed::destroy();
    Model\FileType::destroy();
    Model\EpisodeAsset::destroy();
    Model\MediaFile::destroy();
    Model\Show::destroy();
    Model\Episode::destroy();
    Model\Release::destroy();
}