• Resolved sakib000

    (@sakib000)


    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

    https://www.ads-software.com/extend/plugins/recent-tweets-widget/

Viewing 3 replies - 1 through 3 (of 3 total)
  • Hi, I’m having the same problem where do I find convert_links() and relative time?

    Thread Starter sakib000

    (@sakib000)

    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=\"https://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.

    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!

Viewing 3 replies - 1 through 3 (of 3 total)
  • The topic ‘Multiple widget instances on same page issue’ is closed to new replies.