diff options
Diffstat (limited to 'mod')
-rw-r--r-- | mod/cloud.php | 54 | ||||
-rw-r--r-- | mod/connedit.php | 2 | ||||
-rw-r--r-- | mod/editblock.php | 4 | ||||
-rw-r--r-- | mod/editlayout.php | 4 | ||||
-rw-r--r-- | mod/editwebpage.php | 4 | ||||
-rwxr-xr-x | mod/events.php | 4 | ||||
-rw-r--r-- | mod/group.php | 2 | ||||
-rw-r--r-- | mod/home.php | 2 | ||||
-rw-r--r-- | mod/item.php | 27 | ||||
-rw-r--r-- | mod/mail.php | 17 | ||||
-rw-r--r-- | mod/ping.php | 122 | ||||
-rw-r--r-- | mod/profiles.php | 4 | ||||
-rw-r--r-- | mod/rpost.php | 4 | ||||
-rw-r--r-- | mod/settings.php | 4 | ||||
-rw-r--r-- | mod/tagger.php | 4 |
15 files changed, 153 insertions, 105 deletions
diff --git a/mod/cloud.php b/mod/cloud.php index 51cedd2fd..25773066a 100644 --- a/mod/cloud.php +++ b/mod/cloud.php @@ -1,13 +1,16 @@ <?php +/** + * @file mod/cloud.php + * @brief Initialize Red Matrix's cloud (SabreDAV) + * + */ use Sabre\DAV; - - require_once('vendor/autoload.php'); - + require_once('vendor/autoload.php'); // workaround for HTTP-auth in CGI mode if(x($_SERVER,'REDIRECT_REMOTE_USER')) { - $userpass = base64_decode(substr($_SERVER["REDIRECT_REMOTE_USER"],6)) ; + $userpass = base64_decode(substr($_SERVER["REDIRECT_REMOTE_USER"], 6)) ; if(strlen($userpass)) { list($name, $password) = explode(':', $userpass); $_SERVER['PHP_AUTH_USER'] = $name; @@ -16,18 +19,19 @@ } if(x($_SERVER,'HTTP_AUTHORIZATION')) { - $userpass = base64_decode(substr($_SERVER["HTTP_AUTHORIZATION"],6)) ; + $userpass = base64_decode(substr($_SERVER["HTTP_AUTHORIZATION"], 6)) ; if(strlen($userpass)) { - list($name, $password) = explode(':', $userpass); + list($name, $password) = explode(':', $userpass); $_SERVER['PHP_AUTH_USER'] = $name; $_SERVER['PHP_AUTH_PW'] = $password; } } - - - - +/** + * @brief Fires up the SabreDAV server. + * + * @param App &$a + */ function cloud_init(&$a) { require_once('include/reddav.php'); @@ -42,13 +46,10 @@ function cloud_init(&$a) { $profile = 0; $channel = $a->get_channel(); - $a->page['htmlhead'] .= '<link rel="alternate" type="application/atom+xml" href="' . $a->get_baseurl() . '/feed/' . $which .'" />' . "\r\n" ; + $a->page['htmlhead'] .= '<link rel="alternate" type="application/atom+xml" href="' . $a->get_baseurl() . '/feed/' . $which . '" />' . "\r\n" ; if($which) - profile_load($a,$which,$profile); - - - + profile_load($a, $which, $profile); $auth = new RedBasicAuth(); @@ -64,15 +65,13 @@ function cloud_init(&$a) { $auth->channel_account_id = $channel['channel_account_id']; if($channel['channel_timezone']) $auth->timezone = $channel['channel_timezone']; - } + } $auth->observer = $ob_hash; - } + } if($_GET['davguest']) $_SESSION['davguest'] = true; - - $_SERVER['QUERY_STRING'] = str_replace(array('?f=','&f='),array('',''),$_SERVER['QUERY_STRING']); $_SERVER['QUERY_STRING'] = strip_zids($_SERVER['QUERY_STRING']); $_SERVER['QUERY_STRING'] = preg_replace('/[\?&]davguest=(.*?)([\?&]|$)/ism','',$_SERVER['QUERY_STRING']); @@ -81,8 +80,11 @@ function cloud_init(&$a) { $_SERVER['REQUEST_URI'] = strip_zids($_SERVER['REQUEST_URI']); $_SERVER['REQUEST_URI'] = preg_replace('/[\?&]davguest=(.*?)([\?&]|$)/ism','',$_SERVER['REQUEST_URI']); - $rootDirectory = new RedDirectory('/',$auth); + $rootDirectory = new RedDirectory('/', $auth); + + // A SabreDAV server-object $server = new DAV\Server($rootDirectory); + // prevent overwriting changes each other with a lock backend $lockBackend = new DAV\Locks\Backend\File('store/[data]/locks'); $lockPlugin = new DAV\Locks\Plugin($lockBackend); @@ -95,11 +97,11 @@ function cloud_init(&$a) { // In order to avoid prompting for passwords for viewing a DIRECTORY, add the URL query parameter 'davguest=1' $isapublic_file = false; - $davguest = ((x($_SESSION,'davguest')) ? true : false); + $davguest = ((x($_SESSION, 'davguest')) ? true : false); if((! $auth->observer) && ($_SERVER['REQUEST_METHOD'] === 'GET')) { try { - $x = RedFileData('/' . $a->cmd,$auth); + $x = RedFileData('/' . $a->cmd, $auth); if($x instanceof RedFile) $isapublic_file = true; } @@ -113,21 +115,19 @@ function cloud_init(&$a) { $auth->Authenticate($server, t('Red Matrix - Guests: Username: {your email address}, Password: +++')); } catch ( Exception $e) { - logger('mod_cloud: auth exception' . $e->getMessage()); - http_status_exit($e->getHTTPCode(),$e->getMessage()); + logger('mod_cloud: auth exception' . $e->getMessage()); + http_status_exit($e->getHTTPCode(), $e->getMessage()); } } -// $browser = new DAV\Browser\Plugin(); + // provide a directory view for the cloud in Red Matrix $browser = new RedBrowser($auth); $auth->setBrowserPlugin($browser); - $server->addPlugin($browser); - // All we need to do now, is to fire up the server $server->exec(); diff --git a/mod/connedit.php b/mod/connedit.php index 61bb62766..b9f0299e2 100644 --- a/mod/connedit.php +++ b/mod/connedit.php @@ -24,7 +24,7 @@ function connedit_init(&$a) { if(! local_user()) return; - if((argc() == 2) && intval(argv(1))) { + if((argc() >= 2) && intval(argv(1))) { $r = q("SELECT abook.*, xchan.* FROM abook left join xchan on abook_xchan = xchan_hash WHERE abook_channel = %d and abook_id = %d LIMIT 1", diff --git a/mod/editblock.php b/mod/editblock.php index 507050eb0..536ddd7d2 100644 --- a/mod/editblock.php +++ b/mod/editblock.php @@ -58,8 +58,8 @@ function editblock_content(&$a) { $plaintext = true; // You may or may not be a local user. - if(local_user() && feature_enabled(local_user(),'richtext')) - $plaintext = false; +// if(local_user() && feature_enabled(local_user(),'richtext')) +// $plaintext = false; $mimeselect = ''; $mimetype = $itm[0]['mimetype']; diff --git a/mod/editlayout.php b/mod/editlayout.php index da681cf34..1e8a6e990 100644 --- a/mod/editlayout.php +++ b/mod/editlayout.php @@ -65,8 +65,8 @@ function editlayout_content(&$a) { $plaintext = true; // You may or may not be a local user. This won't work, - if(feature_enabled(local_user(),'richtext')) - $plaintext = false; +// if(feature_enabled(local_user(),'richtext')) +// $plaintext = false; $o .= replace_macros(get_markup_template('edpost_head.tpl'), array( '$title' => t('Edit Layout') diff --git a/mod/editwebpage.php b/mod/editwebpage.php index b8b7a465c..9fe76ba98 100644 --- a/mod/editwebpage.php +++ b/mod/editwebpage.php @@ -73,8 +73,8 @@ function editwebpage_content(&$a) { $plaintext = true; - if(feature_enabled($itm[0]['uid'],'richtext')) - $plaintext = false; +// if(feature_enabled($itm[0]['uid'],'richtext')) +// $plaintext = false; $mimetype = $itm[0]['mimetype']; diff --git a/mod/events.php b/mod/events.php index 911b6c891..7c4d6c191 100755 --- a/mod/events.php +++ b/mod/events.php @@ -161,8 +161,8 @@ function events_content(&$a) { $plaintext = true; - if(feature_enabled(local_user(),'richtext')) - $plaintext = false; +// if(feature_enabled(local_user(),'richtext')) +// $plaintext = false; diff --git a/mod/group.php b/mod/group.php index 15e4ff2a3..d9bbec78b 100644 --- a/mod/group.php +++ b/mod/group.php @@ -117,7 +117,7 @@ function group_content(&$a) { check_form_security_token_ForbiddenOnErr('group_member_change', 't'); - $r = q("SELECT abook_xchan from abook where abook_xchan = '%s' and abook_channel = %d and not (xchan_flags & %d) and not (abook_flags & %d) and not (abook_flags & %d) limit 1", + $r = q("SELECT abook_xchan from abook left join xchan on abook_xchan = xchan_hash where abook_xchan = '%s' and abook_channel = %d and not (xchan_flags & %d) and not (abook_flags & %d) and not (abook_flags & %d) limit 1", dbesc(argv(2)), intval(local_user()), intval(XCHAN_FLAGS_DELETED), diff --git a/mod/home.php b/mod/home.php index 6f7a0b5d7..bc352976d 100644 --- a/mod/home.php +++ b/mod/home.php @@ -16,6 +16,8 @@ function home_init(&$a) { if(! $dest) $dest = get_pconfig(local_user(),'system','startpage'); if(! $dest) + $dest = get_config('system','startpage'); + if(! $dest) $dest = z_root() . '/apps'; goaway($dest); diff --git a/mod/item.php b/mod/item.php index 5ddafb709..c346389e7 100644 --- a/mod/item.php +++ b/mod/item.php @@ -375,7 +375,7 @@ function item_post(&$a) { killme(); } } - + $expires = '0000-00-00 00:00:00'; @@ -422,6 +422,13 @@ function item_post(&$a) { if($mimetype === 'text/bbcode') { + if(local_user() && local_user() == $profile_uid && get_pconfig(local_user(),'editor','use_markdown')) { + require_once('include/bb2diaspora.php'); + $body = diaspora2bb($body,true); + } + + + // BBCODE alert: the following functions assume bbcode input // and will require alternatives for alternative content-types (text/html, text/markdown, text/plain, etc.) // we may need virtual or template classes to implement the possible alternatives @@ -430,10 +437,14 @@ function item_post(&$a) { // First figure out if it's a status post that would've been // created using tinymce. Otherwise leave it alone. - $plaintext = ((feature_enabled($profile_uid,'richtext')) ? false : true); - if((! $parent) && (! $api_source) && (! $plaintext)) { - $body = fix_mce_lf($body); - } + $plaintext = true; + +// $plaintext = ((feature_enabled($profile_uid,'richtext')) ? false : true); +// if((! $parent) && (! $api_source) && (! $plaintext)) { +// $body = fix_mce_lf($body); +// } + + // If we're sending a private top-level message with a single @-taggable channel as a recipient, @-tag it, if our pconfig is set. @@ -781,7 +792,11 @@ function item_post(&$a) { logger('mod_item: saved item ' . $post_id); if($parent) { - if($datarray['owner_xchan'] != $datarray['author_xchan']) { + + // only send comment notification if this is a wall-to-wall comment, + // otherwise it will happen during delivery + + if(($datarray['owner_xchan'] != $datarray['author_xchan']) && ($parent_item['item_flags'] & ITEM_WALL)) { notification(array( 'type' => NOTIFY_COMMENT, 'from_xchan' => $datarray['author_xchan'], diff --git a/mod/mail.php b/mod/mail.php index 9c84872ef..c3ce47b5a 100644 --- a/mod/mail.php +++ b/mod/mail.php @@ -76,9 +76,9 @@ function mail_post(&$a) { } } - if(feature_enabled(local_user(),'richtext')) { - $body = fix_mce_lf($body); - } +// if(feature_enabled(local_user(),'richtext')) { +// $body = fix_mce_lf($body); +// } if(! $recipient) { notice('No recipient found.'); @@ -156,11 +156,7 @@ function mail_content(&$a) { $o .= $header; - $plaintext = false; - if(intval(get_pconfig(local_user(),'system','plaintext'))) - $plaintext = true; - if(! feature_enabled(local_user(),'richtext')) - $plaintext = true; + $plaintext = true; $tpl = get_markup_template('msg-header.tpl'); @@ -240,8 +236,9 @@ function mail_content(&$a) { $o .= $header; $plaintext = true; - if( local_user() && feature_enabled(local_user(),'richtext') ) - $plaintext = false; + +// if( local_user() && feature_enabled(local_user(),'richtext') ) +// $plaintext = false; $messages = private_messages_fetch_conversation(local_user(), argv(1), true); diff --git a/mod/ping.php b/mod/ping.php index ac12e2fc0..8a498d543 100644 --- a/mod/ping.php +++ b/mod/ping.php @@ -1,9 +1,22 @@ <?php - +/** + * @file mod/ping.php + * + */ require_once('include/bbcode.php'); require_once('include/notify.php'); +/** + * @brief do several updates when pinged. + * + * This function does several tasks. Whenever called it checks for new messages, + * introductions, notifications, etc. and returns a json with the results. + * + * @param App &$a + * @result JSON + */ + function ping_init(&$a) { $result = array(); @@ -28,15 +41,31 @@ function ping_init(&$a) { header("content-type: application/json"); + /** + * If you have several windows open to this site and switch to a different channel + * in one of them, the others may get into a confused state showing you a page or options + * on that page which were only valid under the old identity. You session has changed. + * Therefore we send a notification of this fact back to the browser where it is picked up + * in javascript and which reloads the page it is on so that it is valid under the context + * of the now current channel. + */ + $result['invalid'] = ((intval($_GET['uid'])) && (intval($_GET['uid']) != local_user()) ? 1 : 0); - if(x($_SESSION,'sysmsg')){ + /** + * Send all system messages (alerts) to the browser. + * Some are marked as informational and some represent + * errors or serious notifications. These typically + * will popup on the current page (no matter what page it is) + */ + + if(x($_SESSION, 'sysmsg')){ foreach ($_SESSION['sysmsg'] as $m){ $result['notice'][] = array('message' => $m); } unset($_SESSION['sysmsg']); } - if(x($_SESSION,'sysmsg_info')){ + if(x($_SESSION, 'sysmsg_info')){ foreach ($_SESSION['sysmsg_info'] as $m){ $result['info'][] = array('message' => $m); } @@ -48,6 +77,9 @@ function ping_init(&$a) { killme(); } + /** + * Update chat presence indication (if applicable) + */ if(get_observer_hash() && (! $result['invalid'])) { $r = q("select cp_id, cp_room from chatpresence where cp_xchan = '%s' and cp_client = '%s' and cp_room = 0 limit 1", @@ -73,6 +105,11 @@ function ping_init(&$a) { } } + /** + * Chatpresence continued... if somebody hasn't pinged recently, they've most likely left the page + * and shouldn't count as online anymore. We allow an expection for bots. + */ + q("delete from chatpresence where cp_last < UTC_TIMESTAMP() - INTERVAL 3 MINUTE and cp_client != 'auto' "); if((! local_user()) || ($result['invalid'])) { @@ -80,8 +117,17 @@ function ping_init(&$a) { killme(); } - if(x($_REQUEST,'markRead') && local_user()) { + /** + * Everything following is only permitted under the context of a locally authenticated site member. + */ + + /** + * Handle "mark all xyz notifications read" requests. + */ + + // mark all items read + if(x($_REQUEST, 'markRead') && local_user()) { switch($_REQUEST['markRead']) { case 'network': $r = q("update item set item_flags = ( item_flags ^ %d ) where (item_flags & %d) and uid = %d", @@ -90,7 +136,6 @@ function ping_init(&$a) { intval(local_user()) ); break; - case 'home': $r = q("update item set item_flags = ( item_flags ^ %d ) where (item_flags & %d) and (item_flags & %d) and uid = %d", intval(ITEM_UNSEEN), @@ -111,19 +156,23 @@ function ping_init(&$a) { intval(local_user()) ); break; - case 'notify': $r = q("update notify set seen = 1 where uid = %d", intval(local_user()) ); break; - default: break; } } + + /** + * URL ping/something will return detail for "something", e.g. a json list with which to populate a notification + * dropdown menu. + */ + if(argc() > 1 && argv(1) === 'notify') { $t = q("select count(*) as total from notify where uid = %d and seen = 0", intval(local_user()) @@ -163,12 +212,9 @@ function ping_init(&$a) { echo json_encode(array('notify' => $notifs)); killme(); - } - if(argc() > 1 && argv(1) === 'messages') { - $channel = $a->get_channel(); $t = q("select mail.*, xchan.* from mail left join xchan on xchan_hash = from_xchan where channel_id = %d and not ( mail_flags & %d ) and not (mail_flags & %d ) @@ -181,7 +227,6 @@ function ping_init(&$a) { if($t) { foreach($t as $zz) { -// $msg = sprintf( t('sent you a private message.'), $zz['xchan_name']); $notifs[] = array( 'notify_link' => $a->get_baseurl() . '/mail/' . $zz['id'], 'name' => $zz['xchan_name'], @@ -196,14 +241,9 @@ function ping_init(&$a) { echo json_encode(array('notify' => $notifs)); killme(); - } - - - if(argc() > 1 && (argv(1) === 'network' || argv(1) === 'home')) { - $result = array(); $r = q("SELECT * FROM item @@ -220,15 +260,13 @@ function ping_init(&$a) { continue; $result[] = format_notification($item); } - } - logger('ping: ' . print_r($result,true)); + } + logger('ping (network||home): ' . print_r($result, true), LOGGER_DATA); echo json_encode(array('notify' => $result)); killme(); - } if(argc() > 1 && (argv(1) === 'intros')) { - $result = array(); $r = q("SELECT abook.*, xchan.* FROM abook left join xchan on abook_xchan = xchan_hash @@ -250,15 +288,13 @@ function ping_init(&$a) { 'message' => t('added your channel') ); } - } - logger('ping: ' . print_r($result,true)); + } + logger('ping (intros): ' . print_r($result, true), LOGGER_DATA); echo json_encode(array('notify' => $result)); killme(); - } if(argc() > 1 && (argv(1) === 'all_events')) { - $bd_format = t('g A l F d') ; // 8 AM Friday January 18 $result = array(); @@ -267,22 +303,21 @@ function ping_init(&$a) { WHERE `event`.`uid` = %d AND start < '%s' AND start > '%s' and `ignore` = 0 ORDER BY `start` DESC ", intval(local_user()), - dbesc(datetime_convert('UTC',date_default_timezone_get(),'now + 7 days')), - dbesc(datetime_convert('UTC',date_default_timezone_get(),'now - 1 days')) + dbesc(datetime_convert('UTC', date_default_timezone_get(), 'now + 7 days')), + dbesc(datetime_convert('UTC', date_default_timezone_get(), 'now - 1 days')) ); if($r) { foreach($r as $rr) { if($rr['adjust']) - $md = datetime_convert('UTC',date_default_timezone_get(),$rr['start'],'Y/m'); + $md = datetime_convert('UTC', date_default_timezone_get(), $rr['start'], 'Y/m'); else - $md = datetime_convert('UTC','UTC',$rr['start'],'Y/m'); + $md = datetime_convert('UTC', 'UTC', $rr['start'], 'Y/m'); - $strt = datetime_convert('UTC',$rr['convert'] ? date_default_timezone_get() : 'UTC',$rr['start']); - $today = ((substr($strt,0,10) === datetime_convert('UTC',date_default_timezone_get(),'now','Y-m-d')) ? true : false); + $strt = datetime_convert('UTC', (($rr['adjust']) ? date_default_timezone_get() : 'UTC'), $rr['start']); + $today = ((substr($strt, 0, 10) === datetime_convert('UTC', date_default_timezone_get(), 'now', 'Y-m-d')) ? true : false); - $when = day_translate(datetime_convert('UTC', $rr['adjust'] ? date_default_timezone_get() : 'UTC', $rr['start'], $bd_format)) . (($today) ? ' ' . t('[today]') : ''); - + $when = day_translate(datetime_convert('UTC', (($rr['adjust']) ? date_default_timezone_get() : 'UTC'), $rr['start'], $bd_format)) . (($today) ? ' ' . t('[today]') : ''); $result[] = array( 'notify_link' => $a->get_baseurl() . '/events', // FIXME this takes you to an edit page and it may not be yours, we really want to just view the single event --> '/events/event/' . $rr['event_hash'], @@ -294,15 +329,17 @@ function ping_init(&$a) { 'message' => t('posted an event') ); } - } - logger('ping: ' . print_r($result,true)); + } + logger('ping (all_events): ' . print_r($result, true), LOGGER_DATA); echo json_encode(array('notify' => $result)); killme(); - } - // Normal ping - just the counts + + /** + * Normal ping - just the counts, no detail + */ $t = q("select count(*) as total from notify where uid = %d and seen = 0", intval(local_user()) @@ -310,7 +347,6 @@ function ping_init(&$a) { if($t) $result['notify'] = intval($t[0]['total']); - $t1 = dba_timer(); $r = q("SELECT id, item_restrict, item_flags FROM item @@ -321,7 +357,6 @@ function ping_init(&$a) { ); if(count($r)) { - $arr = array('items' => $r); call_hooks('network_ping', $arr); @@ -333,7 +368,6 @@ function ping_init(&$a) { } } - $t2 = dba_timer(); $intr = q("select count(abook_id) as total from abook where (abook_flags & %d) and abook_channel = %d", @@ -372,15 +406,15 @@ function ping_init(&$a) { WHERE `event`.`uid` = %d AND start < '%s' AND start > '%s' and `ignore` = 0 ORDER BY `start` ASC ", intval(local_user()), - dbesc(datetime_convert('UTC',date_default_timezone_get(),'now + 7 days')), - dbesc(datetime_convert('UTC',date_default_timezone_get(),'now - 1 days')) + dbesc(datetime_convert('UTC', date_default_timezone_get(), 'now + 7 days')), + dbesc(datetime_convert('UTC', date_default_timezone_get(), 'now - 1 days')) ); if($events) { $result['all_events'] = count($events); if($result['all_events']) { - $str_now = datetime_convert('UTC',$a->timezone,'now','Y-m-d'); + $str_now = datetime_convert('UTC', date_default_timezone_get(), 'now', 'Y-m-d'); foreach($events as $x) { $bd = false; if($x['type'] === 'birthday') { @@ -390,7 +424,7 @@ function ping_init(&$a) { else { $result['events'] ++; } - if(datetime_convert('UTC',((intval($x['adjust'])) ? $a->timezone : 'UTC'), $x['start'],'Y-m-d') === $str_now) { + if(datetime_convert('UTC', ((intval($x['adjust'])) ? date_default_timezone_get() : 'UTC'), $x['start'], 'Y-m-d') === $str_now) { $result['all_events_today'] ++; if($bd) $result['birthdays_today'] ++; @@ -409,6 +443,4 @@ function ping_init(&$a) { echo $x; killme(); - } - diff --git a/mod/profiles.php b/mod/profiles.php index 2e91db600..f6392d4ab 100644 --- a/mod/profiles.php +++ b/mod/profiles.php @@ -477,8 +477,8 @@ function profiles_content(&$a) { $editselect = 'none'; - if(feature_enabled(local_user(),'richtext')) - $editselect = 'textareas'; +// if(feature_enabled(local_user(),'richtext')) +// $editselect = 'textareas'; $a->page['htmlhead'] .= replace_macros(get_markup_template('profed_head.tpl'), array( '$baseurl' => $a->get_baseurl(true), diff --git a/mod/rpost.php b/mod/rpost.php index 309208870..80406ebef 100644 --- a/mod/rpost.php +++ b/mod/rpost.php @@ -83,8 +83,8 @@ function rpost_content(&$a) { } $plaintext = true; - if(feature_enabled(local_user(),'richtext')) - $plaintext = false; +// if(feature_enabled(local_user(),'richtext')) +// $plaintext = false; if(array_key_exists('type', $_REQUEST) && $_REQUEST['type'] === 'html') { require_once('include/html2bbcode.php'); diff --git a/mod/settings.php b/mod/settings.php index c72fdc8c4..7a63e5fc4 100644 --- a/mod/settings.php +++ b/mod/settings.php @@ -994,7 +994,9 @@ function settings_content(&$a) { '$hint' => t('Please enable expert mode (in <a href="settings/features">Settings > Additional features</a>) to adjust!'), '$lbl_misc' => t('Miscellaneous Settings'), '$menus' => $menu, - '$menu_desc' => t('Personal menu to display in your channel pages'), + '$menu_desc' => t('Personal menu to display in your channel pages'), + '$removeme' => t('Remove this channel'), + '$permanent' => t('Warning: This action is permanent and cannot be reversed.'), )); call_hooks('settings_form',$o); diff --git a/mod/tagger.php b/mod/tagger.php index 3d8043f68..bfda114d2 100644 --- a/mod/tagger.php +++ b/mod/tagger.php @@ -98,9 +98,9 @@ function tagger_content(&$a) { $bodyverb = t('%1$s tagged %2$s\'s %3$s with %4$s'); // saving here for reference - // also check out x22d5 and x0d6b and x0db8 and x24d0 and xff20 !!! + // also check out x22d5 and x2317 and x0d6b and x0db8 and x24d0 and xff20 !!! - $termlink = html_entity_decode('⌗') . '[zrl=' . $a->get_baseurl() . '/search?tag=' . urlencode($term) . ']'. $term . '[/zrl]'; + $termlink = html_entity_decode('⋕') . '[zrl=' . $a->get_baseurl() . '/search?tag=' . urlencode($term) . ']'. $term . '[/zrl]'; $channel = $a->get_channel(); |