/**
* Generate a guaranteed unique photo ID.
* safe from birthday paradox
- *
+ *
* @return string
- */
+ */
function photo_new_resource() {
do {
* @deprecated
* wrapper to load a view template, checking for alternate
* languages before falling back to the default
- *
+ *
* @global string $lang
* @global App $a
* @param string $s view name
// Otherwise pull out single word tags. These can be @nickname, @first_last
// and #hash tags.
- if(preg_match_all('/([@#][^ \x0D\x0A,;:?]+)([ \x0D\x0A,;:?]|$)/',$s,$match)) {
+ if(preg_match_all('/([!#@][^ \x0D\x0A,;:?]+)([ \x0D\x0A,;:?]|$)/',$s,$match)) {
foreach($match[1] as $mtch) {
if(strstr($mtch,"]")) {
// we might be inside a bbcode color tag - leave it alone
*/
function get_plink($item) {
$a = get_app();
- $ret = array(
- 'href' => $a->get_baseurl()."/display/".$a->user['nickname']."/".$item['id'],
- 'title' => t('link to source'),
- );
- $ret["orig"] = $ret["href"];
+ if ($a->user['nickname'] != "") {
+ $ret = array(
+ 'href' => $a->get_baseurl()."/display/".$a->user['nickname']."/".$item['id'],
+ 'title' => t('link to source'),
+ );
+ $ret["orig"] = $ret["href"];
+
+ if (x($item,'plink'))
+ $ret["href"] = $item['plink'];
+
+ } elseif (x($item,'plink') && ($item['private'] != 1))
+ $ret = array(
+ 'href' => $item['plink'],
+ 'orig' => $item['plink'],
+ 'title' => t('link to source'),
+ );
+ else
+ $ret = array();
//if (x($item,'plink') && ($item['private'] != 1))
- if (x($item,'plink'))
- $ret["href"] = $item['plink'];
return($ret);
}}
if($type == 'file') {
$lbracket = '[';
$rbracket = ']';
+ $termtype = TERM_FILE;
}
else {
$lbracket = '<';
$rbracket = '>';
+ $termtype = TERM_CATEGORY;
}
$filetags_updated = $saved;
}
foreach($deleted_tags as $key => $tag) {
- $r = q("select file from item where uid = %d " . file_tag_file_query('item',$tag,$type),
- intval($uid)
- );
+ $r = q("SELECT `oid` FROM `term` WHERE `term` = '%s' AND `otype` = %d AND `type` = %d AND `uid` = %d",
+ dbesc($tag),
+ intval(TERM_OBJ_POST),
+ intval($termtype),
+ intval($uid));
+
+ //$r = q("select file from item where uid = %d " . file_tag_file_query('item',$tag,$type),
+ // intval($uid)
+ //);
if(count($r)) {
unset($deleted_tags[$key]);
}
function file_tag_save_file($uid,$item,$file) {
+ require_once("include/files.php");
+
$result = false;
if(! intval($uid))
return false;
);
if(count($r)) {
if(! stristr($r[0]['file'],'[' . file_tag_encode($file) . ']'))
- q("update item set file = '%s' where id = %d and uid = %d limit 1",
+ q("update item set file = '%s' where id = %d and uid = %d",
dbesc($r[0]['file'] . '[' . file_tag_encode($file) . ']'),
intval($item),
intval($uid)
);
+
+ create_files_from_item($item);
+
$saved = get_pconfig($uid,'system','filetags');
if((! strlen($saved)) || (! stristr($saved,'[' . file_tag_encode($file) . ']')))
set_pconfig($uid,'system','filetags',$saved . '[' . file_tag_encode($file) . ']');
}
function file_tag_unsave_file($uid,$item,$file,$cat = false) {
+ require_once("include/files.php");
+
$result = false;
if(! intval($uid))
return false;
- if($cat == true)
+ if($cat == true) {
$pattern = '<' . file_tag_encode($file) . '>' ;
- else
+ $termtype = TERM_CATEGORY;
+ } else {
$pattern = '[' . file_tag_encode($file) . ']' ;
+ $termtype = TERM_FILE;
+ }
$r = q("select file from item where id = %d and uid = %d limit 1",
if(! count($r))
return false;
- q("update item set file = '%s' where id = %d and uid = %d limit 1",
+ q("update item set file = '%s' where id = %d and uid = %d",
dbesc(str_replace($pattern,'',$r[0]['file'])),
intval($item),
intval($uid)
);
- $r = q("select file from item where uid = %d and deleted = 0 " . file_tag_file_query('item',$file,(($cat) ? 'category' : 'file')),
- intval($uid)
- );
+ create_files_from_item($item);
+
+ $r = q("SELECT `oid` FROM `term` WHERE `term` = '%s' AND `otype` = %d AND `type` = %d AND `uid` = %d",
+ dbesc($file),
+ intval(TERM_OBJ_POST),
+ intval($termtype),
+ intval($uid));
+
+ //$r = q("select file from item where uid = %d and deleted = 0 " . file_tag_file_query('item',$file,(($cat) ? 'category' : 'file')),
+ //);
if(! count($r)) {
$saved = get_pconfig($uid,'system','filetags');
function undo_post_tagging($s) {
$matches = null;
- $cnt = preg_match_all('/([@#])\[url=(.*?)\](.*?)\[\/url\]/ism',$s,$matches,PREG_SET_ORDER);
+ $cnt = preg_match_all('/([!#@])\[url=(.*?)\](.*?)\[\/url\]/ism',$s,$matches,PREG_SET_ORDER);
if($cnt) {
foreach($matches as $mtch) {
$s = str_replace($mtch[0], $mtch[1] . $mtch[3],$s);