예제 #1
0
function konzilo_auth_settings()
{
    $state = get_option('konzilo_oauth_state', '');
    if (empty($state)) {
        $state = wp_generate_password(20, false);
        update_option('konzilo_oauth_state', $state);
    }
    $client_id = get_option('konzilo_client_id');
    $client_key = get_option('konzilo_client_key');
    $url = KONZILO_URL;
    $redirect_uri = admin_url('options-general.php?page=konzilo_auth_settings');
    try {
        if (konzilo_get_token($url, $client_id, $client_key, $redirect_uri, $state, true)) {
            $message = __('Authorization complete', 'konzilo');
        }
    } catch (Exception $e) {
        $error = $e->getMessage();
    }
    $args = array('client_id' => $client_id, 'client_key' => $client_key, 'authorized' => get_option('konzilo_refresh_token', false), 'error' => !empty($error) ? $error : false, 'message' => !empty($message) ? $message : false);
    if (isset($_GET['client_id']) && isset($_GET['client_secret']) && empty($_GET['settings-updated'])) {
        $args['client_id'] = $_GET['client_id'];
        $args['client_key'] = $_GET['client_secret'];
        $args['from_konzilo'] = TRUE;
    }
    if (!empty($client_id)) {
        $args['link'] = $url . '/oauth2/authorize?response_type=code&client_id=' . urlencode($client_id) . '&redirect_uri=' . urlencode($redirect_uri) . '&scope=users&state=' . $state;
    }
    $base_dir = plugin_dir_path(__FILE__);
    echo konzilo_twig($base_dir)->render('templates/auth_form.html', $args);
}
예제 #2
0
function konzilo_submit_actions()
{
    if (!konzilo_has_client()) {
        return;
    }
    global $post;
    global $action;
    try {
        $queues = konzilo_get_queues();
        $konzilo_id = get_post_meta($post->ID, 'konzilo_id', true);
        $update = konzilo_get_post_update($post->ID);
        if ($post->post_status == 'publish' || empty($update) && $post->post_status == 'future' || !empty($update) && (!empty($update->sent) || $update->type == 'now')) {
            return;
        }
        if (empty($update)) {
            $update = new stdClass();
            $update->type = 'stored';
            $konzilo_status = __('Parked', 'konzilo');
        } else {
            switch ($update->type) {
                case 'now':
                    $konzilo_status = __('Publish now', 'konzilo');
                    break;
                case 'stored':
                    $konzilo_status = __('Parked', 'konzilo');
                    break;
                case 'date':
                    $default = date_default_timezone_get();
                    $timezone = get_option('timezone_string');
                    if (!empty($timezone)) {
                        date_default_timezone_set(get_option('timezone_string'));
                    }
                    $konzilo_status = __('Scheduled at:', 'konzilo') . ' ' . date('Y-m-d H:i', strtotime($update->scheduled_at));
                    date_default_timezone_set($default);
                    break;
                default:
                    $queue_map = array();
                    foreach ($queues as $queue) {
                        $queue_map[$queue->id] = $queue;
                    }
                    if (empty($update->queue)) {
                        $konzilo_status = __('Parked', 'konzilo');
                    } else {
                        $konzilo_status = __('In', 'konzilo') . ' ' . $queue_map[$update->queue]->name;
                    }
                    break;
            }
        }
        $args = array('queues' => $queues, 'has_queues' => !empty($queues), 'post' => $update, 'konzilo_status' => $konzilo_status, 'action' => $action, 'change_status' => empty($update->id) || $update->type != 'queue_last' && $update->type != 'queue_first');
        $base_dir = plugin_dir_path(__FILE__);
        $twig = konzilo_twig($base_dir);
        $twig->addExtension(new KonziloTwigExtension());
        echo $twig->render('templates/publish_form.html', $args);
    } catch (Exception $e) {
        // Still not sure how to display these errors.
    }
}