Your IP : 216.73.216.122


Current Path : /home/ereika83/www/wp-content/plugins/edit-flow/modules/dashboard/widgets/
Upload File :
Current File : /home/ereika83/www/wp-content/plugins/edit-flow/modules/dashboard/widgets/dashboard-notepad.php

<?php
/**
 * A notepad for the dashboard
 */

class EF_Dashboard_Notepad_Widget {

	const notepad_post_type = 'dashboard-note';

	public $edit_cap = 'edit_others_posts';

	function __construct() {
		// Silence is golden
	}

	public function init() {

		register_post_type( self::notepad_post_type, array(
				'rewrite' => false,
				'label' => __( 'Dashboard Note', 'edit-flow' )
			)
		);

		$this->edit_cap = apply_filters( 'ef_dashboard_notepad_edit_cap', $this->edit_cap );

		add_action( 'admin_init', array( $this, 'handle_notepad_update' ) );
	}

	/**
	 * Handle a dashboard note being created or updated
	 *
	 * @since 0.8
	 */
	public function handle_notepad_update() {
		global $pagenow;

		if ( 'index.php' !== $pagenow || empty( $_POST['action'] ) || 'dashboard-notepad' !== $_POST['action'] ) {
			return;
		}

		check_admin_referer( 'dashboard-notepad' );

		if ( ! current_user_can( $this->edit_cap ) ) {
			wp_die( EditFlow()->dashboard->messages['invalid-permissions'] );
		}

		$note_data = array(
			'post_content' => isset( $_POST['note'] ) ? wp_filter_nohtml_kses( $_POST['note'] ) : '',
			'post_type'    => self::notepad_post_type,
			'post_status'  => 'draft',
			'post_author'  => get_current_user_id(),
		);

		$existing_notepad = isset( $_POST['notepad-id'] ) ? get_post( absint( $_POST['notepad-id'] ) ) : null;
		if ( isset( $existing_notepad->post_type ) && self::notepad_post_type === $existing_notepad->post_type ) {
			$note_data['ID'] = $existing_notepad->ID;
		}

		wp_insert_post( $note_data );
	}

	/**
	 * Notepad Widget
	 * Editors can leave notes in the dashboard for authors and contributors
	 *
	 * @since 0.8
	 */
	public function notepad_widget() {

		$args = array(
				'posts_per_page'   => 1,
				'post_status'      => 'draft',
				'post_type'        => self::notepad_post_type,
			);
		$posts = get_posts( $args );
		$current_note = ( ! empty( $posts[0]->post_content ) ) ? $posts[0]->post_content : '';
		$current_id = ( ! empty( $posts[0]->ID ) ) ? $posts[0]->ID : 0;
		$current_post = ( ! empty( $posts[0] ) ) ? $posts[0] : false;

		if ( $current_post )
			$last_updated = '<span id="dashboard-notepad-last-updated">' . sprintf( __( '%1$s last updated on %2$s', 'edit-flow' ), get_user_by( 'id', $current_post->post_author )->display_name, get_the_modified_time( get_option( 'date_format' ) . ' ' . get_option( 'time_format' ), $current_post ) ) . '</span>';
		else
			$last_updated = '';

		if ( current_user_can( $this->edit_cap ) ) {
			echo '<form method="post" id="dashboard-notepad">';
			echo '<input type="hidden" name="action" value="dashboard-notepad" />';
			echo '<input type="hidden" name="notepad-id" value="' . esc_attr( $current_id ) . '" />';
			echo '<textarea style="width:100%" rows="10" name="note">';
			echo esc_textarea( trim( $current_note ) );
			echo '</textarea>';
			echo '<p class="submit">';
			echo $last_updated;
			echo '<span id="dashboard-notepad-submit-buttons">';
			submit_button( __( 'Update Note', 'edit-flow' ), 'primary', 'update-note', false );
			echo '</span>';
			echo '<div style="clear:both;"></div>';
			wp_nonce_field( 'dashboard-notepad' );
			echo '</form>';
		} else {
			echo '<form id="dashboard-notepad">';
			echo '<textarea style="width:100%" rows="10" name="note" disabled="disabled">';
			echo esc_textarea( trim( $current_note ) );
			echo '</textarea>';
			echo $last_updated;
			echo '</form>';
		}
	}

}