Your IP : 3.145.66.94


Current Path : /proc/self/root/home/sudancam/public_html3/games/wp-content/plugins/taqyeem/
Upload File :
Current File : //proc/self/root/home/sudancam/public_html3/games/wp-content/plugins/taqyeem/taqyeem-posts.php

<?php

/*-----------------------------------------------------------------------------------*/
# Register Reviews Posts Options Meta Box
/*-----------------------------------------------------------------------------------*/
add_action( 'admin_init', 'taqyeem_post_init' );
function taqyeem_post_init(){

	$post_types = get_post_types( array( '_builtin' => false, 'public' => true ), 'names');
	$post_types['post'] = 'post';
	$post_types['page'] = 'page';

	foreach ( $post_types as $post_type ) {
		add_meta_box( 'taqyeem_post_options', TIE_TAQYEEM .' - '. __( 'Review Options' , 'taq' ), 'taqyeem_post_options', $post_type, 'normal', 'default' );
	}
}



/*-----------------------------------------------------------------------------------*/
# Reviews Posts Options
/*-----------------------------------------------------------------------------------*/
function taqyeem_post_options(){

	global $post;
	$get_meta = get_post_custom( $post->ID );

	if( isset( $get_meta['taq_review_criteria'][0] ) ){
		$taq_review_criteria = unserialize( $get_meta['taq_review_criteria'][0] );
	}
	?>

	<div class="taqyeem-item" style="border:0 none; box-shadow: none;">

		<input type="hidden" name="taqyeem_hidden_flag" value="true" />

		<script type="text/javascript">
			jQuery(function() {
				jQuery( "#taqyeem-reviews-list" ).sortable({placeholder: "taqyeem-state-highlight"});
			});
		</script>

		<?php

		taqyeem_options_items(
			array(
				'name'    => __('Review Box Position','taq'),
				'id'      => 'taq_review_position',
				'type'    => 'select',
				'options' => array(
					''       => __( 'Disable',            'taq'),
					'top'    => __( 'Top of the post',    'taq'),
					'bottom' => __( 'Bottom of the post', 'taq'),
					'custom' => __( 'Custom position',    'taq'),
				)));

		?>

		<p id="taqyeem_custom_position_hint" class="taqyeem_message_hint">
			<?php printf( __( 'Use <strong>[taq_review]</strong> shortcode to place the review box in any place within post content or use <strong> %s </strong> Widget .', 'taq' ),  TIE_TAQYEEM .' - Review Box' );	?>
		</p>


		<div id="taq-reviews-options">
			<?php

			do_action( 'tie_taqyeem_before_review_options' );

			taqyeem_options_items(
				array(
					'name'    => __( 'Review Style', 'taq' ),
					'id'      => 'taq_review_style',
					'type'    => 'radio',
					'options' => array(
						'stars'      => __( 'Image',      'taq' ),
						'percentage' => __( 'Percentage', 'taq' ),
						'points'     => __( 'Points',     'taq' ),
					)));

			taqyeem_options_items(
				array(
					'name' => __( 'Review Box Title', 'taq' ),
					'id'   => 'taq_review_title',
					'type' => 'text',
				));

			taqyeem_options_items(
				array(
					'name' => __( 'Text appears under the total score', 'taq' ),
					'id'   => 'taq_review_total',
					'type' => 'text',
				));

			do_action( 'tie_taqyeem_before_review_summary_option' );

			taqyeem_options_items(
				array(
					'name' => __( 'Review Summary', 'taq' ),
					'id'   => 'taq_review_summary',
					'type' => 'textarea',
				));

			taqyeem_options_items(
				array(
					'name'    => __('Structured Data Type','taq'),
					'id'      => 'taq_review_structured_data',
					'type'    => 'select',
					'options' => array(
						''               => __( 'Default',        'taq'),
						'product'        => __( 'Product',        'taq'),
						'book'           => __( 'Book',           'taq'),
						'movie'          => __( 'Movie',          'taq'),
						'game'           => __( 'Game',           'taq'),
						'event'          => __( 'Event',          'taq'),
						'course'         => __( 'Course',         'taq'),
						'organization'   => __( 'Organization',   'taq'),
						'musicrecording' => __( 'MusicRecording', 'taq'),
						'musicplaylist'  => __( 'MusicPlaylist',  'taq'),
						'episode'        => __( 'Episode',        'taq'),
						'restaurant'     => __( 'Restaurant',     'taq'),
					)));

			// Product
			taqyeem_options_items(
				array(
					'name'  => __( 'Product Description', 'taq' ),
					'id'    => 'taq_review_structured_data_product_description',
					'class' => 'taq_structured_data_options taq_structured_data_product_options',
					'type'  => 'textarea',
				));

			taqyeem_options_items(
				array(
					'name'  => __( 'Product URL', 'taq' ),
					'id'    => 'taq_review_structured_data_product_url',
					'class' => 'taq_structured_data_options taq_structured_data_product_options',
					'type'  => 'text',
				));

			taqyeem_options_items(
				array(
					'name'  => __( 'Brand', 'taq' ),
					'id'    => 'taq_review_structured_data_product_brand',
					'class' => 'taq_structured_data_options taq_structured_data_product_options',
					'type'  => 'text',
				));

			taqyeem_options_items(
				array(
					'name'  => __( 'SKU', 'taq' ),
					'id'    => 'taq_review_structured_data_product_sku',
					'class' => 'taq_structured_data_options taq_structured_data_product_options',
					'type'  => 'text',
				));

			taqyeem_options_items(
				array(
					'name'  => __( 'MPN Number', 'taq' ),
					'id'    => 'taq_review_structured_data_product_mpn',
					'class' => 'taq_structured_data_options taq_structured_data_product_options',
					'type'  => 'text',
				));

			taqyeem_options_items(
				array(
					'name'  => __( 'GTIN Number', 'taq' ),
					'id'    => 'taq_review_structured_data_product_gtin',
					'class' => 'taq_structured_data_options taq_structured_data_product_options',
					'type'  => 'text',
				));

			taqyeem_options_items(
				array(
					'name'  => __( 'Product Availability', 'taq' ),
					'id'    => 'taq_review_structured_data_product_availability',
					'class' => 'taq_structured_data_options taq_structured_data_product_options',
					'type'    => 'radio',
					'options' => array(
						'InStock'    => __( 'InStock',    'taq' ),
						'OutOfStock' => __( 'OutOfStock', 'taq' ),
				)));

			taqyeem_options_items(
				array(
					'name'  => __( 'Product Price', 'taq' ),
					'id'    => 'taq_review_structured_data_product_price',
					'class' => 'taq_structured_data_options taq_structured_data_product_options',
					'type'  => 'text',
				));

			taqyeem_options_items(
				array(
					'name'  => __( 'Product Price Currency ( Three-letter ISO 4217 format )', 'taq' ),
					'id'    => 'taq_review_structured_data_product_currency',
					'class' => 'taq_structured_data_options taq_structured_data_product_options',
					'type'  => 'text',
				));

			taqyeem_options_items(
				array(
					'name'  => __( 'Product Valid Until ( YYYY-MM-DD )', 'taq' ),
					'id'    => 'taq_review_structured_data_product_price_date',
					'class' => 'taq_structured_data_options taq_structured_data_product_options',
					'type'  => 'text',
				));

			// Event
			taqyeem_options_items(
				array(
					'name'  => __( 'Location Name', 'taq' ),
					'id'    => 'taq_review_structured_data_event_location_name',
					'class' => 'taq_structured_data_options taq_structured_data_event_options',
					'type'  => 'text',
				));

			taqyeem_options_items(
				array(
					'name'  => __( 'Location Address', 'taq' ),
					'id'    => 'taq_review_structured_data_event_location_address',
					'class' => 'taq_structured_data_options taq_structured_data_event_options',
					'type'  => 'text',
				));

			taqyeem_options_items(
				array(
					'name'  => __( 'Event Description', 'taq' ),
					'id'    => 'taq_review_structured_data_event_description',
					'class' => 'taq_structured_data_options taq_structured_data_event_options',
					'type'  => 'textarea',
				));

			taqyeem_options_items(
				array(
					'name'  => __( 'Start date ( YYYY-MM-DD )', 'taq' ),
					'id'    => 'taq_review_structured_data_event_startdate',
					'class' => 'taq_structured_data_options taq_structured_data_event_options',
					'type'  => 'text',
				));

			taqyeem_options_items(
				array(
					'name'  => __( 'End date ( YYYY-MM-DD )', 'taq' ),
					'id'    => 'taq_review_structured_data_event_enddate',
					'class' => 'taq_structured_data_options taq_structured_data_event_options',
					'type'  => 'text',
				));

			// Book
			taqyeem_options_items(
				array(
					'name'  => __( 'Author', 'taq' ),
					'id'    => 'taq_review_structured_data_author',
					'class' => 'taq_structured_data_options taq_structured_data_book_options',
					'type'  => 'text',
				));

			taqyeem_options_items(
				array(
					'name'  => __( 'Author URL', 'taq' ),
					'id'    => 'taq_review_structured_data_author_url',
					'class' => 'taq_structured_data_options taq_structured_data_book_options',
					'type'  => 'text',
				));

			taqyeem_options_items(
				array(
					'name'  => __( 'ISBN', 'taq' ),
					'id'    => 'taq_review_structured_data_book_isbn',
					'class' => 'taq_structured_data_options taq_structured_data_book_options',
					'type'  => 'text',
				));

			// Movie
			taqyeem_options_items(
				array(
					'name'  => __( 'Movie URL', 'taq' ),
					'id'    => 'taq_review_structured_data_movie_url',
					'class' => 'taq_structured_data_options taq_structured_data_movie_options',
					'type'  => 'text',
				));

			taqyeem_options_items(
				array(
					'name'  => __( 'Movie Date', 'taq' ),
					'id'    => 'taq_review_structured_data_movie_date',
					'class' => 'taq_structured_data_options taq_structured_data_movie_options',
					'type'  => 'text',
				));

			taqyeem_options_items(
				array(
					'name'  => __( 'Director', 'taq' ),
					'id'    => 'taq_review_structured_data_movie_director',
					'class' => 'taq_structured_data_options taq_structured_data_movie_options',
					'type'  => 'text',
				));

			// Course
			taqyeem_options_items(
				array(
					'name'  => __( 'Description', 'taq' ),
					'id'    => 'taq_review_structured_data_description',
					'class' => 'taq_structured_data_options taq_structured_data_course_options',
					'type'  => 'text',
				));

			taqyeem_options_items(
				array(
					'name'  => __( 'Provider', 'taq' ),
					'id'    => 'taq_review_structured_data_course_provider',
					'class' => 'taq_structured_data_options taq_structured_data_course_options',
					'type'  => 'text',
				));

			// Restaurant
			taqyeem_options_items(
				array(
					'name'  => __( 'Address', 'taq' ),
					'id'    => 'taq_review_structured_data_restaurant_address',
					'class' => 'taq_structured_data_options taq_structured_data_restaurant_options',
					'type'  => 'text',
				));

			taqyeem_options_items(
				array(
					'name'  => __( 'Price', 'taq' ),
					'id'    => 'taq_review_structured_data_restaurant_price',
					'class' => 'taq_structured_data_options taq_structured_data_restaurant_options',
					'type'  => 'text',
				));

			taqyeem_options_items(
				array(
					'name'  => __( 'Cuisine', 'taq' ),
					'id'    => 'taq_review_structured_data_restaurant_cuisine',
					'class' => 'taq_structured_data_options taq_structured_data_restaurant_options',
					'type'  => 'text',
				));

			taqyeem_options_items(
				array(
					'name'  => __( 'Telephone', 'taq' ),
					'id'    => 'taq_review_structured_data_restaurant_telephone',
					'class' => 'taq_structured_data_options taq_structured_data_restaurant_options',
					'type'  => 'text',
				));

			do_action( 'tie_taqyeem_after_review_options' );

			?>

			<input id="add_review_criteria" type="button" class="button" value="<?php  _e( 'Add New Review Criteria' , 'taq' ) ?>">

			<?php do_action( 'tie_taqyeem_before_review_criteria' ); ?>

			<div class="clear"></div>

			<ul id="taqyeem-reviews-list">
				<?php $i = 0;

				if( ! empty( $taq_review_criteria ) && is_array( $taq_review_criteria )){
					foreach( $taq_review_criteria as $taq_review ){
						$i++; ?>

						<li class="taqyeem-option-item taqyeem-review-item">
							<span class="label"><?php  _e( 'Review Criteria' , 'taq' ) ?></span>
							<input name="taq_review_criteria[<?php echo $i ?>][name]" type="text" value="<?php if( !empty($taq_review['name'] ) ) echo $taq_review['name'] ?>" />
							<div class="clear"></div>
							<span class="label"><?php  _e( 'Criteria Score' , 'taq' ) ?></span>
							<div id="criteria<?php echo $i ?>-slider"></div>
							<input type="text" id="criteria<?php echo $i ?>" value="<?php if( !empty($taq_review['score']) ) echo $taq_review['score']; else echo 0; ?>" name="taq_review_criteria[<?php echo $i ?>][score]" style="width:40px; opacity: 0.7;" />
							<a class="del-review" title="<?php  _e( 'Delete' , 'taq' ) ?>"><?php  _e( 'Delete' , 'taq' ) ?></a>
							<script>
							  jQuery(document).ready(function(){
									jQuery( '#criteria<?php echo $i ?>-slider' ).slider({
										range: 'min',
										min: 0,
										max: 100,
										value: <?php if( !empty($taq_review['score']) ) echo $taq_review['score']; else echo 0; ?>,
										slide: function(event, ui) {
											jQuery('#criteria<?php echo $i ?>').attr('value', ui.value );
										}
									});
								});
							</script>
						</li>
						<?php
					}
				}
				?>
			</ul>
			<script>var taqNextReview = <?php echo $i+1 ?> ;</script>
		</div>
	</div>
  <?php
}



