This commit is contained in:
Mario 2018-06-17 17:00:17 +02:00
commit 28043726e6
29 changed files with 116 additions and 73 deletions

View File

@ -164,7 +164,7 @@ Make the directory for apache and change diretory to it
Clone hubzilla from git ("git pull" will update it later)
git clone https://github.com/redmatrix/hubzilla html
git clone https://framagit.org/hubzilla/core html
Change to the install script

View File

@ -572,7 +572,7 @@ function check_https {
function install_hubzilla {
print_info "installing hubzilla addons..."
cd /var/www/html/
util/add_addon_repo https://github.com/redmatrix/hubzilla-addons.git hzaddons
util/add_addon_repo https://framagit.org/hubzilla/addons.git hzaddons
mkdir -p "store/[data]/smarty3"
chmod -R 777 store
touch .htconfig.php

View File

@ -107,7 +107,7 @@ class Share {
}
public function bbcode() {
$bb = NULL_STR;
$bb = EMPTY_STR;
if(! $this->item)
return $bb;
@ -140,4 +140,4 @@ class Share {
}
}
}

View File

@ -16,7 +16,13 @@ class Security {
$block_public = ((x($_POST,'block_public')) ? True : False);
set_config('system','block_public',$block_public);
$cloud_noroot = ((x($_POST,'cloud_noroot')) ? 1 : 0);
set_config('system','cloud_disable_siteroot',1 - $cloud_noroot);
$cloud_disksize = ((x($_POST,'cloud_disksize')) ? 1 : 0);
set_config('system','cloud_report_disksize',$cloud_disksize);
$ws = $this->trim_array_elems(explode("\n",$_POST['whitelisted_sites']));
set_config('system','whitelisted_sites',$ws);
@ -87,6 +93,8 @@ class Security {
'$page' => t('Security'),
'$form_security_token' => get_form_security_token('admin_security'),
'$block_public' => array('block_public', t("Block public"), get_config('system','block_public'), t("Check to block public access to all otherwise public personal pages on this site unless you are currently authenticated.")),
'$cloud_noroot' => [ 'cloud_noroot', t('Provide a cloud root directory'), 1 - intval(get_config('system','cloud_disable_siteroot')), t('The cloud root directory lists all channel names which provide public files') ],
'$cloud_disksize' => [ 'cloud_disksize', t('Show total disk space available to cloud uploads'), intval(get_config('system','cloud_report_disksize')), '' ],
'$transport_security' => array('transport_security', t('Set "Transport Security" HTTP header'),intval(get_config('system','transport_security_header')),''),
'$content_security' => array('content_security', t('Set "Content Security Policy" HTTP header'),intval(get_config('system','content_security_policy')),''),
'$allowed_email' => array('allowed_email', t("Allowed email domains"), get_config('system','allowed_email'), t("Comma separated list of domains which are allowed in email addresses for registrations to this site. Wildcards are accepted. Empty to allow any domains")),

View File

@ -344,8 +344,8 @@ class Channel extends \Zotlabs\Web\Controller {
'$uid' => ((\App::$profile['profile_uid']) ? \App::$profile['profile_uid'] : '0'),
'$gid' => '0',
'$cid' => '0',
'$cmin' => '0',
'$cmax' => '0',
'$cmin' => '(-1)',
'$cmax' => '(-1)',
'$star' => '0',
'$liked' => '0',
'$conv' => '0',

View File

@ -35,11 +35,20 @@ class Cloud extends \Zotlabs\Web\Controller {
if (argc() > 1)
$which = argv(1);
if (argc() < 2 && intval(get_config('system','cloud_disable_siteroot'))) {
notice( t('Permission denied.') . EOL);
construct_page();
killme();
}
$profile = 0;
if ($which)
profile_load( $which, $profile);
$auth = new \Zotlabs\Storage\BasicAuth();
$ob_hash = get_observer_hash();

View File

@ -213,8 +213,8 @@ class Display extends \Zotlabs\Web\Controller {
'$uid' => '0',
'$gid' => '0',
'$cid' => '0',
'$cmin' => '0',
'$cmax' => '99',
'$cmin' => '(-1)',
'$cmax' => '(-1)',
'$star' => '0',
'$liked' => '0',
'$conv' => '0',

View File

@ -9,7 +9,7 @@ require_once('include/conversation.php');
class Home extends \Zotlabs\Web\Controller {
function init() {
$ret = array();
call_hooks('home_init',$ret);

View File

@ -113,7 +113,7 @@ class Invite extends \Zotlabs\Web\Controller {
$invite_code = autoname(8) . rand(1000,9999);
$nmessage = str_replace('$invite_code',$invite_code,$message);
$r = q("INSERT INTO register (hash,created) VALUES ('%s', '%s') ",
$r = q("INSERT INTO register (hash,created,uid,password,lang) VALUES ('%s', '%s',0,'','') ",
dbesc($invite_code),
dbesc(datetime_convert())
);

View File

@ -123,8 +123,8 @@ class Network extends \Zotlabs\Web\Controller {
$def_acl = array('allow_gid' => '<' . $r[0]['hash'] . '>');
}
$default_cmin = ((feature_enabled(local_channel(),'affinity')) ? get_pconfig(local_channel(),'affinity','cmin',0) : 0);
$default_cmax = ((feature_enabled(local_channel(),'affinity')) ? get_pconfig(local_channel(),'affinity','cmax',99) : 99);
$default_cmin = ((feature_enabled(local_channel(),'affinity')) ? get_pconfig(local_channel(),'affinity','cmin',0) : (-1));
$default_cmax = ((feature_enabled(local_channel(),'affinity')) ? get_pconfig(local_channel(),'affinity','cmax',99) : (-1));
$cid = ((x($_GET,'cid')) ? intval($_GET['cid']) : 0);
$star = ((x($_GET,'star')) ? intval($_GET['star']) : 0);
@ -140,6 +140,7 @@ class Network extends \Zotlabs\Web\Controller {
$deftag = '';
if(x($_GET,'search') || $file || (!$pf && $cid))
$nouveau = true;
@ -334,8 +335,8 @@ class Network extends \Zotlabs\Web\Controller {
'$uid' => ((local_channel()) ? local_channel() : '0'),
'$gid' => (($gid) ? $gid : '0'),
'$cid' => (($cid) ? $cid : '0'),
'$cmin' => (($cmin) ? $cmin : '0'),
'$cmax' => (($cmax) ? $cmax : '0'),
'$cmin' => (($cmin) ? $cmin : '(-1)'),
'$cmax' => (($cmax) ? $cmax : '(-1)'),
'$star' => (($star) ? $star : '0'),
'$liked' => (($liked) ? $liked : '0'),
'$conv' => (($conv) ? $conv : '0'),
@ -420,8 +421,9 @@ class Network extends \Zotlabs\Web\Controller {
$pager_sql = sprintf(" LIMIT %d OFFSET %d ", intval(\App::$pager['itemspage']), intval(\App::$pager['start']));
}
if(($cmin != 0) || ($cmax != 99)) {
// cmin and cmax are both -1 when the affinity tool is disabled
if(($cmin != (-1)) || ($cmax != (-1))) {
// Not everybody who shows up in the network stream will be in your address book.
// By default those that aren't are assumed to have closeness = 99; but this isn't

View File

@ -118,8 +118,8 @@ class Pubstream extends \Zotlabs\Web\Controller {
'$uid' => ((local_channel()) ? local_channel() : '0'),
'$gid' => '0',
'$cid' => '0',
'$cmin' => '0',
'$cmax' => '99',
'$cmin' => '(-1)',
'$cmax' => '(-1)',
'$star' => '0',
'$liked' => '0',
'$conv' => '0',

View File

@ -121,8 +121,8 @@ class Search extends \Zotlabs\Web\Controller {
'$uid' => ((\App::$profile['profile_uid']) ? \App::$profile['profile_uid'] : '0'),
'$gid' => '0',
'$cid' => '0',
'$cmin' => '0',
'$cmax' => '0',
'$cmin' => '(-1)',
'$cmax' => '(-1)',
'$star' => '0',
'$liked' => '0',
'$conv' => '0',

View File

@ -333,6 +333,7 @@ class Browser extends DAV\Browser\Plugin {
$aclselect = null;
$lockstate = '';
$limit = 0;
if($this->auth->owner_id) {
$channel = channelx_by_n($this->auth->owner_id);
@ -343,10 +344,15 @@ class Browser extends DAV\Browser\Plugin {
$aclselect = ((local_channel() == $this->auth->owner_id) ? populate_acl($channel_acl,false, \Zotlabs\Lib\PermissionDescription::fromGlobalPermission('view_storage')) : '');
}
// Storage and quota for the account (all channels of the owner of this directory)!
$limit = engr_units_to_bytes(service_class_fetch($this->auth->owner_id, 'attach_upload_limit'));
}
if((! $limit) && get_config('system','cloud_report_disksize')) {
$limit = engr_units_to_bytes(disk_free_space('store'));
}
// Storage and quota for the account (all channels of the owner of this directory)!
$limit = engr_units_to_bytes(service_class_fetch($owner, 'attach_upload_limit'));
$r = q("SELECT SUM(filesize) AS total FROM attach WHERE aid = %d",
intval($this->auth->channel_account_id)
);

View File

@ -571,39 +571,6 @@ class Directory extends DAV\Node implements DAV\ICollection, DAV\IQuota, DAV\IMo
return datetime_convert('UTC', 'UTC', $r[0]['edited'], 'U');
}
/**
* @brief Return quota usage.
*
* @fixme Should guests relly see the used/free values from filesystem of the
* complete store directory?
*
* @return array with used and free values in bytes.
*/
public function getQuotaInfo() {
// values from the filesystem of the complete <i>store/</i> directory
$limit = disk_total_space('store');
$free = disk_free_space('store');
if ($this->auth->owner_id) {
$c = q("select * from channel where channel_id = %d and channel_removed = 0 limit 1",
intval($this->auth->owner_id)
);
$ulimit = engr_units_to_bytes(service_class_fetch($c[0]['channel_id'], 'attach_upload_limit'));
$limit = (($ulimit) ? $ulimit : $limit);
$x = q("select sum(filesize) as total from attach where aid = %d",
intval($c[0]['channel_account_id'])
);
$free = (($x) ? $limit - $x[0]['total'] : 0);
}
return array(
$limit - $free,
$free
);
}
/**
* @brief Array with all Directory and File DAV\\Node items for the given path.
@ -895,4 +862,48 @@ class Directory extends DAV\Node implements DAV\ICollection, DAV\IQuota, DAV\IMo
return false;
}
public function getQuotaInfo() {
/**
* Returns the quota information
*
* This method MUST return an array with 2 values, the first being the total used space,
* the second the available space (in bytes)
*/
$used = 0;
$limit = 0;
$free = 0;
if ($this->auth->owner_id) {
$channel = channelx_by_n($this->auth->owner_id);
if($channel) {
$r = q("SELECT SUM(filesize) AS total FROM attach WHERE aid = %d",
intval($channel['channel_account_id'])
);
$used = (($r) ? (float) $r[0]['total'] : 0);
$limit = (float) service_class_fetch($this->auth->owner_id, 'attach_upload_limit');
if($limit) {
// Don't let the result go negative
$free = (($limit > $used) ? $limit - $used : 0);
}
}
}
if(! $limit) {
$free = disk_free_space('store');
$used = disk_total_space('store') - $free;
}
// prevent integer overflow on 32-bit systems
if($used > (float) PHP_INT_MAX)
$used = PHP_INT_MAX;
if($free > (float) PHP_INT_MAX)
$free = PHP_INT_MAX;
return [ (int) $used, (int) $free ];
}
}

View File

@ -106,7 +106,7 @@ For these reasons we [b]strongly recommend[/b] that you do NOT install addons fr
We also recognise that some developers prefer working on their own and do not wish their code to be mingled with the project repository for a variety of reasons. These developers can ease troubleshooting and debugging by providing a README file in their respective code repository outlining the process for submitting patches and bug fixes. It is also recommended that these projects provide both a 'dev' (development) and 'master' (production) branch which tracks the current project branches of those names. This is because dev and master are often not compatible from the viewpoint of library interfaces. It is also highly recommended that your repository versions are tagged and moved forward within 24 hours of project releases. This is a major inconvenience for everybdy involved, and can present downtime for production sites while this process is being carried out; which is one more reason why we [b]strongly recommend[/b] that addons be submitted to the project addon repository and that you do NOT install such third-party addons.
[url=https://framagit.org/hubzilla/core/-addons]https://framagit.org/hubzilla/core/-addons[/url] Main project addon repository
[url=https://framagit.org/hubzilla/addons]https://framagit.org/hubzilla/addons[/url] Main project addon repository
[url=https://github.com/23n/red-addons]https://github.com/23n/red-addons[/url] Oliver's repository (mayan_places and flip)

View File

@ -396,7 +396,7 @@ To immediately clear out all the extra logging stuff you added. Use the informa
##### Rotating log files
1. Enable the **logrot** addon in the official [hubzilla-addons](https://framagit.org/hubzilla/core/-addons) repo
1. Enable the **logrot** addon in the official [hubzilla-addons](https://framagit.org/hubzilla/addons) repo
1. Create a directory in your web root called `log` with webserver write permissions
1. Go to the **logrot** admin settings and enter this folder name as well as the max size and number of retained log files.

View File

@ -7,7 +7,7 @@
[url=https://framagit.org/hubzilla/core/]Lloc Web Principal[/url]
[url=https://framagit.org/hubzilla/core/-addons]Complements del Lloc Web[/url]
[url=https://framagit.org/hubzilla/addons]Complements del Lloc Web[/url]
[url=[baseurl]/help/credits]Credits en $Projectname[/url]

View File

@ -6,7 +6,7 @@
[zrl=[baseurl]/help/external-resource-links]Links zu externen Ressourcen[/zrl]
[url=https://framagit.org/hubzilla/core/]Haupt-Website[/url]
[url=https://framagit.org/hubzilla/core/-addons]Addons-Website[/url]
[url=https://framagit.org/hubzilla/addons]Addons-Website[/url]
[url=[baseurl]/help/credits]$Projectname Credits[/url]

View File

@ -174,8 +174,8 @@ It is a good idea to read the whole manual! Git is different to other version co
Now you should
[list]
[*] create an account at github.com
[*] fork https://framagit.org/hubzilla/core/
[*] fork https://framagit.org/hubzilla/core/-addons
[*] fork https://framagit.org/hubzilla/core
[*] fork https://framagit.org/hubzilla/addons
[/list]
If you not want to use GIT from the command line - there is a usefull Eclipse plugin named ""Eclipse Mylyn to GitHub connector".
@ -416,4 +416,4 @@ surfer@debian:/var/www$ git push
[/code]
#include doc/macros/main_footer.bb;
#include doc/macros/main_footer.bb;

2
doc/es
View File

@ -1 +1 @@
es-es
doc/es-es

View File

@ -7,7 +7,7 @@
[h3]External resources[/h3]
[zrl=[baseurl]/help/external-resource-links]List of external resources[/zrl]
[url=https://framagit.org/hubzilla/core/]Main Website[/url]
[url=https://framagit.org/hubzilla/core/-addons]Addon Website[/url]
[url=https://framagit.org/hubzilla/addons]Addon Website[/url]
[url=[baseurl]/help/credits]$Projectname Credits[/url]
[h3]About this $Projectname hub[/h3]
[zrl=[baseurl]/help/TermsOfService]Terms of Service For This Hub[/zrl]

View File

@ -2359,6 +2359,7 @@ function channel_store_lowlevel($arr) {
'channel_dirdate' => ((array_key_exists('channel_dirdate',$arr)) ? $arr['channel_dirdate'] : NULL_DATE),
'channel_lastpost' => ((array_key_exists('channel_lastpost',$arr)) ? $arr['channel_lastpost'] : NULL_DATE),
'channel_deleted' => ((array_key_exists('channel_deleted',$arr)) ? $arr['channel_deleted'] : NULL_DATE),
'channel_active' => ((array_key_exists('channel_active',$arr)) ? $arr['channel_active'] : NULL_DATE),
'channel_max_anon_mail' => ((array_key_exists('channel_max_anon_mail',$arr)) ? $arr['channel_max_anon_mail'] : '10'),
'channel_max_friend_req' => ((array_key_exists('channel_max_friend_req',$arr)) ? $arr['channel_max_friend_req'] : '10'),
'channel_expire_days' => ((array_key_exists('channel_expire_days',$arr)) ? $arr['channel_expire_days'] : '0'),

View File

@ -3697,10 +3697,7 @@ function delete_item_lowlevel($item, $stage = DROPITEM_NORMAL, $force = false) {
);
}
else {
$r = q("UPDATE item SET item_deleted = 1, body = '', title = '',
changed = '%s', edited = '%s' WHERE id = %d",
dbesc(datetime_convert()),
dbesc(datetime_convert()),
$r = q("DELETE FROM item WHERE id = %d",
intval($item['id'])
);
}

View File

@ -242,7 +242,7 @@ function tt($singular, $plural, $count, $ctx = ''){
if (! function_exists($f))
$f = 'string_plural_select_default';
$k = $f($count);
$k = $f(intval($count));
return is_array($t) ? $t[$k] : $t;
}

View File

@ -81,6 +81,10 @@ function menu_render($menu, $class='', $edit = false, $var = array()) {
if ((! $channel_id) && (local_channel()))
$channel_id = local_channel();
$chan = channelx_by_n($channel_id);
if(! $chan)
return '';
$menu_list = menu_list($channel_id);
$menu_names = array();
@ -110,6 +114,7 @@ function menu_render($menu, $class='', $edit = false, $var = array()) {
$ret = replace_macros(get_markup_template('usermenu.tpl'),array(
'$menu' => $menu['menu'],
'$class' => $class,
'$nick' => $chan['channel_address'],
'$edit' => (($edit) ? t("Edit") : ''),
'$id' => $menu['menu']['menu_id'],
'$items' => $menu['items'],

View File

@ -55,6 +55,7 @@ pre code {
padding: 1em 1.5em;
display: block;
white-space: pre-wrap;
word-break: break-all;
}
code {
@ -64,6 +65,7 @@ code {
display: inline;
padding: 0.2em 0.2em;
white-space: pre-wrap;
word-break: break-all;
}
#wiki-content-container code {

View File

@ -7,6 +7,8 @@
{{include file="field_checkbox.tpl" field=$block_public}}
{{include file="field_checkbox.tpl" field=$cloud_noroot}}
{{include file="field_checkbox.tpl" field=$cloud_disksize}}
{{include file="field_checkbox.tpl" field=$transport_security}}
{{include file="field_checkbox.tpl" field=$content_security}}
{{include file="field_checkbox.tpl" field=$embed_sslonly}}

View File

@ -36,8 +36,8 @@
var udargs = ((page_load) ? "/load" : "");
var bCmd = bParam_cmd + udargs + "?f=" ;
if(bParam_uid) bCmd = bCmd + "&p=" + bParam_uid;
if(bParam_cmin != 0) bCmd = bCmd + "&cmin=" + bParam_cmin;
if(bParam_cmax != 99) bCmd = bCmd + "&cmax=" + bParam_cmax;
if(bParam_cmin != (-1)) bCmd = bCmd + "&cmin=" + bParam_cmin;
if(bParam_cmax != (-1)) bCmd = bCmd + "&cmax=" + bParam_cmax;
if(bParam_gid != 0) { bCmd = bCmd + "&gid=" + bParam_gid; } else
if(bParam_cid != 0) { bCmd = bCmd + "&cid=" + bParam_cid; }
if(bParam_static != 0) { bCmd = bCmd + "&static=" + bParam_static; }

View File

@ -2,7 +2,7 @@
<div id="pmenu-{{$id}}" class="pmenu{{if !$class}} widget{{else}} {{$class}}{{/if}}">
{{/if}}
{{if $menu.menu_desc}}
<h3 class="pmenu-title">{{$menu.menu_desc}}{{if $edit}} <a href="mitem/{{$menu.menu_id}}" title="{{$edit}}"><i class="fa fa-pencil fakelink" title="{{$edit}}"></i></a>{{/if}}</h3>
<h3 class="pmenu-title">{{$menu.menu_desc}}{{if $edit}} <a href="mitem/{{$nick}}/{{$menu.menu_id}}" title="{{$edit}}"><i class="fa fa-pencil fakelink" title="{{$edit}}"></i></a>{{/if}}</h3>
{{/if}}
{{if $items}}
<ul class="pmenu-body{{if $wrap || !$class}} nav nav-pills flex-column{{elseif !$wrap || $class}} {{$class}}{{/if}}">