%s',
$name,
$hint,
@in_array($name, $shrsb_plugopts['bookmark'])?'checked="checked" ':"",
$name,
$name,
shrsb_truncate_text(end(explode('-', $name)), 9)
);
}
function shrsb_truncate_text($text, $nbrChar, $append='..') {
if(strlen($text) > $nbrChar) {
$text = substr($text, 0, $nbrChar);
$text .= $append;
}
return $text;
}
// returns the option tag for a form select element
// $opts array expecting keys: field, value, text
function shrsb_form_select_option($opts) {
global $shrsb_plugopts;
$opts=array_merge(
array(
'field'=>'',
'value'=>'',
'text'=>'',
),
$opts
);
return sprintf('',
($shrsb_plugopts[$opts['field']]==$opts['value'])?' selected="selected"':"",
$opts['value'],
$opts['text']
);
}
// given an array $options of data and $field to feed into shrsb_form_select_option
function shrsb_select_option_group($field, $options) {
$h='';
foreach ($options as $value=>$text) {
$h.=shrsb_form_select_option(array(
'field'=>$field,
'value'=>$value,
'text'=>$text,
));
}
return $h;
}
function shrsb_is_mobile_browser() {
$useragent=$_SERVER['HTTP_USER_AGENT'];
$isMobile = false;
if(preg_match('/android|avantgo|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i',$useragent)||preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|e\-|e\/|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|xda(\-|2|g)|yas\-|your|zeto|zte\-/i',substr($useragent,0,4))) {
$isMobile = true;
}
return $isMobile;
}
// function to list bookmarks that have been chosen by admin
function bookmark_list_item($name, $opts=array()) {
global $shrsb_plugopts, $shrsb_bookmarks_data, $post;
$onclick = "";
$post_info = shrsb_get_params($post->ID);
// If Twitter, check for custom tweet configuration and modify tweet accordingly
if($name == 'shr-twitter') {
if(!shrsb_is_mobile_browser()) {
$clickHandler = '
if(typeof(SHR_config) == "undefined" || !SHR_config) {
window["SHR_config"] = {};
}
window["__shr_service"] = "twitter";
window["__shr_log"] = true;
window["__shr_center"] = true;
SHR_config["shortener"] ="'.$post_info['shortener'].'";
SHR_config["shortener_key"] ="'.$post_info['shortener_key'].'";
SHR_config["apikey"] = "'.$shrsb_plugopts['apikey'].'";
SHR_config["twitter_template"] = "'.$shrsb_plugopts['tweetconfig'].'";
SHR_config["link"] = "PERMALINK";
SHR_config["title"] = "TITLE";
SHR_config["short_link"] = "'.$post_info['short_link'].'";
if(!window.SHR || !window.SHR.Servicelet) {
var d = document;
var s=d.createElement("script");
s.setAttribute("language","javascript");
s.id="shr-servicelet";
s.setAttribute("src", "'.$shrsb_plugopts['shrbase'].'" + "/media/js/servicelet.min.js");
d.body.appendChild(s);
} else{
SHR.Servicelet.show();
}
return false;
';
foreach ($opts as $key=>$value) {
$clickHandler = str_replace(strtoupper($key), $value, $clickHandler);
}
$clickHandler = str_replace('"',"'",$clickHandler);
$clickHandler = str_replace(array("\n","\r"),"",$clickHandler);
$onclick = " onclick=\"$clickHandler\"";
}
$url = $shrsb_plugopts['shrbase'].'/api/share/?'.implode('&',array(
'title=TITLE',
'link=PERMALINK',
'notes='.$post_info['notes'],
'short_link='.$post_info['short_link'],
'shortener='.$post_info['shortener'],
'shortener_key='.$post_info['shortener_key'],
'v=1',
'apitype=1',
'apikey='.$shrsb_plugopts['apikey'],
'source=Shareaholic',
'template='.urlencode($shrsb_plugopts['tweetconfig']),
'service='.$shrsb_bookmarks_data[$name]['id'],
'tags='.$post_info['d_tags'],
'ctype='
));
}
else if($name == 'shr-comfeed') {// Otherwise, use default baseUrl format
$url=$shrsb_bookmarks_data[$name]['baseUrl'];
}
else {
$url = $shrsb_plugopts['shrbase'].'/api/share/?'.implode('&',array(
'title=TITLE',
'link=PERMALINK',
'notes='.$post_info['notes'],
'short_link='.$post_info['short_link'],
'shortener='.$post_info['shortener'],
'shortener_key='.$post_info['shortener_key'],
'v=1',
'apitype=1',
'apikey='.$shrsb_plugopts['apikey'],
'source=Shareaholic',
'template=',
'service='.$shrsb_bookmarks_data[$name]['id'],
'tags='.$post_info['d_tags'],
'ctype='
));
}
$topt = '';
if($name == 'shr-facebook') {
$onclick = " onclick=\"window.open(this.href,'sharer','toolbar=0,status=0,width=626,height=436'); return false;\"";
}
else {
if($shrsb_plugopts['targetopt'] == '_blank') {
$topt = ' class="external"';
}
}
foreach ($opts as $key=>$value) {
$url=str_replace(strtoupper($key), $value, preg_replace('/\s+/', '%20', $url));
}
if(is_feed()) {
return sprintf(
"\t\t".''."\n\t\t\t".'%s'."\n\t\t".''."\n",
$name,
$url,
$shrsb_plugopts['reloption'],
$topt,
$shrsb_bookmarks_data[$name]['share'],
$shrsb_bookmarks_data[$name]['share']
);
}
else {
return sprintf(
"\t\t".''."\n\t\t\t".' '."\n\t\t".''."\n",
$name,
$url,
$shrsb_plugopts['reloption'],
$topt,
$shrsb_bookmarks_data[$name]['share'],
$onclick
);
}
}
// Displays a multi-dimensional array as a HTML List (Tree structure).
function shrsb_displayTree($var) {
$newline = "\n";
$output = "";
foreach($var as $key => $value) {
if (is_array($value) || is_object($value)) {
$value = $newline . "" . shrsb_displayTree($value) . "
";
}
if (is_array($var)) {
if (!stripos($value, "" ."$key = $value" . "" . $newline;
}
else {
$output .= "$key = $value" . $newline;
}
}
else { // is_object
if (!stripos($value, "" . $value . "" . $newline;
}
$output .= "" . $key . $value . "" . $newline;
}
}
return $output;
}