Merge branch 'dev'
This commit is contained in:
commit
dfdf11d461
@ -722,6 +722,9 @@ class Apps {
|
|||||||
);
|
);
|
||||||
|
|
||||||
if($r) {
|
if($r) {
|
||||||
|
$hookinfo = Array('uid'=>$uid,'deleted'=>$deleted,'cats'=>$cats,'apps'=>$r);
|
||||||
|
call_hooks('app_list',$hookinfo);
|
||||||
|
$r = $hookinfo['apps'];
|
||||||
for($x = 0; $x < count($r); $x ++) {
|
for($x = 0; $x < count($r); $x ++) {
|
||||||
if(! $r[$x]['app_system'])
|
if(! $r[$x]['app_system'])
|
||||||
$r[$x]['type'] = 'personal';
|
$r[$x]['type'] = 'personal';
|
||||||
|
@ -45,7 +45,7 @@ class Articles extends Controller {
|
|||||||
return $o;
|
return $o;
|
||||||
}
|
}
|
||||||
|
|
||||||
nav_set_selected(t('Articles'));
|
nav_set_selected('Articles');
|
||||||
|
|
||||||
head_add_link([
|
head_add_link([
|
||||||
'rel' => 'alternate',
|
'rel' => 'alternate',
|
||||||
|
128
Zotlabs/Module/Settings/Network.php
Normal file
128
Zotlabs/Module/Settings/Network.php
Normal file
@ -0,0 +1,128 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Zotlabs\Module\Settings;
|
||||||
|
|
||||||
|
|
||||||
|
class Network {
|
||||||
|
|
||||||
|
function post() {
|
||||||
|
check_form_security_token_redirectOnErr('/settings/network', 'settings_network');
|
||||||
|
|
||||||
|
$features = self::get_features();
|
||||||
|
|
||||||
|
foreach($features as $f) {
|
||||||
|
$k = $f[0];
|
||||||
|
if(array_key_exists("feature_$k",$_POST))
|
||||||
|
set_pconfig(local_channel(),'feature',$k, (string) $_POST["feature_$k"]);
|
||||||
|
else
|
||||||
|
set_pconfig(local_channel(),'feature', $k, '');
|
||||||
|
}
|
||||||
|
|
||||||
|
build_sync_packet();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
function get() {
|
||||||
|
|
||||||
|
$features = self::get_features();
|
||||||
|
|
||||||
|
foreach($features as $f) {
|
||||||
|
$arr[] = array('feature_' . $f[0],$f[1],((intval(feature_enabled(local_channel(),$f[0]))) ? "1" : ''),$f[2],array(t('Off'),t('On')));
|
||||||
|
}
|
||||||
|
|
||||||
|
$tpl = get_markup_template("settings_module.tpl");
|
||||||
|
|
||||||
|
$o .= replace_macros($tpl, array(
|
||||||
|
'$action_url' => 'settings/network',
|
||||||
|
'$form_security_token' => get_form_security_token("settings_network"),
|
||||||
|
'$title' => t('Activity Settings'),
|
||||||
|
'$features' => $arr,
|
||||||
|
'$baseurl' => z_root(),
|
||||||
|
'$submit' => t('Submit'),
|
||||||
|
));
|
||||||
|
|
||||||
|
return $o;
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_features() {
|
||||||
|
$arr = [
|
||||||
|
|
||||||
|
[
|
||||||
|
'archives',
|
||||||
|
t('Search by Date'),
|
||||||
|
t('Ability to select posts by date ranges'),
|
||||||
|
false,
|
||||||
|
get_config('feature_lock','archives')
|
||||||
|
],
|
||||||
|
|
||||||
|
[
|
||||||
|
'savedsearch',
|
||||||
|
t('Saved Searches'),
|
||||||
|
t('Save search terms for re-use'),
|
||||||
|
false,
|
||||||
|
get_config('feature_lock','savedsearch')
|
||||||
|
],
|
||||||
|
|
||||||
|
[
|
||||||
|
'order_tab',
|
||||||
|
t('Alternate Stream Order'),
|
||||||
|
t('Ability to order the stream by last post date, last comment date or unthreaded activities'),
|
||||||
|
false,
|
||||||
|
get_config('feature_lock','order_tab')
|
||||||
|
],
|
||||||
|
|
||||||
|
[
|
||||||
|
'name_tab',
|
||||||
|
t('Contact Filter'),
|
||||||
|
t('Ability to display only posts of a selected contact'),
|
||||||
|
false,
|
||||||
|
get_config('feature_lock','name_tab')
|
||||||
|
],
|
||||||
|
|
||||||
|
[
|
||||||
|
'forums_tab',
|
||||||
|
t('Forum Filter'),
|
||||||
|
t('Ability to display only posts of a specific forum'),
|
||||||
|
false,
|
||||||
|
get_config('feature_lock','forums_tab')
|
||||||
|
],
|
||||||
|
|
||||||
|
[
|
||||||
|
'personal_tab',
|
||||||
|
t('Personal Posts Filter'),
|
||||||
|
t('Ability to display only posts that you\'ve interacted on'),
|
||||||
|
false,
|
||||||
|
get_config('feature_lock','personal_tab')
|
||||||
|
],
|
||||||
|
|
||||||
|
[
|
||||||
|
'affinity',
|
||||||
|
t('Affinity Tool'),
|
||||||
|
t('Filter stream activity by depth of relationships'),
|
||||||
|
false,
|
||||||
|
get_config('feature_lock','affinity')
|
||||||
|
],
|
||||||
|
|
||||||
|
[
|
||||||
|
'suggest',
|
||||||
|
t('Suggest Channels'),
|
||||||
|
t('Show friend and connection suggestions'),
|
||||||
|
false,
|
||||||
|
get_config('feature_lock','suggest')
|
||||||
|
],
|
||||||
|
|
||||||
|
[
|
||||||
|
'connfilter',
|
||||||
|
t('Connection Filtering'),
|
||||||
|
t('Filter incoming posts from connections based on keywords/content'),
|
||||||
|
false,
|
||||||
|
get_config('feature_lock','connfilter')
|
||||||
|
]
|
||||||
|
|
||||||
|
];
|
||||||
|
|
||||||
|
return $arr;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
namespace Zotlabs\Web;
|
namespace Zotlabs\Web;
|
||||||
|
|
||||||
|
use Zotlabs\Extend\Route;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @brief
|
* @brief
|
||||||
*
|
*
|
||||||
@ -31,9 +33,23 @@ class SubModule {
|
|||||||
|
|
||||||
$filename = 'Zotlabs/Module/' . ucfirst(argv(0)) . '/'. ucfirst(argv($whicharg)) . '.php';
|
$filename = 'Zotlabs/Module/' . ucfirst(argv(0)) . '/'. ucfirst(argv($whicharg)) . '.php';
|
||||||
$modname = '\\Zotlabs\\Module\\' . ucfirst(argv(0)) . '\\' . ucfirst(argv($whicharg));
|
$modname = '\\Zotlabs\\Module\\' . ucfirst(argv(0)) . '\\' . ucfirst(argv($whicharg));
|
||||||
|
|
||||||
if(file_exists($filename)) {
|
if(file_exists($filename)) {
|
||||||
$this->controller = new $modname();
|
$this->controller = new $modname();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$routes = Route::get();
|
||||||
|
|
||||||
|
if($routes) {
|
||||||
|
foreach($routes as $route) {
|
||||||
|
if(is_array($route) && strtolower($route[1]) === strtolower(argv(0)) . '/' . strtolower(argv($whicharg))) {
|
||||||
|
include_once($route[0]);
|
||||||
|
if(class_exists($modname)) {
|
||||||
|
$this->controller = new $modname;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -43,6 +59,7 @@ class SubModule {
|
|||||||
* @return boolean|mixed
|
* @return boolean|mixed
|
||||||
*/
|
*/
|
||||||
function call($method) {
|
function call($method) {
|
||||||
|
|
||||||
if(! $this->controller)
|
if(! $this->controller)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
@ -1428,6 +1428,8 @@ function attach_delete($channel_id, $resource, $is_photo = 0) {
|
|||||||
|
|
||||||
if(! $r) {
|
if(! $r) {
|
||||||
attach_drop_photo($channel_id,$resource);
|
attach_drop_photo($channel_id,$resource);
|
||||||
|
$arr = ['channel_id' => $channel_id, 'resource' => $resource, 'is_photo'=>$is_photo];
|
||||||
|
call_hooks("attach_delete",$arr);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1486,6 +1488,9 @@ function attach_delete($channel_id, $resource, $is_photo = 0) {
|
|||||||
intval($channel_id)
|
intval($channel_id)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
$arr = ['channel_id' => $channel_id, 'resource' => $resource, 'is_photo'=>$is_photo];
|
||||||
|
call_hooks("attach_delete",$arr);
|
||||||
|
|
||||||
file_activity($channel_id, $object, $object['allow_cid'], $object['allow_gid'], $object['deny_cid'], $object['deny_gid'], 'update', true);
|
file_activity($channel_id, $object, $object['allow_cid'], $object['allow_gid'], $object['deny_cid'], $object['deny_gid'], 'update', true);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
require_once('include/crypto.php');
|
require_once('include/crypto.php');
|
||||||
require_once('include/attach.php');
|
require_once('include/attach.php');
|
||||||
|
require_once('include/msglib.php');
|
||||||
|
|
||||||
|
|
||||||
function mail_prepare_binary($item) {
|
function mail_prepare_binary($item) {
|
||||||
@ -498,11 +499,8 @@ function private_messages_drop($channel_id, $messageitem_id, $drop_conversation
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
xchan_mail_query($x[0]);
|
xchan_mail_query($x[0]);
|
||||||
$x[0]['mail_deleted'] = true;
|
$x[0]['mail_deleted'] = true;
|
||||||
$r = q("DELETE FROM mail WHERE id = %d AND channel_id = %d",
|
msg_drop($messageitem_id, $channel_id, $x[0]['conv_guid']);
|
||||||
intval($messageitem_id),
|
|
||||||
intval($channel_id)
|
|
||||||
);
|
|
||||||
build_sync_packet($channel_id,array('mail' => array(encode_mail($x,true))));
|
build_sync_packet($channel_id,array('mail' => array(encode_mail($x,true))));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
28
include/msglib.php
Normal file
28
include/msglib.php
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/* Common private message processing functions */
|
||||||
|
|
||||||
|
function msg_drop($message_id, $channel_id, $conv_guid) {
|
||||||
|
|
||||||
|
// Delete message
|
||||||
|
$r = q("DELETE FROM mail WHERE id = %d AND channel_id = %d",
|
||||||
|
intval($message_id),
|
||||||
|
intval($channel_id)
|
||||||
|
);
|
||||||
|
|
||||||
|
// Get new first message...
|
||||||
|
$r = q("SELECT mid, parent_mid FROM mail WHERE conv_guid = '%s' AND channel_id = %d ORDER BY id ASC LIMIT 1",
|
||||||
|
dbesc($conv_guid),
|
||||||
|
intval($channel_id)
|
||||||
|
);
|
||||||
|
// ...and if wasn't first before...
|
||||||
|
if ($r[0]['mid'] != $r[0]['parent_mid']) {
|
||||||
|
// ...refer whole thread to it
|
||||||
|
q("UPDATE mail SET parent_mid = '%s', mail_isreply = abs(mail_isreply - 1) WHERE conv_guid = '%s' AND channel_id = %d",
|
||||||
|
dbesc($r[0]['mid']),
|
||||||
|
dbesc($conv_guid),
|
||||||
|
intval($channel_id)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -37,7 +37,13 @@ function replace_macros($s, $r) {
|
|||||||
call_hooks('replace_macros', $arr);
|
call_hooks('replace_macros', $arr);
|
||||||
|
|
||||||
$t = App::template_engine();
|
$t = App::template_engine();
|
||||||
$output = $t->replace_macros($arr['template'], $arr['params']);
|
|
||||||
|
try {
|
||||||
|
$output = $t->replace_macros($arr['template'], $arr['params']);
|
||||||
|
} catch (Exception $e) {
|
||||||
|
logger("Unable to render template: ",$e->getMessage());
|
||||||
|
$output = "<h3>ERROR: there was an error creating the output.</h3>";
|
||||||
|
}
|
||||||
|
|
||||||
return $output;
|
return $output;
|
||||||
}
|
}
|
||||||
|
@ -12,6 +12,7 @@ require_once('include/crypto.php');
|
|||||||
require_once('include/items.php');
|
require_once('include/items.php');
|
||||||
require_once('include/queue_fn.php');
|
require_once('include/queue_fn.php');
|
||||||
require_once('include/perm_upgrade.php');
|
require_once('include/perm_upgrade.php');
|
||||||
|
require_once('include/msglib.php');
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -2331,16 +2332,13 @@ function process_mail_delivery($sender, $arr, $deliveries) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$r = q("select id from mail where mid = '%s' and channel_id = %d limit 1",
|
$r = q("select id, conv_guid from mail where mid = '%s' and channel_id = %d limit 1",
|
||||||
dbesc($arr['mid']),
|
dbesc($arr['mid']),
|
||||||
intval($channel['channel_id'])
|
intval($channel['channel_id'])
|
||||||
);
|
);
|
||||||
if($r) {
|
if($r) {
|
||||||
if(intval($arr['mail_recalled'])) {
|
if(intval($arr['mail_recalled'])) {
|
||||||
$x = q("delete from mail where id = %d and channel_id = %d",
|
msg_drop($r[0]['id'], $channel['channel_id'], $r[0]['conv_guid']);
|
||||||
intval($r[0]['id']),
|
|
||||||
intval($channel['channel_id'])
|
|
||||||
);
|
|
||||||
$DR->update('mail recalled');
|
$DR->update('mail recalled');
|
||||||
$result[] = $DR->get();
|
$result[] = $DR->get();
|
||||||
logger('mail_recalled');
|
logger('mail_recalled');
|
||||||
|
15
view/tpl/settings_module.tpl
Executable file
15
view/tpl/settings_module.tpl
Executable file
@ -0,0 +1,15 @@
|
|||||||
|
<div class="generic-content-wrapper">
|
||||||
|
<div class="section-title-wrapper">
|
||||||
|
<h2>{{$title}}</h2>
|
||||||
|
</div>
|
||||||
|
<div class="section-content-wrapper">
|
||||||
|
<form action="{{$action_url}}" method="post" autocomplete="off">
|
||||||
|
<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
|
||||||
|
{{foreach $features as $feature}}
|
||||||
|
{{include file="field_checkbox.tpl" field=$feature}}
|
||||||
|
{{/foreach}}
|
||||||
|
<div class="settings-submit-wrapper" >
|
||||||
|
<button type="submit" name="submit" class="btn btn-primary">{{$submit}}</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
Reference in New Issue
Block a user