aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Macgirvin <mike@macgirvin.com>2010-08-07 06:20:27 -0700
committerMike Macgirvin <mike@macgirvin.com>2010-08-07 06:20:27 -0700
commitadce88e564f2e9a6c8487bf23762afe1413ed263 (patch)
treeb789d38aad78dd76c3638227af73a9212688731a
parentedff5b5289f80be89e4fc6b072ccd84812960349 (diff)
downloadvolse-hubzilla-adce88e564f2e9a6c8487bf23762afe1413ed263.tar.gz
volse-hubzilla-adce88e564f2e9a6c8487bf23762afe1413ed263.tar.bz2
volse-hubzilla-adce88e564f2e9a6c8487bf23762afe1413ed263.zip
photo editing
-rw-r--r--boot.php3
-rw-r--r--include/Photo.php13
-rw-r--r--mod/item.php4
-rw-r--r--mod/photos.php50
-rw-r--r--view/photo_edit.tpl11
-rw-r--r--view/photos_upload.tpl10
-rw-r--r--view/style.css19
7 files changed, 95 insertions, 15 deletions
diff --git a/boot.php b/boot.php
index f1f955637..c1fbf2985 100644
--- a/boot.php
+++ b/boot.php
@@ -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;
+}