<?php
/*
Plugin Name: F13 Github
Plugin URI: https://f13.dev/wordpress-plugins/wordpress-plugin-github/
Description: GitHub profile widget, repo shortcode and gist shortcode
Version: 0.0.2
Author: Jim Valentine
Author URI: https://f13.dev
Text Domain: f13-github
*/

namespace F13\Github;

if (!function_exists('get_plugins')) require_once(ABSPATH.'wp-admin/includes/plugin.php');
if (!defined('F13_GITHUB')) define('F13_GITHUB', get_plugin_data(__FILE__, false, false)['Version']);
if (!defined('F13_GITHUB_PATH')) define('F13_GITHUB_PATH', plugin_dir_path( __FILE__ ));
if (!defined('F13_GITHUB_URL')) define('F13_GITHUB_URL', plugin_dir_url(__FILE__));

global $wpdb;
if (!defined('F13_DB_SETTINGS')) define('F13_DB_SETTINGS', $wpdb->prefix.'f13_settings');

register_activation_hook(__FILE__, array('\F13\Github\Plugin', 'install'));

class Plugin
{
    public function init()
    {
        spl_autoload_register(__NAMESPACE__.'\Plugin::loader');

        add_action('wp_enqueue_scripts', array($this, 'style_and_scripts'));
        add_action('admin_enqueue_scripts', array($this, 'admin_style_and_scripts'));

        if (is_admin()) {
            $a = new Controllers\Admin();
        }

        $c = new Controllers\Control();
    }

    public static function loader($name)
    {
        $name = trim(ltrim($name, '\\'));
        if (strpos($name, __NAMESPACE__) !== 0) {
            return;
        }
        $file = str_replace(__NAMESPACE__, '', $name);
        $file = str_replace('\\', DIRECTORY_SEPARATOR, $file);
        $file = plugin_dir_path(__FILE__).strtolower($file).'.php';

        if (file_exists($file)) {
            require_once $file;
        } else {
            die('Class not found: '.$name);
        }
    }

    public function style_and_scripts()
    {
        wp_enqueue_script('google-prettify', 'https://www.doyler.net/code-prettify/loader/run_prettify.js?lang=css&skin=sunburst', array(), false, true);

        $styles_ver  = date("ymd-Gis", filemtime( plugin_dir_path( __FILE__ ) . 'css/styles.css' ));
        wp_enqueue_style('f13_github_styles', F13_GITHUB_URL.'css/styles.css', array(), $styles_ver);
    }

    public function admin_style_and_scripts()
    {

    }

    public static function install()
    {
        $i = new Controllers\Install();
        $i->database();
    }
}

$p = new Plugin();
$p->init();