if(! function_exists('escape_tags')) {
function escape_tags($string) {
- return(htmlspecialchars($string));
+ return(htmlspecialchars($string, ENT_COMPAT, 'UTF-8', false));
}}
return $o;
}}
+if(! function_exists('alt_pager')) {
+function alt_pager(&$a, $i) {
+ $o = '';
+ $stripped = preg_replace('/(&page=[0-9]*)/','',$a->query_string);
+ $stripped = str_replace('q=','',$stripped);
+ $stripped = trim($stripped,'/');
+ $pagenum = $a->pager['page'];
+ $url = $a->get_baseurl() . '/' . $stripped;
+
+ $o .= '<div class="pager">';
+
+ if($a->pager['page']>1)
+ $o .= "<a href=\"$url"."&page=".($a->pager['page'] - 1).'">' . t('newer') . '</a>';
+ if($i>0) {
+ if($a->pager['page']>1)
+ $o .= " - ";
+ $o .= "<a href=\"$url"."&page=".($a->pager['page'] + 1).'">' . t('older') . '</a>';
+ }
+
+
+ $o .= '</div>'."\r\n";
+
+ return $o;
+}}
+
// Turn user/group ACLs stored as angle bracketed text into arrays
if(! function_exists('expand_acl')) {
return file_get_contents("$d/$lang/$b");
$theme = current_theme();
-
+
if(file_exists("$d/theme/$theme/$b"))
return file_get_contents("$d/theme/$theme/$b");
$s = preg_replace('/\[code\](.*?)\[\/code\]/sm','',$s);
+ // ignore anything in a bbtag
+
+ $s = preg_replace('/\[(.*?)\]/sm','',$s);
+
// Match full names against @tags including the space between first and last
// We will look these up afterward to see if they are full names or not recognisable.
if(! function_exists('valid_email')) {
function valid_email($x){
+
+ if(get_config('system','disable_email_validation'))
+ return true;
+
if(preg_match('/^[_a-zA-Z0-9\-\+]+(\.[_a-zA-Z0-9\-\+]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$/',$x))
return true;
return false;
return($s);
}}
+function get_poke_verbs() {
+
+ // index is present tense verb
+ // value is array containing past tense verb, translation of present, translation of past
+
+ $arr = array(
+ 'poke' => array( 'poked', t('poke'), t('poked')),
+ 'ping' => array( 'pinged', t('ping'), t('pinged')),
+ 'prod' => array( 'prodded', t('prod'), t('prodded')),
+ 'slap' => array( 'slapped', t('slap'), t('slapped')),
+ 'finger' => array( 'fingered', t('finger'), t('fingered')),
+ 'rebuff' => array( 'rebuffed', t('rebuff'), t('rebuffed')),
+ );
+ call_hooks('poke_verbs', $arr);
+ return $arr;
+}
+
+function get_mood_verbs() {
+
+ // index is present tense verb
+ // value is array containing past tense verb, translation of present, translation of past
+
+ $arr = array(
+ 'happy' => t('happy'),
+ 'sad' => t('sad'),
+ 'mellow' => t('mellow'),
+ 'tired' => t('tired'),
+ 'perky' => t('perky'),
+ 'angry' => t('angry'),
+ 'stupefied' => t('stupified'),
+ 'puzzled' => t('puzzled'),
+ 'interested' => t('interested'),
+ 'bitter' => t('bitter'),
+ 'cheerful' => t('cheerful'),
+ 'alive' => t('alive'),
+ 'annoyed' => t('annoyed'),
+ 'anxious' => t('anxious'),
+ 'cranky' => t('cranky'),
+ 'disturbed' => t('disturbed'),
+ 'frustrated' => t('frustrated'),
+ 'motivated' => t('motivated'),
+ 'relaxed' => t('relaxed'),
+ 'surprised' => t('surprised'),
+ );
+
+ call_hooks('mood_verbs', $arr);
+ return $arr;
+}
+
/**
*
);
$icons = array(
- '<img src="' . $a->get_baseurl() . '/images/smiley-heart.gif" alt="<3" />',
- '<img src="' . $a->get_baseurl() . '/images/smiley-brokenheart.gif" alt="</3" />',
- '<img src="' . $a->get_baseurl() . '/images/smiley-brokenheart.gif" alt="<\\3" />',
- '<img src="' . $a->get_baseurl() . '/images/smiley-smile.gif" alt=":-)" />',
- '<img src="' . $a->get_baseurl() . '/images/smiley-wink.gif" alt=";-)" />',
- '<img src="' . $a->get_baseurl() . '/images/smiley-frown.gif" alt=":-(" />',
- '<img src="' . $a->get_baseurl() . '/images/smiley-tongue-out.gif" alt=":-P" />',
- '<img src="' . $a->get_baseurl() . '/images/smiley-tongue-out.gif" alt=":-p" />',
- '<img src="' . $a->get_baseurl() . '/images/smiley-kiss.gif" alt=":-\"" />',
- '<img src="' . $a->get_baseurl() . '/images/smiley-kiss.gif" alt=":-\"" />',
- '<img src="' . $a->get_baseurl() . '/images/smiley-kiss.gif" alt=":-x" />',
- '<img src="' . $a->get_baseurl() . '/images/smiley-kiss.gif" alt=":-X" />',
- '<img src="' . $a->get_baseurl() . '/images/smiley-laughing.gif" alt=":-D" />',
- '<img src="' . $a->get_baseurl() . '/images/smiley-surprised.gif" alt="8-|" />',
- '<img src="' . $a->get_baseurl() . '/images/smiley-surprised.gif" alt="8-O" />',
- '<img src="' . $a->get_baseurl() . '/images/smiley-surprised.gif" alt=":-O" />',
- '<img src="' . $a->get_baseurl() . '/images/smiley-thumbsup.gif" alt="\\o/" />',
- '<img src="' . $a->get_baseurl() . '/images/smiley-Oo.gif" alt="o.O" />',
- '<img src="' . $a->get_baseurl() . '/images/smiley-Oo.gif" alt="O.o" />',
- '<img src="' . $a->get_baseurl() . '/images/smiley-Oo.gif" alt="o_O" />',
- '<img src="' . $a->get_baseurl() . '/images/smiley-Oo.gif" alt="O_o" />',
- '<img src="' . $a->get_baseurl() . '/images/smiley-cry.gif" alt=":\'(" />',
- '<img src="' . $a->get_baseurl() . '/images/smiley-foot-in-mouth.gif" alt=":-!" />',
- '<img src="' . $a->get_baseurl() . '/images/smiley-undecided.gif" alt=":-/" />',
- '<img src="' . $a->get_baseurl() . '/images/smiley-embarassed.gif" alt=":-[" />',
- '<img src="' . $a->get_baseurl() . '/images/smiley-cool.gif" alt="8-)" />',
- '<img src="' . $a->get_baseurl() . '/images/beer_mug.gif" alt=":beer" />',
- '<img src="' . $a->get_baseurl() . '/images/beer_mug.gif" alt=":homebrew" />',
- '<img src="' . $a->get_baseurl() . '/images/coffee.gif" alt=":coffee" />',
- '<img src="' . $a->get_baseurl() . '/images/smiley-facepalm.gif" alt=":facepalm" />',
- '<img src="' . $a->get_baseurl() . '/images/like.gif" alt=":like" />',
- '<img src="' . $a->get_baseurl() . '/images/dislike.gif" alt=":dislike" />',
- '<a href="http://project.friendika.com">~friendika <img src="' . $a->get_baseurl() . '/images/friendika-16.png" alt="~friendika" /></a>',
- '<a href="http://friendica.com">~friendica <img src="' . $a->get_baseurl() . '/images/friendica-16.png" alt="~friendica" /></a>'
+ '<img class="smiley" src="' . $a->get_baseurl() . '/images/smiley-heart.gif" alt="<3" />',
+ '<img class="smiley" src="' . $a->get_baseurl() . '/images/smiley-brokenheart.gif" alt="</3" />',
+ '<img class="smiley" src="' . $a->get_baseurl() . '/images/smiley-brokenheart.gif" alt="<\\3" />',
+ '<img class="smiley" src="' . $a->get_baseurl() . '/images/smiley-smile.gif" alt=":-)" />',
+ '<img class="smiley" src="' . $a->get_baseurl() . '/images/smiley-wink.gif" alt=";-)" />',
+ '<img class="smiley" src="' . $a->get_baseurl() . '/images/smiley-frown.gif" alt=":-(" />',
+ '<img class="smiley" src="' . $a->get_baseurl() . '/images/smiley-tongue-out.gif" alt=":-P" />',
+ '<img class="smiley" src="' . $a->get_baseurl() . '/images/smiley-tongue-out.gif" alt=":-p" />',
+ '<img class="smiley" src="' . $a->get_baseurl() . '/images/smiley-kiss.gif" alt=":-\"" />',
+ '<img class="smiley" src="' . $a->get_baseurl() . '/images/smiley-kiss.gif" alt=":-\"" />',
+ '<img class="smiley" src="' . $a->get_baseurl() . '/images/smiley-kiss.gif" alt=":-x" />',
+ '<img class="smiley" src="' . $a->get_baseurl() . '/images/smiley-kiss.gif" alt=":-X" />',
+ '<img class="smiley" src="' . $a->get_baseurl() . '/images/smiley-laughing.gif" alt=":-D" />',
+ '<img class="smiley" src="' . $a->get_baseurl() . '/images/smiley-surprised.gif" alt="8-|" />',
+ '<img class="smiley" src="' . $a->get_baseurl() . '/images/smiley-surprised.gif" alt="8-O" />',
+ '<img class="smiley" src="' . $a->get_baseurl() . '/images/smiley-surprised.gif" alt=":-O" />',
+ '<img class="smiley" src="' . $a->get_baseurl() . '/images/smiley-thumbsup.gif" alt="\\o/" />',
+ '<img class="smiley" src="' . $a->get_baseurl() . '/images/smiley-Oo.gif" alt="o.O" />',
+ '<img class="smiley" src="' . $a->get_baseurl() . '/images/smiley-Oo.gif" alt="O.o" />',
+ '<img class="smiley" src="' . $a->get_baseurl() . '/images/smiley-Oo.gif" alt="o_O" />',
+ '<img class="smiley" src="' . $a->get_baseurl() . '/images/smiley-Oo.gif" alt="O_o" />',
+ '<img class="smiley" src="' . $a->get_baseurl() . '/images/smiley-cry.gif" alt=":\'(" />',
+ '<img class="smiley" src="' . $a->get_baseurl() . '/images/smiley-foot-in-mouth.gif" alt=":-!" />',
+ '<img class="smiley" src="' . $a->get_baseurl() . '/images/smiley-undecided.gif" alt=":-/" />',
+ '<img class="smiley" src="' . $a->get_baseurl() . '/images/smiley-embarassed.gif" alt=":-[" />',
+ '<img class="smiley" src="' . $a->get_baseurl() . '/images/smiley-cool.gif" alt="8-)" />',
+ '<img class="smiley" src="' . $a->get_baseurl() . '/images/beer_mug.gif" alt=":beer" />',
+ '<img class="smiley" src="' . $a->get_baseurl() . '/images/beer_mug.gif" alt=":homebrew" />',
+ '<img class="smiley" src="' . $a->get_baseurl() . '/images/coffee.gif" alt=":coffee" />',
+ '<img class="smiley" src="' . $a->get_baseurl() . '/images/smiley-facepalm.gif" alt=":facepalm" />',
+ '<img class="smiley" src="' . $a->get_baseurl() . '/images/like.gif" alt=":like" />',
+ '<img class="smiley" src="' . $a->get_baseurl() . '/images/dislike.gif" alt=":dislike" />',
+ '<a href="http://project.friendika.com">~friendika <img class="smiley" src="' . $a->get_baseurl() . '/images/friendika-16.png" alt="~friendika" /></a>',
+ '<a href="http://friendica.com">~friendica <img class="smiley" src="' . $a->get_baseurl() . '/images/friendica-16.png" alt="~friendica" /></a>'
);
$params = array('texts' => $texts, 'icons' => $icons, 'string' => $s);
return $x[0];
$t = '';
for($cnt = 0; $cnt < strlen($x[1]); $cnt ++)
- $t .= '<img src="' . $a->get_baseurl() . '/images/smiley-heart.gif" alt="<3" />';
+ $t .= '<img class="smiley" src="' . $a->get_baseurl() . '/images/smiley-heart.gif" alt="<3" />';
$r = str_replace($x[0],$t,$x[0]);
return $r;
}
}
$title = ((strlen(trim($mtch[4]))) ? escape_tags(trim($mtch[4])) : escape_tags($mtch[1]));
$title .= ' ' . $mtch[2] . ' ' . t('bytes');
- if((local_user() == $item['uid']) && $item['contact-id'] != $a->contact['id'])
+ if((local_user() == $item['uid']) && ($item['contact-id'] != $a->contact['id']) && ($item['network'] == NETWORK_DFRN))
$the_url = $a->get_baseurl() . '/redir/' . $item['contact-id'] . '?f=1&url=' . $mtch[1];
else
$the_url = $mtch[1];
}
$s .= '<div class="clear"></div></div>';
}
- $matches = false;
- $cnt = preg_match_all('/<(.*?)>/',$item['file'],$matches,PREG_SET_ORDER);
- if($cnt) {
-// logger('prepare_text: categories: ' . print_r($matches,true), LOGGER_DEBUG);
- foreach($matches as $mtch) {
- if(strlen($x))
- $x .= ',';
- $x .= xmlify(file_tag_decode($mtch[1]))
- . ((local_user() == $item['uid']) ? ' <a href="' . $a->get_baseurl() . '/filerm/' . $item['id'] . '?f=&cat=' . xmlify(file_tag_decode($mtch[1])) . '" title="' . t('remove') . '" >' . t('[remove]') . '</a>' : '');
- }
- if(strlen($x))
- $s .= '<div class="categorytags"><span>' . t('Categories:') . ' </span>' . $x . '</div>';
-
- }
- $matches = false;
- $x = '';
- $cnt = preg_match_all('/\[(.*?)\]/',$item['file'],$matches,PREG_SET_ORDER);
- if($cnt) {
-// logger('prepare_text: filed_under: ' . print_r($matches,true), LOGGER_DEBUG);
- foreach($matches as $mtch) {
- if(strlen($x))
- $x .= ' ';
- $x .= xmlify(file_tag_decode($mtch[1])) . ' <a href="' . $a->get_baseurl() . '/filerm/' . $item['id'] . '?f=&term=' . xmlify(file_tag_decode($mtch[1])) . '" title="' . t('remove') . '" >' . t('[remove]') . '</a>';
- }
- if(strlen($x) && (local_user() == $item['uid']))
- $s .= '<div class="filesavetags"><span>' . t('Filed under:') . ' </span>' . $x . '</div>';
- }
// Look for spoiler
$spoilersearch = '<blockquote class="spoiler">';
}}
+/**
+ * returns
+ * [
+ * //categories [
+ * {
+ * 'name': 'category name',
+ * 'removeurl': 'url to remove this category',
+ * 'first': 'is the first in this array? true/false',
+ * 'last': 'is the last in this array? true/false',
+ * } ,
+ * ....
+ * ],
+ * // folders [
+ * 'name': 'folder name',
+ * 'removeurl': 'url to remove this folder',
+ * 'first': 'is the first in this array? true/false',
+ * 'last': 'is the last in this array? true/false',
+ * } ,
+ * ....
+ * ]
+ * ]
+ */
+function get_cats_and_terms($item) {
+ $a = get_app();
+ $categories = array();
+ $folders = array();
+
+ $matches = false; $first = true;
+ $cnt = preg_match_all('/<(.*?)>/',$item['file'],$matches,PREG_SET_ORDER);
+ if($cnt) {
+ foreach($matches as $mtch) {
+ $categories[] = array(
+ 'name' => xmlify(file_tag_decode($mtch[1])),
+ 'url' => "#",
+ 'removeurl' => ((local_user() == $item['uid'])?$a->get_baseurl() . '/filerm/' . $item['id'] . '?f=&cat=' . xmlify(file_tag_decode($mtch[1])):""),
+ 'first' => $first,
+ 'last' => false
+ );
+ $first = false;
+ }
+ }
+ if (count($categories)) $categories[count($categories)-1]['last'] = true;
+
+
+ if(local_user() == $item['uid']) {
+ $matches = false; $first = true;
+ $cnt = preg_match_all('/\[(.*?)\]/',$item['file'],$matches,PREG_SET_ORDER);
+ if($cnt) {
+ foreach($matches as $mtch) {
+ $folders[] = array(
+ 'name' => xmlify(file_tag_decode($mtch[1])),
+ 'url' => "#",
+ 'removeurl' => ((local_user() == $item['uid'])?$a->get_baseurl() . '/filerm/' . $item['id'] . '?f=&term=' . xmlify(file_tag_decode($mtch[1])):""),
+ 'first' => $first,
+ 'last' => false
+ );
+ $first = false;
+ }
+ }
+ }
+
+ if (count($folders)) $folders[count($folders)-1]['last'] = true;
+
+ return array($categories, $folders);
+}
+
+
/**
* return atom link elements for all of our hubs
*/
if(! function_exists('get_plink')) {
function get_plink($item) {
$a = get_app();
- if (x($item,'plink') && (! $item['private'])){
+ if (x($item,'plink') && ($item['private'] != 1)) {
return array(
'href' => $item['plink'],
'title' => t('link to source'),
);
- } else {
+ }
+ else {
return false;
}
}}
function html2bb_video($s) {
- $s = preg_replace('#<object[^>]+>(.*?)https+://www.youtube.com/((?:v|cp)/[A-Za-z0-9\-_=]+)(.*?)</object>#ism',
+ $s = preg_replace('#<object[^>]+>(.*?)https?://www.youtube.com/((?:v|cp)/[A-Za-z0-9\-_=]+)(.*?)</object>#ism',
'[youtube]$2[/youtube]', $s);
- $s = preg_replace('#<iframe[^>](.*?)https+://www.youtube.com/embed/([A-Za-z0-9\-_=]+)(.*?)</iframe>#ism',
+ $s = preg_replace('#<iframe[^>](.*?)https?://www.youtube.com/embed/([A-Za-z0-9\-_=]+)(.*?)</iframe>#ism',
'[youtube]$2[/youtube]', $s);
- $s = preg_replace('#<iframe[^>](.*?)https+://player.vimeo.com/video/([0-9]+)(.*?)</iframe>#ism',
+ $s = preg_replace('#<iframe[^>](.*?)https?://player.vimeo.com/video/([0-9]+)(.*?)</iframe>#ism',
'[vimeo]$2[/vimeo]', $s);
return $s;
function fix_mce_lf($s) {
$s = str_replace("\r\n","\n",$s);
- $s = str_replace("\n\n","\n",$s);
+// $s = str_replace("\n\n","\n",$s);
return $s;
}
return(str_replace('%','%%',$s));
}
+
+function is_a_date_arg($s) {
+ $i = intval($s);
+ if($i > 1900) {
+ $y = date('Y');
+ if($i <= $y+1 && strpos($s,'-') == 4) {
+ $m = intval(substr($s,5));
+ if($m > 0 && $m <= 12)
+ return true;
+ }
+ }
+ return false;
+}