diff options
author | friendica <info@friendica.com> | 2013-12-30 04:25:55 -0800 |
---|---|---|
committer | friendica <info@friendica.com> | 2013-12-30 04:25:55 -0800 |
commit | 0dd7d936744cccfac4228cabecddc59ce05eb26c (patch) | |
tree | 9ad5a323161a4bce9a28efbbdaf079b6338100cd | |
parent | 6e81c332b78e5eac78db4f7a26fd3018c8ba5d0a (diff) | |
download | volse-hubzilla-0dd7d936744cccfac4228cabecddc59ce05eb26c.tar.gz volse-hubzilla-0dd7d936744cccfac4228cabecddc59ce05eb26c.tar.bz2 volse-hubzilla-0dd7d936744cccfac4228cabecddc59ce05eb26c.zip |
basic edit and delete for things
-rw-r--r-- | include/taxonomy.php | 5 | ||||
-rw-r--r-- | mod/thing.php | 121 | ||||
-rw-r--r-- | version.inc | 2 | ||||
-rw-r--r-- | view/theme/redbasic/css/style.css | 5 | ||||
-rw-r--r-- | view/tpl/show_thing.tpl | 8 | ||||
-rw-r--r-- | view/tpl/thing_edit.tpl | 29 |
6 files changed, 159 insertions, 11 deletions
diff --git a/include/taxonomy.php b/include/taxonomy.php index 67263100f..4f2b5e8fd 100644 --- a/include/taxonomy.php +++ b/include/taxonomy.php @@ -261,11 +261,12 @@ function obj_verbs() { } -function obj_verb_selector() { +function obj_verb_selector($current = '') { $verbs = obj_verbs(); $o .= '<select class="obj-verb-selector" name="verb" >'; foreach($verbs as $k => $v) { - $o .= '<option value="' . urlencode($k) . '">' . $v[0] . '</option>'; + $selected = (($k == $current) ? ' selected="selected" ' : ''); + $o .= '<option value="' . urlencode($k) . '"' . $selected . '>' . $v[0] . '</option>'; } $o .= '</select>'; return $o; diff --git a/mod/thing.php b/mod/thing.php index 3e2612c68..b4fdfa039 100644 --- a/mod/thing.php +++ b/mod/thing.php @@ -1,6 +1,7 @@ <?php /** @file */ require_once('include/items.php'); +require_once('include/contact_selectors.php'); function thing_init(&$a) { @@ -11,6 +12,7 @@ function thing_init(&$a) { $account_id = $a->get_account(); $channel = $a->get_channel(); + $term_hash = (($_REQUEST['term_hash']) ? $_REQUEST['term_hash'] : ''); $name = escape_tags($_REQUEST['term']); $verb = escape_tags($_REQUEST['verb']); @@ -59,6 +61,40 @@ function thing_init(&$a) { if((! $name) || (! $translated_verb)) return; + + + + + if($term_hash) { + $t = q("select * from obj left join term on obj_obj = term_hash where term_hash != '' and obj_type = %d and term_hash = '%s' limit 1", + intval(TERM_OBJ_THING), + dbesc($term_hash) + ); + if(! $t) { + notice( t('Item not found.') . EOL); + return; + } + $orig_record = $t[0]; + if($photo != $orig_record['imgurl']) { + $arr = import_profile_photo($photo,get_observer_hash(),true); + $local_photo = $arr[0]; + $local_photo_type = $arr[3]; + } + else + $local_photo = $orig_record['imgurl']; + + $r = q("update term set term = '%s', url = '%s', imgurl = '%s' where term_hash = '%s' and uid = %d limit 1", + dbesc($name), + dbesc(($url) ? $url : z_root() . '/thing/' . $term_hash), + dbesc($local_photo), + dbesc($term_hash), + intval(local_user()) + ); + + info( t('Thing updated') . EOL); + return; + } + $sql = (($profile_guid) ? " and profile_guid = '" . dbesc($profile_guid) . "' " : " and is_default = 1 "); $p = q("select profile_guid, is_default from profile where uid = %d $sql limit 1", intval(local_user()) @@ -118,7 +154,7 @@ function thing_init(&$a) { return; } - info( t('thing/stuff added')); + info( t('Thing added')); $arr = array(); $links = array(array('rel' => 'alternate','type' => 'text/html', 'href' => $term['url'])); @@ -180,7 +216,7 @@ function thing_init(&$a) { function thing_content(&$a) { - if(argc() > 1) { + if(argc() == 2) { $r = q("select * from obj left join term on obj_obj = term_hash where term_hash != '' and obj_type = %d and term_hash = '%s' limit 1", intval(TERM_OBJ_THING), @@ -188,7 +224,12 @@ function thing_content(&$a) { ); if($r) { - return replace_macros(get_markup_template('show_thing.tpl'), array( '$header' => t('Show Thing'), '$thing' => $r[0] )); + return replace_macros(get_markup_template('show_thing.tpl'), array( + '$header' => t('Show Thing'), + '$edit' => t('Edit'), + '$delete' => t('Delete'), + '$canedit' => ((local_user() && local_user() == $r[0]['obj_channel']) ? true : false), + '$thing' => $r[0] )); } else { notice( t('item not found.') . EOL); @@ -196,18 +237,82 @@ function thing_content(&$a) { } } - require_once('include/contact_selectors.php'); + if(! local_user()) + return; + + $thing_hash = ''; + + if(argc() == 3 && argv(1) === 'edit') { + $thing_hash = argv(2); + + + $r = q("select * from obj left join term on obj_obj = term_hash where term_hash != '' and obj_type = %d and term_hash = '%s' limit 1", + intval(TERM_OBJ_THING), + dbesc($thing_hash) + ); + + if((! $r) || ($r[0]['obj_channel'] != local_user())) { + notice( t('Permission denied.') . EOL); + return ''; + } + + + $o .= replace_macros(get_markup_template('thing_edit.tpl'),array( + '$thing_hdr' => t('Edit Thing'), + '$multiprof' => feature_enabled(local_user(),'multi_profiles'), + '$profile_lbl' => t('Select a profile'), + '$profile_select' => contact_profile_assign($r[0]['obj_page']), + '$verb_lbl' => t('Select a category of stuff. e.g. I ______ something'), + '$verb_select' => obj_verb_selector($r[0]['obj_verb']), + '$thing_hash' => $thing_hash, + '$thing_lbl' => t('Name of thing e.g. something'), + '$thething' => $r[0]['term'], + '$url_lbl' => t('URL of thing (optional)'), + '$theurl' => $r[0]['url'], + '$img_lbl' => t('URL for photo of thing (optional)'), + '$imgurl' => $r[0]['imgurl'], + '$submit' => t('Submit') + )); + + return $o; + } + + if(argc() == 3 && argv(1) === 'drop') { + $thing_hash = argv(2); + + $r = q("select * from obj left join term on obj_obj = term_hash where term_hash != '' and obj_type = %d and term_hash = '%s' limit 1", + intval(TERM_OBJ_THING), + dbesc($thing_hash) + ); + + if((! $r) || ($r[0]['obj_channel'] != local_user())) { + notice( t('Permission denied.') . EOL); + return ''; + } + + + $x = q("delete from obj where obj_obj = '%s' and obj_type = %d and obj_channel = %d limit 1", + dbesc($thing_hash), + intval(TERM_OBJ_THING), + intval(local_user()) + ); + $x = q("delete from term where term_hash = '%s' and uid = %d limit 1", + dbesc($thing_hash), + intval(local_user()) + ); + return $o; + } $o .= replace_macros(get_markup_template('thing_input.tpl'),array( - '$thing_hdr' => t('Add Stuff to your Profile'), + '$thing_hdr' => t('Add Thing to your Profile'), '$multiprof' => feature_enabled(local_user(),'multi_profiles'), '$profile_lbl' => t('Select a profile'), '$profile_select' => contact_profile_assign(''), '$verb_lbl' => t('Select a category of stuff. e.g. I ______ something'), '$verb_select' => obj_verb_selector(), - '$thing_lbl' => t('Name of thing or stuff e.g. something'), - '$url_lbl' => t('URL of thing or stuff (optional)'), - '$img_lbl' => t('URL for photo of thing or stuff (optional)'), + '$thing_lbl' => t('Name of thing e.g. something'), + '$url_lbl' => t('URL of thing (optional)'), + '$img_lbl' => t('URL for photo of thing (optional)'), '$submit' => t('Submit') )); diff --git a/version.inc b/version.inc index ad14d79b1..37ed2c8fd 100644 --- a/version.inc +++ b/version.inc @@ -1 +1 @@ -2013-12-29.541 +2013-12-30.542 diff --git a/view/theme/redbasic/css/style.css b/view/theme/redbasic/css/style.css index 5f532a861..397148c05 100644 --- a/view/theme/redbasic/css/style.css +++ b/view/theme/redbasic/css/style.css @@ -2445,3 +2445,8 @@ img.mail-list-sender-photo { #sidebar-group-list ul { list-style-type: none; } + +.profile-thing-list img, .thing-show img, .thing-edit-links a { + margin-top: 8px; + margin-right: 15px; +} diff --git a/view/tpl/show_thing.tpl b/view/tpl/show_thing.tpl index d37c9bb1a..2a8c06076 100644 --- a/view/tpl/show_thing.tpl +++ b/view/tpl/show_thing.tpl @@ -4,5 +4,13 @@ {{if $thing.imgurl}}<img src="{{$thing.imgurl}}" width="175" height="175" alt="{{$thing.term}}" />{{/if}} <a href="{{$thing.url}}" >{{$thing.term}}</a> </div> +{{if $canedit}} +<div class="thing-edit-links"> +<a href="thing/edit/{{$thing.term_hash}}" title="{{$edit}}"><i class="icon-pencil thing-edit-icon"></i></a> +<a href="thing/drop/{{$thing.term_hash}}" onclick="return confirmDelete();" title="{{$delete}}" ><i class="icon-remove drop-icons"></i></a> +</div> +<div class="thing-edit-links-end"></div> +{{/if}} + {{/if}} diff --git a/view/tpl/thing_edit.tpl b/view/tpl/thing_edit.tpl new file mode 100644 index 000000000..8379c15ae --- /dev/null +++ b/view/tpl/thing_edit.tpl @@ -0,0 +1,29 @@ +<h2>{{$thing_hdr}}</h2> +<form action="thing" method="post" > +<input type="hidden" name="term_hash" value="{{$thing_hash}}" /> + +{{if $multiprof }} +<div class="thing-profile-label">{{$profile_lbl}}</div> + +<div class="thing-profile">{{$profile_select}}</div> +{{/if}} + +<div class="thing-verb-label">{{$verb_lbl}}</div> + +<div class="thing-verb">{{$verb_select}}</div> + + +<label class="thing-label" for="thing-term">{{$thing_lbl}}</label> +<input type="text" class="thing-input" id="thing-term" name="term" value="{{$thething}}" /> +<div class="thing-field-end"></div> +<label class="thing-label" for="thing-url">{{$url_lbl}}</label> +<input type="text" class="thing-input" id="thing-url" name="url" value="{{$theurl}}" /> +<div class="thing-field-end"></div> +<label class="thing-label" for="thing-img">{{$img_lbl}}</label> +<input type="text" class="thing-input" id="thing-img" name="img" value="{{$imgurl}}" /> +<div class="thing-field-end"></div> + +<div class="thing-end"></div> + +<input type="submit" class="thing-submit" name="submit" value="{{$submit}}" /> +</form> |