Support » Plugin: FL3R FeelBox » How to Embed on FrontPage after every post

Viewing 8 replies - 1 through 8 (of 8 total)
  • Plugin Author Armando “FL3R” Fiore

    (@armandofiore)

    Hi lolhospital.

    You must edit your theme, adding

    <?php if ( function_exists(‘print_feelbox_widget’) ) { print_feelbox_widget(); } ?>

    usually in you content.php file.
    Unfortunately, I never tried to insert the plugin on the home page, so I do not know if it will work.

    Wow Armando. Thanks for the quick response. I appreciate it.
    Sorry for the simple Newbie questions.
    I’m willing to give it a try. Which theme file do I add this code to?
    header.php? or Index.php?
    Let me know.
    Thanks.

    -L

    And also, how can I reduce the overall size of the displayed icons below a post. Thanks.

    Plugin Author Armando “FL3R” Fiore

    (@armandofiore)

    Usually the file is content.php.
    You can edit the icons size changing the height in

    #feelbox-cell div

    wich is normally 100%. You may need to change other values to bring the text (the percentage below the icons) in line with icons.

    there is no content.php in a few themes I’ve used recently. My theme currently has an index.php file. I presume that’s what you mean? there’s also the single.php.
    I was your awesome plugin to display on my frontpage (index.php) below every post. Here is my index.php currently.

    <?php $mts_options = get_option('dualshock'); ?>
    <?php get_header(); ?>
    <div id="page">
    	<div class="content">
    		<article class="article">
    			<div id="content_box">
    				<?php $j = 0; if (have_posts()) : while (have_posts()) : the_post(); ?>
                        <div class="post excerpt <?php echo (++$j % 2 == 0) ? 'last' : ''; ?>">
    						<header>
    							<h2 class="title">
    								<a href="<?php the_permalink() ?>" title="<?php the_title(); ?>" rel="bookmark"><?php the_title(); ?></a>
    							</h2>
    						</header><!--.header-->
    						<a href="<?php the_permalink() ?>" title="<?php the_title(); ?>" rel="nofollow" id="featured-thumbnail">
    							<?php if ( has_post_thumbnail() ) { ?>
    								<?php echo '<div class="featured-thumbnail">'; the_post_thumbnail('featured',array('title' => '')); echo '</div>'; ?>
    							<?php } else { ?>
    								<div class="featured-thumbnail">
    									<img width="450" height="200" src="<?php echo get_template_directory_uri(); ?>/images/nothumb.png" class="attachment-featured wp-post-image" alt="<?php the_title(); ?>">
    								</div>
    							<?php } ?>
    						</a>
    						<div class="post-content image-caption-format-1">
    
    						<?php echo excerpt(39);?>
    
    						</div>
    
    					</div><!--.post excerpt-->
    
                        <div class="post-info">
     <span><?php echo do_shortcode(' [feelbox]');?></span>
    						<span class="thecomment"><?php echo comments_number(__('No Comment','mythemeshop'), __('One Comment','mythemeshop'), '<span class="comments">'.__('Comments','mythemeshop').'</span> <span class="comm">%</span>');?></span>
    						<span class="readMore"><a href="<?php the_permalink() ?>" title="<?php the_title(); ?>" rel="bookmark"><?php _e('Read More','mythemeshop'); ?></a></span>
    
                        </div>
    				<?php endwhile; endif; ?>	
    
    				<!--Start Pagination-->
    				<?php if ( isset($mts_options['mts_pagenavigation']) == '1' ) { ?>
    					<?php  $additional_loop = 0; pagination($additional_loop['max_num_pages']); ?>
    				<?php } else { ?>
    					<div class="pagination">
    						<ul>
    							<li class="nav-previous"><?php next_posts_link( __( '&larr; '.'Older posts', 'mythemeshop' ) ); ?></li>
    							<li class="nav-next"><?php previous_posts_link( __( 'Newer posts'.' &rarr;', 'mythemeshop' ) ); ?></li>
    						</ul>
    					</div>
    				<?php } ?>
    				<!--End Pagination-->
    			</div>
    
    		</article>
    				<?php get_sidebar(); ?>
    <?php get_footer(); ?>

    I tried to incorporate both <?php echo do_shortcode(' [feelbox]');?> and <?php if ( function_exists('print_feelbox_widget') ) { print_feelbox_widget(); } ?>.

    Can you take a look at the index.php and give me some pointers?

    Thanks Ammando!

    Plugin Author Armando “FL3R” Fiore

    (@armandofiore)

    Yes, the code should be more or less there.

    I am experiencing the display on the home page, but I did it in half: if you replace the plugin file with this at the bottom, the FeelBox is actually also displayed on the home page under each post, but reads the ID of the home page and not those of the individual posts. For now you have to settle for this, if you like to experiment I leave you the code:

    feelbox.php

    <?php
    /*
    Plugin Name: FL3R FeelBox
    Plugin URI: https://wordpress.org/plugins/fl3r-feelbox/
    Description: Adds a one-click real-time mood rating widget to all of your posts.
    Version: 3.1
    Author: Armando "FL3R" Fiore
    E-Mail: armandofioreinfo@gmail.com
    Author URI: https://www.twitter.com/Armando_Fiore
    License: Freeware, no warranty. Modifications not allowed.
    */
    
    load_plugin_textdomain('fl3r-feelbox', NULL, dirname(plugin_basename(__FILE__)) . "/languages");
    
    define('feelbox_PLUGIN_DIR', plugins_url(basename(dirname(__FILE__))));
    
    global $lydl_db_version;
    global $moods;
    global $nothumb;
    
    $lydl_db_version = "0.6";
    $moods = array(1 => "Fascinated", 2 => "Happy", 3 => "Sad", 4 => "Angry", 5 => "Bored", 6 => "Afraid");
    $cookie_duration = 14;
    $nothumb = feelbox_PLUGIN_DIR . '/no_thumb.jpg';
    
    require_once( 'feelbox-admin.php' );
    
    function feelbox_init() {
    
    	$options = get_option('feelbox_wp_options');
    	$customCSS = @file_get_contents(feelbox_CSS_FILE);
    
    	if ( !$customCSS ) {
    		$defaultCSS = @file_get_contents(feelbox_CSS_DEFAULT);
    		@file_put_contents(feelbox_CSS_FILE, strip_tags($defaultCSS) );
    	}
    
    	// embed the javascript file that makes the AJAX request
    	if ( is_admin() ) {
    		wp_enqueue_script('jquery');
    	} else {
    
    		if ( $options['bypasscss'] != 'on' ) {
    			wp_register_style('feelbox-default-style', feelbox_PLUGIN_DIR . '/css/style.css' );
    			wp_enqueue_style('feelbox-default-style');
    
    			if ( $customCSS ) {
    				wp_register_style('feelbox-custom-style', feelbox_CSS_URI );
    				wp_enqueue_style('feelbox-custom-style');
    			}
    		}
    
    		wp_enqueue_script( 'my-ajax-request', feelbox_PLUGIN_DIR . '/js/ajax.js', array( 'jquery' ) );
    		wp_register_script( 'feelbox-remote', feelbox_PLUGIN_DIR . '/js/easyXDM.min.js' );
    		wp_enqueue_script( 'feelbox-remote' );
    	}
    
    	if (!$options) {
    		feelbox_add_default_options();
    	} else {
    		if ($options['showinpostsondefault'] == 'on') {
    			add_filter('the_content', 'add_feelbox_widget_to_posts');
    		}
    		if (empty($options['showtweetfollowup'])) {
    			$temp = array(
    				'showtweetfollowup' => 'on'
    			);
    			update_option('feelbox_wp_options', $temp);
    		}
    	}
    }
    
    function feelbox_add_default_options() {
    	$temp = array(
    		'showsparkbar' => 'on',
    		'showinpostsondefault' => 'on',
    		'showtweetfollowup' => 'on',
    		'sortmoods' => 'off'
    	);
    
    	update_option('feelbox_wp_options', $temp);
    }
    
    function feelbox_get_widget_html() {
    	global $wpdb;
    	global $post;
    	global $moods;
    
    	{
    		$post_id = (int)$post->ID;
    		$obj = $wpdb->get_row("SELECT * FROM {$wpdb->prefix}lydl_posts WHERE ID=" . $post_id, ARRAY_A);
    		$sum = $obj["emotion_1"]+$obj["emotion_2"]+$obj["emotion_3"]+$obj["emotion_4"]+$obj["emotion_5"]+$obj["emotion_6"];		
    
    		$widgethtml = '<div id="feelbox-widget" class="voted"><div id="lyr2"><div id="feelbox-bold">Share your vote!</div>
    
    		<BR>
    		<BR>
    		<div>
    
    		<a id="feelbox-twitter-button" class="socialmedia" href="https://twitter.com/share?url=' . get_permalink() . '&related=Armando_Fiore&hashtags=FL3RFeelBox&text=I%20just%20voted%20on%20the%20post%20\"' . get_the_title() . '\"">share</a>
    
    		<a id="feelbox-facebook-button" class="socialmedia" href="http://www.facebook.com/sharer/sharer.php?s=100&p[title]=' . get_the_title() . '&p[url]=' . get_permalink() . '&p[summary]=I+just+voted+on+this+post+with+feelbox!">share</a>
    
    		<a id="feelbox-googleplus-button" class="socialmedia" href="https://plus.google.com/share?url=' . get_the_title() . '&p[url]=' . get_permalink() . '&p[summary]=I+just+voted+on+this+post+with+feelbox!">share</a>
    
    </div>
    
    <div id="feelbox-s"><a href="#" id="clr">No, thanks.</a></div></div>
    
    			<div id="lyr1"></div>
    			<div id="hdr">
    			 <!--
    			<div id="paypal"><a target="_blank" href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=2PCZCTKZ86ANA" title="Donate with PayPal"><span> </span></a></div>
    			--!>
    				<div id="title">
    					<a target="_blank" href="https://wordpress.org/plugins/fl3r-feelbox/" title="FL3R FeelBox on WordPress.org"><span> </span></a>
    				</div>
    
    				<div id="feelbox-s">
    
    How this post make you feel?
    
    				</div>
    
    			</div>
    			<span id="total"></span><span id="voted"></span>
    			<div id="bd" style="">
    				<div id="loading" style="display: block;"></div>
    
    				<div id="sparkbardiv" style="">
    					<div class="sparkbar" style="">
    					</div>
    				</div>
    
    				<ul>
    					<li id="mdr-e1"><div id="feelbox-cell"><div>
    						<span class="m">' . $moods[1] .'</span>
    						<span class="count"></span><span class="percent"></span>
    					</div></div></li>
    					<li id="mdr-e2"><div id="feelbox-cell"><div>
    						<span class="m">' . $moods[2] . '</span>
    						<span class="count"></span><span class="percent"></span>
    					</div></div></li>
    					<li id="mdr-e3"><div id="feelbox-cell"><div>
    						<span class="m">' . $moods[3] .'</span>
    						<span class="count"></span><span class="percent"></span>
    					</div></div></li>
    					<li id="mdr-e4"><div id="feelbox-cell"><div>
    						<span class="m">' . $moods[4] . '</span>
    						<span class="count"></span><span class="percent"></span>
    					</div></div></li>
    					<li id="mdr-e5"><div id="feelbox-cell"><div>
    						<span class="m">' . $moods[5] . '</span>
    						<span class="count"></span><span class="percent"></span>
    					</div></div></li>
    					<li id="mdr-e6"><div id="feelbox-cell"><div>
    						<span class="m">' . $moods[6] . '</span>
    						<span class="count"></span><span class="percent"></span>
    					</div></div></li>
    				</ul>
    			</div>
    		</div>';
    		return $widgethtml;
    	}
    
    }
    
    function add_feelbox_widget_to_posts($content) {
    	if (is_single()) { $content .= feelbox_get_widget_html(); }
    	return $content;
    }
    
    // fl3r: patch per mostrare la feelbox anche in homepage
    
    function print_feelbox_widget () {
    
    		echo feelbox_get_widget_html();
    
    }
    
    function print_feelbox_shortcode ( ) {
    
    		return feelbox_get_widget_html();
    
    }
    
    // function print_feelbox_widget () {
    //	if ( is_single() || is_page() && !(is_home()) ) {
    //		echo feelbox_get_widget_html();
    //	}
    // }
    
    // function print_feelbox_shortcode ( ) {
    //	if ( is_single() || is_page() && !(is_home()) ) {
    //		return feelbox_get_widget_html();
    //	}
    // }
    
    function lydl_js_header() {
    
      // Define custom JavaScript function
    	global $wp_query;
    	wp_reset_query();
    	$options = get_option('feelbox_wp_options');
    
    	// fl3r: quando caricare la feelbox
    	if ( is_single() || is_page() || is_front_page() || is_home()) {
    	// if ( is_single() || is_page() {
    		// create security token
    		$nonce = wp_create_nonce('lydl-feelbox');	
    
    		$id = $wp_query->post->ID;
    
    		$search = array( chr(145), chr(146), chr(147), chr(148), chr(151), '–', '’' );
    		$replace = array("'", "'", '"', '"', '-', '-', "'");
    		$strnosmartquotes = str_replace($search, $replace, html_entity_decode(get_the_title()));
    
    		?>
    <!-- feelbox -->
    <script type="text/javascript">
    		//<![CDATA[
    		var feelboxAjax = {
    		ajaxurl: '<?php echo admin_url( 'admin-ajax.php' ); ?>',
    		token: '<?php echo $nonce; ?>',
    		id: <?php echo $id; ?>,
    		title: '<?php echo addslashes($strnosmartquotes); ?>',
    		url: '<?php echo the_permalink(); ?>',
    		sparkline: '<?php echo $options['showsparkbar'] ?>',
    		sortmoods: '<?php echo $options['sortmoods'] ?>',
    		tweet: '<?php echo $options['showtweetfollowup'] ?>'
    		};
    
    		</script>
    <!-- feelbox -->
    <?php
    	}
    
    } // end of PHP function lydl_js_header
    
    function lydl_store_results($vote, $postid) {
    	global $wpdb;
    	$wpdb->show_errors();
    
    	if ($vote) {
    
    		$table_name = $wpdb->prefix.'lydl_posts';
    		$table_name2 = $wpdb->prefix.'lydl_poststimestamp';
    
    		// Necessary as there is weirdness to prepare method otherwise
    		$votefield = 'emotion_' . $vote;
    
    		$votecount = $wpdb->get_row(
    			$wpdb->prepare(
    				"SELECT * FROM ".$table_name." WHERE ID=%s",
    				$postid
    			)
    		);
    
    		$votecount = $votecount->$votefield;
    
    		$recordexists = (sizeof($votecount) > 0) ? true : false;
    		if ($recordexists) {
    			$row = $wpdb->update(
    				$table_name,
    				array( 'ID'=>$postid, $votefield => $votecount+1 ),
    				array( 'ID'=>$postid )
    			);
    		} else {
    			$row = $wpdb->insert(
    				$table_name,
    				array( 'ID'=>$postid, $votefield => 1)
    			);
    		}
    
    		// update popularpostsdatacache table
    		$isincache = $wpdb->get_results(
    			$wpdb->prepare(
    				"SELECT post_ID FROM ".$table_name2." WHERE post_ID = %s AND emotion = %s AND day = CURDATE()",
    				$postid,
    				$vote
    			)
    		);
    		if ($isincache) {
    			$result2 = $wpdb->query(
    				$wpdb->prepare(
    					"UPDATE ".$table_name2." SET votes=votes+1 WHERE post_ID = %s AND emotion = %s AND day = CURDATE()",
    					$postid,
    					$vote
    				)
    			);
    		} else {
    			$result2 = $wpdb->query(
    				$wpdb->prepare(
    					"INSERT INTO ".$table_name2." (post_ID, votes, emotion, day) VALUES (%s, 1, %s, CURDATE())",
    					$postid,
    					$vote
    				)
    			);
    		}
    		//$cookie_last = $cookie_duration * 24 * 60 * 60;
    		//setcookie("feelbox_{$postid}", $vote,  time()+$cookie_last, COOKIEPATH, COOKIE_DOMAIN);
    
    	}
    }
    
    function lydl_ajax_populate() {
    	global $wpdb;
    	global $post;
    
    	$postid = $_POST['postID'];
    	$nonce = $_POST['token'];
    	// is this a valid request?
    	if (! wp_verify_nonce($nonce, 'lydl-feelbox') ) die("Oops!");
    
    	$obj = $wpdb->get_row("SELECT * FROM {$wpdb->prefix}lydl_posts WHERE ID=" . $postid, ARRAY_A);
    	$sum = $obj["emotion_1"]+$obj["emotion_2"]+$obj["emotion_3"]+$obj["emotion_4"]+$obj["emotion_5"]+$obj["emotion_6"];
    
    	$voted = '';
    	if (isset($_COOKIE['feelbox_'.$postid])) {
    		$voted = $_COOKIE['feelbox_'.$postid];
    	} 
    
    	// generate the response
    	$response = json_encode( array( 'success' => true,
    									'voted' => $voted,
    									'emotion1' => $obj["emotion_1"],
    									'emotion2' => $obj["emotion_2"],
    									'emotion3' => $obj["emotion_3"],
    									'emotion4' => $obj["emotion_4"],
    									'emotion5' => $obj["emotion_5"],
    									'emotion6' => $obj["emotion_6"],
    									'sum' => $sum ) );
    	header( "Content-Type: application/json" );
    	echo $response;
    	exit;
    }
    
    function lydl_ajax_submit() {
    	$nonce = $_POST['token'];
    	// is this a valid request?
    	if (! wp_verify_nonce($nonce, 'lydl-feelbox') ) die("Oops!");
    
    	$vote = $_POST['feelboxvote'];
    	$results_id = $_POST['results_div_id'];
    	$postid = $_POST['postID'];
    
    	lydl_store_results($vote, $postid);
    
    	// generate the response
    	$response = json_encode( array( 'success' => true, 'vote' => $vote, 'divid' => $results_id ) );
    
    	// response output
    	header( "Content-Type: application/json" );
    	echo $response;
    
    	// IMPORTANT: don't forget to "exit"
    	exit;
    }
    
    function lydl_install_db_table () {
    	global $wpdb;
    	global $lydl_db_version;
    
    	$table_name = $wpdb->prefix.'lydl_posts';
    	$table_name2 = $wpdb->prefix.'lydl_poststimestamp';
    	$installed_ver = get_option( "lydl_db_version" );
    
    	if( $installed_ver != $lydl_db_version ) {
    		$sql = "CREATE TABLE " . $table_name . " (
    			<code>ID</code> bigint(20) NOT NULL,
    			<code>emotion_1</code> bigint(20) DEFAULT '0' ,
    			<code>emotion_2</code> bigint(20) DEFAULT '0' ,
    			<code>emotion_3</code> bigint(20) DEFAULT '0' ,
    			<code>emotion_4</code> bigint(20) DEFAULT '0' ,
    			<code>emotion_5</code> bigint(20) DEFAULT '0' ,
    			<code>emotion_6</code> bigint(20) DEFAULT '0' ,
    		);";
    		require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
    		dbDelta($sql);
    	}
    
    	if( $installed_ver != $lydl_db_version ) {
    		$sql = "CREATE TABLE " . $table_name2 . " (
    			<code>post_ID</code> bigint(20) NOT NULL,
    			<code>day</code> datetime NOT NULL default '0000-00-00 00:00:00',
    			<code>votes</code> bigint(20) DEFAULT '0' ,
    			<code>emotion</code> bigint(20) NOT NULL
    		);";
    		require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
    		dbDelta($sql);
    	}
    
    	add_option("lydl_db_version", $lydl_db_version);
    }
    
    $feelbox_plugin = plugin_basename(__FILE__); 
    
    add_filter("plugin_action_links_$feelbox_plugin", 'feelbox_settings_link' );
    register_activation_hook(__FILE__,'lydl_install_db_table');
    add_action('init', 'feelbox_init');
    add_action('admin_menu', 'feelbox_wp_menu');
    add_action('wp_head', 'lydl_js_header' );
    add_action('wp_ajax_cast_vote', 'lydl_ajax_submit');
    add_action('wp_ajax_nopriv_cast_vote', 'lydl_ajax_submit');
    add_action('wp_ajax_check_ip', 'lydl_ajax_checkip');
    add_action('wp_ajax_populate_post', 'lydl_ajax_populate');
    add_action('wp_ajax_nopriv_populate_post', 'lydl_ajax_populate');
    
    function register_feelbox_Widget(){
    register_widget('feelbox_Widget');
    }
    
    add_action('init', 'register_feelbox_Widget', 1);
    add_shortcode( 'feelbox', 'print_feelbox_shortcode' );
    
    ?>

    Plugin Author Armando “FL3R” Fiore

    (@armandofiore)

    With this code, you must disable the “Automatic display” option in the Settings page, otherwise it will cause a double view of plugins on individual pages post.

    Thanks Armando! It might be too much for me, So I abandoned the idea of the feelbox on the front page. Maybe in future updates you can fix this so it displays on the front page with individual post IDs.

Viewing 8 replies - 1 through 8 (of 8 total)
  • The topic ‘How to Embed on FrontPage after every post’ is closed to new replies.