/*-----------------------------------------------------------------------------------*/
# Save Review
/*-----------------------------------------------------------------------------------*/
add_action('save_post', 'taqyeem_save_post');
function taqyeem_save_post( $post_id ){

	if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ){
		return $post_id;
	}

	if ( isset($_POST['taqyeem_hidden_flag']) ){

		$custom_meta_fields = array(
			'taq_review_position' => array(
				'taq_review_title',
				'taq_review_style',
				'taq_review_summary',
				'taq_review_total',
				'taq_review_criteria',

				'taq_review_structured_data',
				'taq_review_structured_data_author',
				'taq_review_structured_data_author_url',

				'taq_review_structured_data_product_brand',
				'taq_review_structured_data_product_sku',
				'taq_review_structured_data_product_mpn',
				'taq_review_structured_data_product_gtin',
				'taq_review_structured_data_product_description',
				'taq_review_structured_data_product_availability',
				'taq_review_structured_data_product_price',
				'taq_review_structured_data_product_currency',
				'taq_review_structured_data_product_price_date',
				'taq_review_structured_data_product_url',

				'taq_review_structured_data_event_location_name',
				'taq_review_structured_data_event_location_address',
				'taq_review_structured_data_event_description',
				'taq_review_structured_data_event_startdate',
				'taq_review_structured_data_event_enddate',

				'taq_review_structured_data_book_isbn',

				'taq_review_structured_data_movie_url',
				'taq_review_structured_data_movie_date',
				'taq_review_structured_data_movie_director',

				'taq_review_structured_data_description',
				'taq_review_structured_data_course_provider',

				'taq_review_structured_data_restaurant_address',
				'taq_review_structured_data_restaurant_price',
				'taq_review_structured_data_restaurant_cuisine',
				'taq_review_structured_data_restaurant_telephone',
			),
		);

		$custom_meta_fields = apply_filters('tie_taqyeem_save_review_fields', $custom_meta_fields );

		foreach( $custom_meta_fields as $key => $custom_meta_field ){

			# Dependency Options fields ----------
			if( is_array( $custom_meta_field ) ){

				if( ! empty( $_POST[ $key ] )){

					update_post_meta( $post_id, $key, $_POST[ $key ] );

					foreach ( $custom_meta_field as $single_field ){
						if( ! empty( $_POST[ $single_field ] )){

							$option_value = $_POST[ $single_field ];

							if( $single_field != 'taq_review_criteria' ){
								$option_value = htmlspecialchars(stripslashes( $option_value ));
							}

							update_post_meta( $post_id, $single_field, $option_value );
						}
						else{
							delete_post_meta( $post_id, $single_field );
						}
					}
				}
				else{
					delete_post_meta( $post_id, $key );
				}
			}

			# Single Options fields ----------
			else{
				if( ! empty( $_POST[ $custom_meta_field ] )){
					update_post_meta( $post_id, $custom_meta_field, $_POST[ $custom_meta_field ] );
				}
				else{
					delete_post_meta( $post_id, $custom_meta_field );
				}
			}
		}

		# Save the total score ----------
		$get_meta = get_post_custom( $post_id );

		$total_counter = $score = 0;
		if( isset( $get_meta['taq_review_criteria'][0] )){

			$criterias = unserialize( $get_meta['taq_review_criteria'][0] );

			foreach( $criterias as $criteria){
				if( $criteria['name'] && $criteria['score'] && is_numeric( $criteria['score'] )){

					$criteria['score'] = max( 0, min( 100, $criteria['score'] ) );
					$score += $criteria['score'];
					$total_counter ++;
				}
			}

			if( !empty( $score ) && !empty( $total_counter ) ){
				$total_score =  $score / $total_counter;
			}

			update_post_meta( $post_id, 'taq_review_score', $total_score );
		}

	}
}



