public static function read_by_key($key) { $evaluator = self::read(['*'], TRUE, ["`key` = ?", $key]); if (isset($evaluator['id'])) { $evaluator['downloads'] = EvaluatorDownload::read_by_evaluator_id($evaluator['id']); } return $evaluator; }
<div class="content left"> <table class="data"> <thead> <th>Evaluator/Email/Phone/Key</th> <th>Company/URL/Script</th> <th>Date/IP</th> <th>Platform</th> <th>Version</th> <th>Download</th> <th>Installed</th> </thead> <tbody> <?php $evaluators = Evaluator::read(['*'], FALSE, ['email_date > CURRENT_DATE - INTERVAL 2 MONTH'], 'email_date DESC'); foreach ($evaluators as $evaluator) { $downloads = EvaluatorDownload::read_by_evaluator_id($evaluator['id']); $downs = []; if (is_array($downloads)) { foreach ($downloads as $download) { if ($download['download_date']) { $installed = $download['installed_count'] > 0 ? $download['installed_date'] . '(' . $download['installed_count'] . ')' : '?'; $downs[] = ['platform' => $download['platform'], 'version' => $download['version'], 'download' => $download['download_date'], 'installed' => $installed]; } } } if (count($downs) == 0) { $downs[] = ['platform' => '', 'version' => '', 'download' => '', 'installed' => '']; } echo '<tr>'; foreach (['name/email/phone/key', 'company/url/scripting', 'email_date/ip'] as $field) { $fields = explode('/', $field);
public function installed($params = []) { $key = $params['key']; $version = $params['version']; $status = isset($params['Status']) ? $params['Status'] : ''; $evaluator = Evaluator::read_by_key($key); if (isset($evaluator['downloads']) && $version >= 1 && $version <= count($evaluator['downloads'])) { // downloads are in reverse order (newest to oldest) // version number 1 is the oldest $idx = count($evaluator['downloads']) - $version; $id = $evaluator['downloads'][$idx]['id']; $update = ['installed_date' => gmdate('Y-m-d'), 'status' => $status]; EvaluatorDownload::update($update, $id, 'installed_count = installed_count+1'); } // show the news page Render::html(Doc::by_name('news')['content']); }