diff options
-rw-r--r-- | boot.php | 3 | ||||
-rw-r--r-- | include/Photo.php | 13 | ||||
-rw-r--r-- | mod/item.php | 4 | ||||
-rw-r--r-- | mod/photos.php | 50 | ||||
-rw-r--r-- | view/photo_edit.tpl | 11 | ||||
-rw-r--r-- | view/photos_upload.tpl | 10 | ||||
-rw-r--r-- | view/style.css | 19 |
7 files changed, 95 insertions, 15 deletions
@@ -498,3 +498,6 @@ function expand_acl($s) { } +function sanitise_acl(&$item) { + $item = '<' . intval(notags(trim($item))) . '>'; +} diff --git a/include/Photo.php b/include/Photo.php index b8557e7ec..0f5003a6f 100644 --- a/include/Photo.php +++ b/include/Photo.php @@ -168,11 +168,12 @@ class Photo { - public function store($uid, $cid, $rid, $filename, $album, $scale, $profile = 0) { + public function store($uid, $cid, $rid, $filename, $album, $scale, + $profile = 0, $allow_cid = '', $allow_gid = '', $deny_cid = '', $deny_gid = '') { $r = q("INSERT INTO `photo` - ( `uid`, `contact-id`, `resource-id`, `created`, `edited`, `filename`, `album`, `height`, `width`, `data`, `scale`, `profile` ) - VALUES ( %d, %d, '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', %d, %d )", + ( `uid`, `contact-id`, `resource-id`, `created`, `edited`, `filename`, `album`, `height`, `width`, `data`, `scale`, `profile`, `allow_cid`, `allow_gid`, `deny_cid`, `deny_gid` ) + VALUES ( %d, %d, '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', %d, %d, '%s', '%s', '%s', '%s' )", intval($uid), intval($cid), dbesc($rid), @@ -184,7 +185,11 @@ class Photo { intval($this->width), dbesc($this->imageString()), intval($scale), - intval($profile) + intval($profile), + dbesc($allow_cid), + dbesc($allow_gid), + dbesc($deny_cid), + dbesc($deny_gid) ); return $r; } diff --git a/mod/item.php b/mod/item.php index ca6f703b3..cc743b77f 100644 --- a/mod/item.php +++ b/mod/item.php @@ -1,9 +1,5 @@ <?php -function sanitise_acl(&$item) { - $item = '<' . intval(notags(trim($item))) . '>'; -} - function item_post(&$a) { if((! local_user()) && (! remote_user())) diff --git a/mod/photos.php b/mod/photos.php index 5598de434..82f3c13ec 100644 --- a/mod/photos.php +++ b/mod/photos.php @@ -1,6 +1,7 @@ <?php require_once('Photo.php'); +require_once('view/acl_selectors.php'); function photos_init(&$a) { @@ -74,6 +75,35 @@ function photos_post(&$a) { $album = datetime_convert('UTC',date_default_timezone_get(),'now', 'Y'); } + $str_group_allow = ''; + $group_allow = $_POST['group_allow']; + if(is_array($group_allow)) { + array_walk($group_allow,'sanitise_acl'); + $str_group_allow = implode('',$group_allow); + } + + $str_contact_allow = ''; + $contact_allow = $_POST['contact_allow']; + if(is_array($contact_allow)) { + array_walk($contact_allow,'sanitise_acl'); + $str_contact_allow = implode('',$contact_allow); + } + + $str_group_deny = ''; + $group_deny = $_POST['group_deny']; + if(is_array($group_deny)) { + array_walk($group_deny,'sanitise_acl'); + $str_group_deny = implode('',$group_deny); + } + + $str_contact_deny = ''; + $contact_deny = $_POST['contact_deny']; + if(is_array($contact_deny)) { + array_walk($contact_deny,'sanitise_acl'); + $str_contact_deny = implode('',$contact_deny); + } + + $src = $_FILES['userfile']['tmp_name']; $filename = basename($_FILES['userfile']['name']); $filesize = intval($_FILES['userfile']['size']); @@ -96,7 +126,7 @@ function photos_post(&$a) { $photo_hash = hash('md5',uniqid(mt_rand(),true)); - $r = $ph->store($_SESSION['uid'], 0, $photo_hash, $filename, $album, 0 ); + $r = $ph->store($_SESSION['uid'], 0, $photo_hash, $filename, $album, 0 , 0, $str_contact_allow, $str_group_allow, $str_contact_deny, $str_group_deny); if(! $r) { notice( t('Image upload failed.') . EOL ); @@ -105,13 +135,13 @@ function photos_post(&$a) { if($width > 640 || $height > 640) { $ph->scaleImage(640); - $ph->store($_SESSION['uid'], 0, $photo_hash, $filename, $album, 1 ); + $ph->store($_SESSION['uid'], 0, $photo_hash, $filename, $album, 1, 0, $str_contact_allow, $str_group_allow, $str_contact_deny, $str_group_deny); $smallest = 1; } if($width > 320 || $height > 320) { $ph->scaleImage(320); - $ph->store($_SESSION['uid'], 0, $photo_hash, $filename, $album, 2 ); + $ph->store($_SESSION['uid'], 0, $photo_hash, $filename, $album, 2, 0, $str_contact_allow, $str_group_allow, $str_contact_deny, $str_group_deny); $smallest = 2; } @@ -292,6 +322,8 @@ function photos_content(&$a) { '$existalbumtext' => t('or existing album name: '), '$filestext' => t('Select files to upload: '), '$albumselect' => $albumselect, + '$permissions' => t('Permissions'), + '$aclselect' => populate_acl(), '$archive' => $a->get_baseurl() . '/jumploader_z.jar', '$nojava' => t('Use the following controls only if the Java uploader (above) fails to launch.'), '$uploadurl' => $a->get_baseurl() . '/photos', @@ -348,7 +380,7 @@ function photos_content(&$a) { require_once('security.php'); require_once('bbcode.php'); - // fetch item containing image, then comments + // fetch image, item containing image, then comments $ph = q("SELECT * FROM `photo` WHERE `uid` = %d AND `resource-id` = '%s' $sql_extra ORDER BY `scale` ASC ", @@ -421,9 +453,8 @@ function photos_content(&$a) { ); -// require_once('view/acl_selectors.php'); - $o .= '<div id="photo-caption" >' . $ph['desc'] . '</div>'; + $o .= '<div id="photo-caption" >' . $ph[0]['desc'] . '</div>'; if(strlen($i1[0]['tag'])) { // parse tags and add links @@ -431,6 +462,13 @@ function photos_content(&$a) { $o .= '<div id="in-this-photo">' . $i1[0]['tag'] . '</div>'; } + if($cmd == 'edit') { + $edit_tpl = file_get_contents('view/photo_edit.tpl'); + $o .= replace_macros($edit_tpl, array( + '$id' => $ph[0]['id'] + )); + } + // pull out how many people like the photo $cmnt_tpl = file_get_contents('view/comment_item.tpl'); diff --git a/view/photo_edit.tpl b/view/photo_edit.tpl new file mode 100644 index 000000000..7b579492f --- /dev/null +++ b/view/photo_edit.tpl @@ -0,0 +1,11 @@ + +<form action="photos" method="post" id="photo_edit_form" > + + <label id="photo-edit-caption-label" for="photo-edit-caption">$capt_label</label> + <input type="text size="64" name="desc" value="$caption" /> + + <label id="photo-edit-tags-label" for="photo-edit-tags-textarea" >$tag_label</label> + <textarea name="tags" id="photo-edit-tags-textarea">$tags</textarea> + + <input type="submit" name="submit" value="$submit" /> +</form> diff --git a/view/photos_upload.tpl b/view/photos_upload.tpl index 36e1780d5..a03779775 100644 --- a/view/photos_upload.tpl +++ b/view/photos_upload.tpl @@ -13,6 +13,16 @@ </div> <div id="photos-upload-exist-end"></div> + + <div id="photos-upload-perms" class="photos-upload-perms" ><div id="photos-upload-perms-menu" onClick="openClose('photos-upload-permissions-wrapper');" />$permissions</div> + <div id="photos-upload-perms-end"></div> + + <div id="photos-upload-permissions-wrapper" style="display: none;" > + + $aclselect + + </div> + <div id="photos-upload-select-files-text">$filestext</div> <div id="photos_upload_applet_wrapper"> diff --git a/view/style.css b/view/style.css index 4fa962033..4fbe5d20e 100644 --- a/view/style.css +++ b/view/style.css @@ -1308,4 +1308,21 @@ input#dfrn-url { #profile-jot-banner-end { clear: both; -}
\ No newline at end of file +} + +#photos-upload-select-files-text { + margin-top: 15px; + margin-bottom: 15px; +} + +#photos-upload-perms-menu, #photos-upload-perms-menu:visited { + color: #8888FF; + text-decoration: none; + cursor: pointer; +} + +#photos-upload-perms-menu:hover { + color: #0000FF; + text-decoration: underline; + cursor: pointer; +} |