X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=mod%2Fphotos.php;h=79a51fd4c97effa9dbab099d5d7fe8bf9fee79e4;hb=7ab366b9c3653160dbe68fe2d096e4174547ff84;hp=8ac4d8590371f1ed89da07f1d63221e261d7cc58;hpb=1d6dd1666f4fc5da64447a48e158f8755d1d2a1b;p=friendica.git diff --git a/mod/photos.php b/mod/photos.php index 8ac4d85903..79a51fd4c9 100644 --- a/mod/photos.php +++ b/mod/photos.php @@ -5,7 +5,7 @@ require_once('include/acl_selectors.php'); require_once('include/bbcode.php'); require_once('include/security.php'); require_once('include/redir.php'); - +require_once('include/tags.php'); function photos_init(&$a) { @@ -166,6 +166,11 @@ function photos_post(&$a) { return; // NOTREACHED } + // Check if the user has responded to a delete confirmation query + if($_REQUEST['canceled']) { + goaway($a->get_baseurl() . '/' . $_SESSION['photo_return']); + } + $newalbum = notags(trim($_POST['albumname'])); if($newalbum != $album) { q("UPDATE `photo` SET `album` = '%s' WHERE `album` = '%s' AND `uid` = %d", @@ -181,6 +186,25 @@ function photos_post(&$a) { if($_POST['dropalbum'] == t('Delete Album')) { + // Check if we should do HTML-based delete confirmation + if($_REQUEST['confirm']) { + $drop_url = $a->query_string; + $extra_inputs = array( + array('name' => 'albumname', 'value' => $_POST['albumname']), + ); + $a->page['content'] = replace_macros(get_markup_template('confirm.tpl'), array( + '$method' => 'post', + '$message' => t('Do you really want to delete this photo album and all its photos?'), + '$extra_inputs' => $extra_inputs, + '$confirm' => t('Delete Album'), + '$confirm_url' => $drop_url, + '$confirm_name' => 'dropalbum', // Needed so that confirmation will bring us back into this if statement + '$cancel' => t('Cancel'), + )); + $a->error = 1; // Set $a->error so the other module functions don't execute + return; + } + $res = array(); // get the list of photos we are about to delete @@ -228,6 +252,7 @@ function photos_post(&$a) { dbesc($rr['parent-uri']), intval($page_owner_uid) ); + create_tags_from_itemuri($rr['parent-uri'], $page_owner_uid); $drop_id = intval($rr['id']); @@ -242,10 +267,32 @@ function photos_post(&$a) { return; // NOTREACHED } + + // Check if the user has responded to a delete confirmation query for a single photo + if(($a->argc > 2) && $_REQUEST['canceled']) { + goaway($a->get_baseurl() . '/' . $_SESSION['photo_return']); + } + if(($a->argc > 2) && (x($_POST,'delete')) && ($_POST['delete'] == t('Delete Photo'))) { // same as above but remove single photo + // Check if we should do HTML-based delete confirmation + if($_REQUEST['confirm']) { + $drop_url = $a->query_string; + $a->page['content'] = replace_macros(get_markup_template('confirm.tpl'), array( + '$method' => 'post', + '$message' => t('Do you really want to delete this photo?'), + '$extra_inputs' => array(), + '$confirm' => t('Delete Photo'), + '$confirm_url' => $drop_url, + '$confirm_name' => 'delete', // Needed so that confirmation will bring us back into this if statement + '$cancel' => t('Cancel'), + )); + $a->error = 1; // Set $a->error so the other module functions don't execute + return; + } + if($visitor) { $r = q("SELECT `id`, `resource-id` FROM `photo` WHERE `contact-id` = %d AND `uid` = %d AND `resource-id` = '%s' LIMIT 1", intval($visitor), @@ -275,6 +322,7 @@ function photos_post(&$a) { dbesc($i[0]['uri']), intval($page_owner_uid) ); + create_tags_from_itemuri($i[0]['uri'], $page_owner_uid); $url = $a->get_baseurl(); $drop_id = intval($i[0]['id']); @@ -284,7 +332,7 @@ function photos_post(&$a) { } } - goaway($a->get_baseurl() . '/' . $_SESSION['photo_return']); + goaway($a->get_baseurl() . '/photos/' . $a->data['user']['nickname']); return; // NOTREACHED } @@ -335,7 +383,7 @@ function photos_post(&$a) { $ph->scaleImage(640); $width = $ph->getWidth(); $height = $ph->getHeight(); - + $x = q("update photo set data = '%s', height = %d, width = %d where `resource-id` = '%s' and uid = %d and scale = 1 limit 1", dbesc($ph->imageString()), intval($height), @@ -357,7 +405,7 @@ function photos_post(&$a) { dbesc($resource_id), intval($page_owner_uid) ); - } + } } } } @@ -559,6 +607,7 @@ function photos_post(&$a) { intval($item_id), intval($page_owner_uid) ); + create_tags_from_item($item_id); $best = 0; foreach($p as $scales) { @@ -834,8 +883,8 @@ function photos_post(&$a) { intval($item_id) ); } - - if($visible) + + if($visible) proc_run('php', "include/notifier.php", 'wall-new', $item_id); call_hooks('photo_post_end',intval($item_id)); @@ -1024,8 +1073,10 @@ function photos_content(&$a) { call_hooks('photo_upload_form',$ret); - $default_upload = '
-
'; + $default_upload_box = replace_macros(get_markup_template('photos_default_uploader_box.tpl'), array()); + $default_upload_submit = replace_macros(get_markup_template('photos_default_uploader_submit.tpl'), array( + '$submit' => t('Submit'), + )); $usage_message = ''; $limit = service_class_fetch($a->data['user']['uid'],'photo_upload_limit'); @@ -1038,6 +1089,25 @@ function photos_content(&$a) { } + // Private/public post links for the non-JS ACL form + $private_post = 1; + if($_REQUEST['public']) + $private_post = 0; + + $query_str = $a->query_string; + if(strpos($query_str, 'public=1') !== false) + $query_str = str_replace(array('?public=1', '&public=1'), array('', ''), $query_str); + + // I think $a->query_string may never have ? in it, but I could be wrong + // It looks like it's from the index.php?q=[etc] rewrite that the web + // server does, which converts any ? to &, e.g. suggest&ignore=61 for suggest?ignore=61 + if(strpos($query_str, '?') === false) + $public_post_link = '?public=1'; + else + $public_post_link = '&public=1'; + + + $tpl = get_markup_template('photos_upload.tpl'); if($a->theme['template_engine'] === 'internal') { @@ -1060,9 +1130,20 @@ function photos_content(&$a) { '$albumselect' => $albumselect_e, '$permissions' => t('Permissions'), '$aclselect' => $aclselect_e, - '$uploader' => $ret['addon_text'], - '$default' => (($ret['default_upload']) ? $default_upload : ''), - '$uploadurl' => $ret['post_url'] + '$alt_uploader' => $ret['addon_text'], + '$default_upload_box' => (($ret['default_upload']) ? $default_upload_box : ''), + '$default_upload_submit' => (($ret['default_upload']) ? $default_upload_submit : ''), + '$uploadurl' => $ret['post_url'], + + // ACL permissions box + '$acl_data' => construct_acl_data($a, $a->user), // For non-Javascript ACL selector + '$group_perms' => t('Show to Groups'), + '$contact_perms' => t('Show to Contacts'), + '$private' => t('Private Photo'), + '$public' => t('Public Photo'), + '$is_private' => $private_post, + '$return_path' => $query_str, + '$public_link' => $public_post_link, )); @@ -1340,7 +1421,7 @@ function photos_content(&$a) { intval($a->pager['itemspage']) ); - + if((local_user()) && (local_user() == $link_item['uid'])) { q("UPDATE `item` SET `unseen` = 0 WHERE `parent` = %d and `uid` = %d", intval($link_item['parent']), @@ -1372,6 +1453,24 @@ function photos_content(&$a) { if(($cmd === 'edit') && ($can_post)) { $edit_tpl = get_markup_template('photo_edit.tpl'); + // Private/public post links for the non-JS ACL form + $private_post = 1; + if($_REQUEST['public']) + $private_post = 0; + + $query_str = $a->query_string; + if(strpos($query_str, 'public=1') !== false) + $query_str = str_replace(array('?public=1', '&public=1'), array('', ''), $query_str); + + // I think $a->query_string may never have ? in it, but I could be wrong + // It looks like it's from the index.php?q=[etc] rewrite that the web + // server does, which converts any ? to &, e.g. suggest&ignore=61 for suggest?ignore=61 + if(strpos($query_str, '?') === false) + $public_post_link = '?public=1'; + else + $public_post_link = '&public=1'; + + if($a->theme['template_engine'] === 'internal') { $album_e = template_escape($ph[0]['album']); $caption_e = template_escape($ph[0]['desc']); @@ -1400,7 +1499,17 @@ function photos_content(&$a) { '$help_tags' => t('Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping'), '$item_id' => ((count($linked_items)) ? $link_item['id'] : 0), '$submit' => t('Submit'), - '$delete' => t('Delete Photo') + '$delete' => t('Delete Photo'), + + // ACL permissions box + '$acl_data' => construct_acl_data($a, $ph[0]), // For non-Javascript ACL selector + '$group_perms' => t('Show to Groups'), + '$contact_perms' => t('Show to Contacts'), + '$private' => t('Private photo'), + '$public' => t('Public photo'), + '$is_private' => $private_post, + '$return_path' => $query_str, + '$public_link' => $public_post_link, )); } @@ -1418,9 +1527,10 @@ function photos_content(&$a) { $likebuttons = replace_macros($like_tpl,array( '$id' => $link_item['id'], '$likethis' => t("I like this \x28toggle\x29"), - '$nolike' => t("I don't like this \x28toggle\x29"), + '$nolike' => (feature_enabled(local_user(), 'dislike') ? t("I don't like this \x28toggle\x29") : ''), '$share' => t('Share'), - '$wait' => t('Please wait') + '$wait' => t('Please wait'), + '$return_path' => $a->query_string, )); } @@ -1679,13 +1789,7 @@ function photos_content(&$a) { } $tpl = get_markup_template('photos_recent.tpl'); - - $includes = array( - '$photo_top' => 'photo_top.tpl', - ); - $includes = set_template_includes($a->theme['template_engine'], $includes); - - $o .= replace_macros($tpl,$includes + array( + $o .= replace_macros($tpl, array( '$title' => t('Recent Photos'), '$can_post' => $can_post, '$upload' => array(t('Upload New Photos'), $a->get_baseurl().'/photos/'.$a->data['user']['nickname'].'/upload'),