1
0
Fork 0

Next item structure works (#5380)

* Use "LEFT JOIN" to always fetch the item. Needed for update routines.

* New conversion routine that now covers every item

* Post update is now activated

* We now use a hash based upon RIPEMD-320 for content and activity

* The hash doesn't contain the plink anymore

* Legacy item fields are now "null"able

* New hash function for a server unique item hash

* Introduction of the legacy mode (usage of old item fields)

* Code simplification

* We don't need the "uri" fields anymore in item-activity and item-content

* Use the "created" and not the "received" date for the hash

* Avoiding several notices

* Some more warnings removed

* Improved uri-hash / Likes on Diaspora are now getting a creation date

* Corrected the post update version

* Ensure an unique uri-hash

* Don't delete orhaned item data at the moment

* Partly reworked, due to strange behaviour

* Some more parts reworked

* Using the uri currently seems to be more reliable

* Using the uri here as well

* Use the hash values again

* Grouped item fields in different categories

* Notices again

* use the gravity (we always should)

* Added hint for disabled post updates

* Notices ...

* Issue #5337: Personal notes are displayed again

* Use the gravity again
This commit is contained in:
Michael Vogel 2018-07-15 20:36:20 +02:00 committed by Hypolite Petovan
commit d3a2ed85fe
21 changed files with 315 additions and 297 deletions

View file

@ -42,7 +42,7 @@ function friendica_init(App $a)
Config::load('feature_lock');
$locked_features = [];
if (is_array($a->config['feature_lock']) && count($a->config['feature_lock'])) {
if (!empty($a->config['feature_lock']) && count($a->config['feature_lock'])) {
foreach ($a->config['feature_lock'] as $k => $v) {
if ($k === 'config_loaded') {
continue;

View file

@ -57,9 +57,9 @@ function notes_content(App $a, $update = false)
$o .= status_editor($a, $x, $a->contact['id']);
}
$condition = ["`uid` = ? AND `type` = 'note' AND `id` = `parent` AND NOT `wall`
$condition = ["`uid` = ? AND `type` = 'note' AND `gravity` = ? AND NOT `wall`
AND `allow_cid` = ? AND `contact-id` = ?",
local_user(), '<' . $a->contact['id'] . '>', $a->contact['id']];
local_user(), GRAVITY_PARENT, '<' . $a->contact['id'] . '>', $a->contact['id']];
$notes = dba::count('item', $condition);
@ -68,13 +68,13 @@ function notes_content(App $a, $update = false)
$params = ['order' => ['created' => true],
'limit' => [$a->pager['start'], $a->pager['itemspage']]];
$r = Item::selectForUser(local_user(), ['item_id'], $condition, $params);
$r = Item::selectForUser(local_user(), ['id'], $condition, $params);
if (DBM::is_result($r)) {
$parents_arr = [];
while ($rr = Item::fetch($r)) {
$parents_arr[] = $rr['item_id'];
$parents_arr[] = $rr['id'];
}
dba::close($r);

View file

@ -67,8 +67,11 @@ function parse_url_content(App $a) {
$hdrs = [];
$h = explode("\n", $result["header"]);
foreach ($h as $l) {
list($k,$v) = array_map("trim", explode(":", trim($l), 2));
$hdrs[$k] = $v;
$header = array_map("trim", explode(":", trim($l), 2));
if (count($header) == 2) {
list($k,$v) = $header;
$hdrs[$k] = $v;
}
}
if (array_key_exists("Content-Type", $hdrs)) {
$type = $hdrs["Content-Type"];

View file

@ -26,12 +26,14 @@ use Friendica\Util\Temporal;
function get_theme_config_file($theme)
{
$a = get_app();
$base_theme = $a->theme_info['extends'];
if (!empty($a->theme_info['extends'])) {
$base_theme = $a->theme_info['extends'];
}
if (file_exists("view/theme/$theme/config.php")) {
return "view/theme/$theme/config.php";
}
if (file_exists("view/theme/$base_theme/config.php")) {
if (!empty($base_theme) && file_exists("view/theme/$base_theme/config.php")) {
return "view/theme/$base_theme/config.php";
}
return null;
@ -1155,7 +1157,7 @@ function settings_content(App $a)
// Private/public post links for the non-JS ACL form
$private_post = 1;
if ($_REQUEST['public']) {
if (!empty($_REQUEST['public']) && !$_REQUEST['public']) {
$private_post = 0;
}