/** * Prepare an individual key view. * * @since 1.0 * * @param Release $release * * @return array */ protected function prepare_record(Release $release) { if ($release->get_start_date()) { $start_date = $release->get_start_date()->format(get_option('date_format')); } else { $start_date = '-'; } $updated = $release->get_total_updated(); $total_activations = $release->get_total_active_activations(); $total_activations = max(1, $total_activations); $percent = min(number_format($updated / $total_activations * 100, 0), 100); $data = array('ID' => $release->get_ID(), 'release' => (string) $release, 'status' => $release->get_status(false), 'type' => $release->get_type(true), 'updated' => "{$percent}%", 'start_date' => $start_date); /** * Filter the columns on the releases list table. * * @since 1.0 * * @param array $data * @param Release $release */ $data = apply_filters('itelic_releases_list_table_columns', $data, $release); return $data; }
/** * Create an Upgrade record. * * @since 1.0 * * @param Activation $activation * @param Release $release * @param \DateTime $update_date * @param string $previous_version * * @return Update|null * @throws DB_Exception */ public static function create(Activation $activation, Release $release, \DateTime $update_date = null, $previous_version = '') { if ($update_date === null) { $update_date = make_date_time(); } if (empty($previous_version) && $activation->get_release()) { $previous_version = $activation->get_release()->get_version(); } $data = array('activation' => $activation->get_id(), 'release_id' => $release->get_ID(), 'update_date' => $update_date->format("Y-m-d H:i:s"), 'previous_version' => $previous_version); $db = Manager::make_simple_query_object('itelic-updates'); $ID = $db->insert($data); $update = self::get($ID); if ($update) { $activation->set_release($release); /** * Fires when an update record is created. * * @since 1.0 * * @param Update $update */ do_action('itelic_create_update', $update); Cache::add($update); } return $update; }
/** * Get data to display for a single key. * * @param \ITELIC\Activation|\ITELIC\Release $release * @param bool $raw * * @return array */ protected function get_fields_for_object(\ITELIC\Release $release, $raw = false) { if ($release->get_start_date()) { $started = $release->get_start_date()->format(DateTime::ISO8601); } else { $started = '-'; } return array('ID' => $release->get_ID(), 'product' => $raw ? $release->get_product()->ID : $release->get_product()->post_title, 'version' => $release->get_version(), 'type' => $release->get_type(!$raw), 'status' => $release->get_status(!$raw), 'download' => $raw ? $release->get_download()->ID : $release->get_download()->post_title, 'started' => $started, 'changelog' => $release->get_changelog()); }