/*-----------------------------------------------------------------------------------*/
# The Plugin Options
/*-----------------------------------------------------------------------------------*/
function taqyeem_options_items( $value ){
	global $post;

	$class = 'taqyeem-option-item';
	if( ! empty( $value['class'] ) ){
		$class .= ' ' . $value['class'];
	}

	?>

	<div class="<?php echo $class ?>" id="<?php echo $value['id'] ?>-item">
		<span class="label"><?php echo $value['name']  ?></span>

		<?php
			$id = $value['id'];
			$get_meta = get_post_custom($post->ID);

			$current_value = isset( $get_meta[ $id ][0] ) ? $get_meta[ $id ][0] : '';

			switch ( $value['type'] ){

				case 'text': ?>
					<input  name="<?php echo $value['id']; ?>" id="<?php echo $value['id']; ?>" type="text" value="<?php echo $current_value ?>" />
					<?php
					break;

				case 'select': ?>
					<select name="<?php echo $value['id']; ?>" id="<?php echo $value['id']; ?>">
						<?php foreach ( $value['options'] as $key => $option ) { ?>
						<option value="<?php echo $key ?>" <?php selected( $current_value, $key ) ?>><?php _e( $option , 'taq' ) ?></option>
						<?php } ?>
					</select>
					<?php
					break;

				case 'checkbox': ?>
					<input <?php checked( $current_value, 'true' ) ?> class="on-of" type="checkbox" name="<?php echo $value['id']; ?>" id="<?php echo $value['id']; ?>" value="true" />
					<?php
					break;

				case 'radio': ?>
					<div class="radio-contnet">
						<?php
							$i = 0;
							foreach ($value['options'] as $key => $option) { ?>
								<label style="display:block; margin-bottom:8px;"><input name="<?php echo $value['id']; ?>" type="radio" value="<?php echo $key ?>" <?php if ( ( !empty($current_value) && $current_value == $key ) ||  ( empty($current_value) && $i == 0 ) ) { echo ' checked="checked"' ; } ?>> <?php echo $option; ?></label>
								<?php
								$i++;
							}
						?>
					</div>
					<?php
					break;

				case 'textarea': ?>
					<textarea style="width:430px;" name="<?php echo $value['id']; ?>" id="<?php echo $value['id']; ?>" type="textarea" cols="100%" rows="3" tabindex="4"><?php if( !empty( $current_value ) ) echo $current_value  ?></textarea>
					<?php
					break;

				case 'color': ?>

					<div id="<?php echo $value['id']; ?>colorSelector" class="color-pic"><div style="background-color:<?php echo taqyeem_get_option($value['id']) ; ?>"></div></div>
						<input style="width:80px; margin-right:5px;"  name="taqyeem_options[<?php echo $value['id']; ?>]" id="<?php echo $value['id']; ?>" type="text" value="<?php if( !empty( $current_value ) ) echo $current_value  ?>" />

						<script>
							jQuery('#<?php echo $value['id']; ?>colorSelector').ColorPicker({
								color: '<?php if( !empty( $current_value ) ) echo $current_value  ?>',
								onShow: function (colpkr) {
									jQuery(colpkr).fadeIn(500);
									return false;
								},
								onHide: function (colpkr) {
									jQuery(colpkr).fadeOut(500);
									return false;
								},
								onChange: function (hsb, hex, rgb) {
									jQuery('#<?php echo $value['id']; ?>colorSelector div').css('backgroundColor', '#' + hex);
									jQuery('#<?php echo $value['id']; ?>').val('#'+hex);
								}
							});
						</script>
					<?php
					break;
			}
		?>
	</div>
<?php
}