Loading app/Config/Routes.php +8 −0 Original line number Diff line number Diff line Loading @@ -121,6 +121,14 @@ $routes->group( 'as' => 'podcast-analytics', 'filter' => 'permission:podcasts-view,podcast-view', ]); $routes->get( 'analytics-data/(:segment)', 'AnalyticsData::getData/$1/$2', [ 'as' => 'analytics-full-data', 'filter' => 'permission:podcasts-view,podcast-view', ] ); $routes->get( 'analytics-data/(:segment)/(:segment)', 'AnalyticsData::getData/$1/$2/$3', Loading app/Controllers/Admin/AnalyticsData.php +3 −2 Original line number Diff line number Diff line Loading @@ -23,14 +23,15 @@ class AnalyticsData extends BaseController public function _remap($method, ...$params) { if (count($params) > 2) { if (count($params) > 1) { if (!($this->podcast = (new PodcastModel())->find($params[0]))) { throw \CodeIgniter\Exceptions\PageNotFoundException::forPageNotFound( 'Podcast not found: ' . $params[0] ); } $this->className = '\App\Models\Analytics' . $params[1] . 'Model'; $this->methodName = 'getData' . $params[2]; $this->methodName = 'getData' . (empty($params[2]) ? '' : $params[2]); if (count($params) > 3) { if ( !($this->episode = (new EpisodeModel()) Loading app/Database/Migrations/2020-06-08-120000_add_analytics_podcasts.php +7 −2 Original line number Diff line number Diff line <?php /** * Class AddAnalyticsPodcastsByCountry * Creates analytics_podcasts_by_country table in database * Class AddAnalyticsPodcasts * Creates analytics_podcasts table in database * @copyright 2020 Podlibre * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 * @link https://castopod.org/ Loading Loading @@ -30,6 +30,11 @@ class AddAnalyticsPodcasts extends Migration 'constraint' => 10, 'default' => 1, ], 'unique_listeners' => [ 'type' => 'INT', 'constraint' => 10, 'default' => 1, ], ]); $this->forge->addPrimaryKey(['podcast_id', 'date']); $this->forge->addField( Loading app/Database/Migrations/2020-06-08-130000_add_analytics_podcasts_by_episode.php +2 −2 Original line number Diff line number Diff line <?php /** * Class AddAnalyticsEpisodesByCountry * Creates analytics_episodes_by_country table in database * Class AddAnalyticsPodcastsByEpisode * Creates analytics_episodes_by_episode table in database * @copyright 2020 Podlibre * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 * @link https://castopod.org/ Loading app/Database/Migrations/2020-06-08-190000_add_analytics_website_by_entry_page.php +2 −2 Original line number Diff line number Diff line <?php /** * Class AddAnalyticsWebsiteByReferer * Creates analytics_website_by_referer table in database * Class AddAnalyticsWebsiteByEntryPage * Creates analytics_website_by_entry_page table in database * @copyright 2020 Podlibre * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 * @link https://castopod.org/ Loading Loading
app/Config/Routes.php +8 −0 Original line number Diff line number Diff line Loading @@ -121,6 +121,14 @@ $routes->group( 'as' => 'podcast-analytics', 'filter' => 'permission:podcasts-view,podcast-view', ]); $routes->get( 'analytics-data/(:segment)', 'AnalyticsData::getData/$1/$2', [ 'as' => 'analytics-full-data', 'filter' => 'permission:podcasts-view,podcast-view', ] ); $routes->get( 'analytics-data/(:segment)/(:segment)', 'AnalyticsData::getData/$1/$2/$3', Loading
app/Controllers/Admin/AnalyticsData.php +3 −2 Original line number Diff line number Diff line Loading @@ -23,14 +23,15 @@ class AnalyticsData extends BaseController public function _remap($method, ...$params) { if (count($params) > 2) { if (count($params) > 1) { if (!($this->podcast = (new PodcastModel())->find($params[0]))) { throw \CodeIgniter\Exceptions\PageNotFoundException::forPageNotFound( 'Podcast not found: ' . $params[0] ); } $this->className = '\App\Models\Analytics' . $params[1] . 'Model'; $this->methodName = 'getData' . $params[2]; $this->methodName = 'getData' . (empty($params[2]) ? '' : $params[2]); if (count($params) > 3) { if ( !($this->episode = (new EpisodeModel()) Loading
app/Database/Migrations/2020-06-08-120000_add_analytics_podcasts.php +7 −2 Original line number Diff line number Diff line <?php /** * Class AddAnalyticsPodcastsByCountry * Creates analytics_podcasts_by_country table in database * Class AddAnalyticsPodcasts * Creates analytics_podcasts table in database * @copyright 2020 Podlibre * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 * @link https://castopod.org/ Loading Loading @@ -30,6 +30,11 @@ class AddAnalyticsPodcasts extends Migration 'constraint' => 10, 'default' => 1, ], 'unique_listeners' => [ 'type' => 'INT', 'constraint' => 10, 'default' => 1, ], ]); $this->forge->addPrimaryKey(['podcast_id', 'date']); $this->forge->addField( Loading
app/Database/Migrations/2020-06-08-130000_add_analytics_podcasts_by_episode.php +2 −2 Original line number Diff line number Diff line <?php /** * Class AddAnalyticsEpisodesByCountry * Creates analytics_episodes_by_country table in database * Class AddAnalyticsPodcastsByEpisode * Creates analytics_episodes_by_episode table in database * @copyright 2020 Podlibre * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 * @link https://castopod.org/ Loading
app/Database/Migrations/2020-06-08-190000_add_analytics_website_by_entry_page.php +2 −2 Original line number Diff line number Diff line <?php /** * Class AddAnalyticsWebsiteByReferer * Creates analytics_website_by_referer table in database * Class AddAnalyticsWebsiteByEntryPage * Creates analytics_website_by_entry_page table in database * @copyright 2020 Podlibre * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 * @link https://castopod.org/ Loading