WordPress.org

Ready to get started?Download WordPress

Forums

Recent Tweets Widget
[resolved] Multiple widget instances on same page issue (4 posts)

  1. sakib000
    Member
    Posted 1 year ago #

    Hello author,

    Thanks for nice plugin.

    The issue is when someone places more than 1 widget on same page it shows following error

    Fatal error: Cannot redeclare convert_links() (previously declared in W:\wamp\www\wordpress_dev\icompany\dev\wp-content\themes\icompany\widgets\recent_tweets.php:89)

    TO fix this issue, all you need to do is to move convert_links() function and relative_time() out of the class i.e. at top of the file.

    Thanks

    http://wordpress.org/extend/plugins/recent-tweets-widget/

  2. moggy17
    Member
    Posted 1 year ago #

    Hi, I'm having the same problem where do I find convert_links() and relative time?

  3. sakib000
    Member
    Posted 1 year ago #

    Convert_link() and relative_time() are the functions located in recent-tweets.php file. Function code as of version 1.0.6 is:

    //convert links to clickable format
    function convert_links($status,$targetBlank=true,$linkMaxLen=250){
    
    	// the target
    		$target=$targetBlank ? " target=\"_blank\" " : "";
    
    	// convert link to url
    		$status = preg_replace("/((http:\/\/|https:\/\/)[^ )
    ]+)/e", "'<a href=\"$1\" title=\"$1\" $target >'. ((strlen('$1')>=$linkMaxLen ? substr('$1',0,$linkMaxLen).'...':'$1')).'</a>'", $status);
    
    	// convert @ to follow
    		$status = preg_replace("/(@([_a-z0-9\-]+))/i","<a href=\"http://twitter.com/$2\" title=\"Follow $2\" $target >$1</a>",$status);
    
    	// convert # to search
    		$status = preg_replace("/(#([_a-z0-9\-]+))/i","<a href=\"https://twitter.com/search?q=$2\" title=\"Search $1\" $target >$1</a>",$status);
    
    	// return the status
    		return $status;
    }
    
    //convert dates to readable format
    function relative_time($a) {
    	//get current timestampt
    	$b = strtotime("now");
    	//get timestamp when tweet created
    	$c = strtotime($a);
    	//get difference
    	$d = $b - $c;
    	//calculate different time values
    	$minute = 60;
    	$hour = $minute * 60;
    	$day = $hour * 24;
    	$week = $day * 7;
    
    	if(is_numeric($d) && $d > 0) {
    		//if less then 3 seconds
    		if($d < 3) return "right now";
    		//if less then minute
    		if($d < $minute) return floor($d) . " seconds ago";
    		//if less then 2 minutes
    		if($d < $minute * 2) return "about 1 minute ago";
    		//if less then hour
    		if($d < $hour) return floor($d / $minute) . " minutes ago";
    		//if less then 2 hours
    		if($d < $hour * 2) return "about 1 hour ago";
    		//if less then day
    		if($d < $day) return floor($d / $hour) . " hours ago";
    		//if more then day, but less then 2 days
    		if($d > $day && $d < $day * 2) return "yesterday";
    		//if less then year
    		if($d < $day * 365) return floor($d / $day) . " days ago";
    		//else return more than a year
    		return "over a year ago";
    	}
    }

    You need to move these function code out of the tp_widget_recent_tweets class.

  4. ThemePrince
    Member
    Plugin Author

    Posted 12 months ago #

    Thanks sakib000!

    In the upcoming version I added a function_exists() code to check functions. I also added a special naming for these functions to avoid function name dupes.

    Next version is coming real soon!

Topic Closed

This topic has been closed to new replies.

About this Plugin

About this Topic