<?php
use Friendica\App;
+use Friendica\Core\System;
require_once "include/bbcode.php";
require_once "include/acl_selectors.php";
while ($pos !== false && $cnt < 1000) {
$search = '/\[url\=(.*?)\]\[!#saved_image([0-9]*)#!\]\[\/url\]' . '/is';
- $replace = '[url=' . z_path() . '/redir/' . $cid
+ $replace = '[url=' . System::baseUrl() . '/redir/' . $cid
. '?f=1&url=' . '$1' . '][!#saved_image' . '$2' .'#!][/url]';
$newbody .= substr($origbody, 0, $pos['start']['open']);
$x = stristr($item['plink'],'/display/');
if ($x) {
$sparkle = false;
- $y = best_link_url($item, $sparkle, true);
+ $y = best_link_url($item, $sparkle);
if (strstr($y, '/redir/')) {
$item['plink'] = $y . '?f=&url=' . $item['plink'];
These Fields are not added below (yet). They are here to for bug search.
`item`.`type`,
`item`.`extid`,
-`item`.`received`,
`item`.`changed`,
`item`.`moderated`,
`item`.`target-type`,
`item`.`owner-id`, `item`.`owner-link`, `item`.`owner-name`, `item`.`owner-avatar`,
`item`.`contact-id`, `item`.`uid`, `item`.`id`, `item`.`parent`,
`item`.`uri`, `item`.`thr-parent`, `item`.`parent-uri`,
- `item`.`commented`, `item`.`created`, `item`.`edited`,
+ `item`.`commented`, `item`.`created`, `item`.`edited`, `item`.`received`,
`item`.`verb`, `item`.`object-type`, `item`.`postopts`, `item`.`plink`,
`item`.`guid`, `item`.`wall`, `item`.`private`, `item`.`starred`,
`item`.`title`, `item`.`body`, `item`.`file`, `item`.`event-id`,
`author`.`thumb` AS `author-thumb`, `owner`.`thumb` AS `owner-thumb`,
`contact`.`network`, `contact`.`url`, `contact`.`name`, `contact`.`writable`,
- `contact`.`self`, `contact`.`id` AS `cid`, `contact`.`alias`";
+ `contact`.`self`, `contact`.`id` AS `cid`, `contact`.`alias`,
+
+ `event`.`created` AS `event-created`, `event`.`edited` AS `event-edited`,
+ `event`.`start` AS `event-start`,`event`.`finish` AS `event-finish`,
+ `event`.`summary` AS `event-summary`,`event`.`desc` AS `event-desc`,
+ `event`.`location` AS `event-location`, `event`.`type` AS `event-type`,
+ `event`.`nofinish` AS `event-nofinish`,`event`.`adjust` AS `event-adjust`,
+ `event`.`ignore` AS `event-ignore`, `event`.`id` AS `event-id`";
}
/**
return "STRAIGHT_JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND
(NOT `contact`.`blocked` OR `contact`.`pending`)
LEFT JOIN `contact` AS `author` ON `author`.`id`=`item`.`author-id`
- LEFT JOIN `contact` AS `owner` ON `owner`.`id`=`item`.`owner-id`";
+ LEFT JOIN `contact` AS `owner` ON `owner`.`id`=`item`.`owner-id`
+ LEFT JOIN `event` ON `event-id` = `event`.`id`";
}
/**
$hashtags = array();
$mentions = array();
- $taglist = q("SELECT `type`, `term`, `url` FROM `term` WHERE `otype` = %d AND `oid` = %d AND `type` IN (%d, %d) ORDER BY `tid`",
- intval(TERM_OBJ_POST), intval($item['id']), intval(TERM_HASHTAG), intval(TERM_MENTION));
+ $searchpath = System::baseUrl()."/search?tag=";
- foreach ($taglist as $tag) {
+ $taglist = dba::select('term', array('type', 'term', 'url'),
+ array("`otype` = ? AND `oid` = ? AND `type` IN (?, ?)", TERM_OBJ_POST, $item['id'], TERM_HASHTAG, TERM_MENTION),
+ array('order' => array('tid')));
+ while ($tag = dba::fetch($taglist)) {
if ($tag["url"] == "") {
$tag["url"] = $searchpath . strtolower($tag["term"]);
}
+ $tag["url"] = best_link_url($item, $sp, $tag["url"]);
+
if ($tag["type"] == TERM_HASHTAG) {
$hashtags[] = "#<a href=\"" . $tag["url"] . "\" target=\"_blank\">" . $tag["term"] . "</a>";
$prefix = "#";
}
$tags[] = $prefix."<a href=\"" . $tag["url"] . "\" target=\"_blank\">" . $tag["term"] . "</a>";
}
+ dba::close($taglist);
$sp = false;
- $profile_link = best_link_url($item,$sp);
+ $profile_link = best_link_url($item, $sp);
if ($profile_link === 'mailbox') {
$profile_link = '';
}
$profile_link = zrl($profile_link);
}
- if (!x($item, 'author-thumb') OR ($item['author-thumb'] == "")) {
+ if (!x($item, 'author-thumb') || ($item['author-thumb'] == "")) {
$author_contact = get_contact_details_by_url($item['author-link'], $profile_owner);
if ($author_contact["thumb"]) {
$item['author-thumb'] = $author_contact["thumb"];
}
}
- if (!isset($item['owner-thumb']) OR ($item['owner-thumb'] == "")) {
+ if (!isset($item['owner-thumb']) || ($item['owner-thumb'] == "")) {
$owner_contact = get_contact_details_by_url($item['owner-link'], $profile_owner);
if ($owner_contact["thumb"]) {
$item['owner-thumb'] = $owner_contact["thumb"];
$tmp_item = array(
'template' => $tpl,
'id' => (($preview) ? 'P0' : $item['item_id']),
+ 'guid' => (($preview) ? 'Q0' : $item['guid']),
'network' => $item['item_network'],
'network_name' => network_to_name($item['item_network'], $profile_link),
'linktitle' => sprintf( t('View %s\'s profile @ %s'), $profile_name, ((strlen($item['author-link'])) ? $item['author-link'] : $item['url'])),
'name' => $profile_name_e,
'sparkle' => $sparkle,
'lock' => $lock,
- 'thumb' => App::remove_baseurl(proxy_url($item['author-thumb'], false, PROXY_SIZE_THUMB)),
+ 'thumb' => System::removedBaseUrl(proxy_url($item['author-thumb'], false, PROXY_SIZE_THUMB)),
'title' => $item['title_e'],
'body' => $body_e,
'tags' => $tags_e,
'indent' => '',
'owner_name' => $owner_name_e,
'owner_url' => $owner_url,
- 'owner_photo' => App::remove_baseurl(proxy_url($item['owner-thumb'], false, PROXY_SIZE_THUMB)),
+ 'owner_photo' => System::removedBaseUrl(proxy_url($item['owner-thumb'], false, PROXY_SIZE_THUMB)),
'plink' => get_plink($item),
'edpost' => false,
'isstarred' => $isstarred,
}
$o = replace_macros($page_template, array(
- '$baseurl' => App::get_baseurl($ssl_state),
+ '$baseurl' => System::baseUrl($ssl_state),
'$return_path' => $a->query_string,
'$live_update' => $live_update_div,
'$remove' => t('remove'),
return $o;
}}
-function best_link_url($item, &$sparkle, $ssl_state = false) {
+function best_link_url($item, &$sparkle, $url = '') {
$best_url = '';
$sparkle = false;
$clean_url = normalise_link($item['author-link']);
if (local_user()) {
- $r = q("SELECT `id` FROM `contact` WHERE `network` = '%s' AND `uid` = %d AND `nurl` = '%s' AND NOT `pending` LIMIT 1",
- dbesc(NETWORK_DFRN), intval(local_user()), dbesc(normalise_link($clean_url)));
+ $r = dba::select('contact', array('id'),
+ array('network' => NETWORK_DFRN, 'uid' => local_user(), 'nurl' => normalise_link($clean_url), 'pending' => false),
+ array('limit' => 1));
if (dbm::is_result($r)) {
- $best_url = 'redir/' . $r[0]['id'];
+ $best_url = 'redir/' . $r['id'];
$sparkle = true;
+ if ($url != '') {
+ $hostname = get_app()->get_hostname();
+ if (!strstr($url, $hostname)) {
+ $best_url .= "?url=".$url;
+ } else {
+ $best_url = $url;
+ }
+ }
}
}
if (! $best_url) {
- if (strlen($item['author-link'])) {
+ if ($url != '') {
+ $best_url = $url;
+ } elseif (strlen($item['author-link'])) {
$best_url = $item['author-link'];
} else {
$best_url = $item['url'];
}
-if (! function_exists('item_photo_menu')) {
function item_photo_menu($item) {
- $ssl_state = false;
-
- if (local_user()) {
- $ssl_state = true;
- }
-
$sub_link = '';
$poke_link = '';
$contact_url = '';
}
$sparkle = false;
- $profile_link = best_link_url($item, $sparkle, $ssl_state);
+ $profile_link = best_link_url($item, $sparkle);
if ($profile_link === 'mailbox') {
$profile_link = '';
}
$cid = 0;
$network = '';
$rel = 0;
- $r = q("SELECT `id`, `network`, `rel` FROM `contact` WHERE `uid` = %d AND `nurl` = '%s' LIMIT 1",
- intval(local_user()), dbesc(normalise_link($item['author-link'])));
+ $r = dba::select('contact', array('id', 'network', 'rel'), array('uid' => local_user(), 'nurl' => normalise_link($item['author-link'])), array('limit' => 1));
if (dbm::is_result($r)) {
- $cid = $r[0]['id'];
- $network = $r[0]['network'];
- $rel = $r[0]['rel'];
+ $cid = $r['id'];
+ $network = $r['network'];
+ $rel = $r['rel'];
}
if ($sparkle) {
$menu[t("Poke")] = $poke_link;
}
- if ((($cid == 0) OR ($rel == CONTACT_IS_FOLLOWER)) AND
+ if ((($cid == 0) || ($rel == CONTACT_IS_FOLLOWER)) &&
in_array($item['network'], array(NETWORK_DFRN, NETWORK_OSTATUS, NETWORK_DIASPORA))) {
$menu[t('Connect/Follow')] = 'follow?url=' . urlencode($item['author-link']);
}
}
}
return $o;
-}}
+}
if (! function_exists('builtin_activity_puller')) {
/**
$tpl = get_markup_template('jot-header.tpl');
$a->page['htmlhead'] .= replace_macros($tpl, array(
'$newpost' => 'true',
- '$baseurl' => App::get_baseurl(true),
+ '$baseurl' => System::baseUrl(true),
'$geotag' => $geotag,
'$nickname' => $x['nickname'],
'$ispublic' => t('Visible to <strong>everybody</strong>'),
$tpl = get_markup_template('jot-end.tpl');
$a->page['end'] .= replace_macros($tpl, array(
'$newpost' => 'true',
- '$baseurl' => App::get_baseurl(true),
+ '$baseurl' => System::baseUrl(true),
'$geotag' => $geotag,
'$nickname' => $x['nickname'],
'$ispublic' => t('Visible to <strong>everybody</strong>'),
'$ptyp' => (($notes_cid) ? 'note' : 'wall'),
'$content' => $x['content'],
'$post_id' => $x['post_id'],
- '$baseurl' => App::get_baseurl(true),
+ '$baseurl' => System::baseUrl(true),
'$defloc' => $x['default_location'],
'$visitor' => $x['visitor'],
'$pvisit' => (($notes_cid) ? 'none' : $x['visitor']),