diff --git a/boot.php b/boot.php index 94699a273..708d90901 100644 --- a/boot.php +++ b/boot.php @@ -2668,6 +2668,70 @@ function extract_item_authors($arr,$uid) { return array(); }} +if(! function_exists('item_photo_menu')){ +function item_photo_menu($item){ + $a = get_app(); + + if (!isset($a->authors)){ + $rr = q("SELECT id, network, url FROM contact WHERE uid=%d AND self!=1", intval(local_user())); + $authors = array(); + foreach($rr as $r) $authors[$r['url']]= $r; + $a->authors = $authors; + } + + $contact_url=""; + $pm_url=""; + + $status_link=""; + $photo_link=""; + $profile_link = ((strlen($item['author-link'])) ? $item['author-link'] : $item['url']); + $redirect_url = $a->get_baseurl() . '/redir/' . $item['cid'] ; + + + + if(strlen($item['author-link'])) { + if(link_compare($item['author-link'],$item['url']) && ($item['network'] === 'dfrn') && (! $item['self'])) { + $status_link = $redirect_url."?url=status"; + $profile_link = $redirect_url."?url=profile"; + $photos_link = $redirect_url."?url=photos"; + $pm_url = $a->get_baseurl() . '/message/new/' . $item['cid'] ; + $contact_url = $item['self']?"":$a->get_baseurl() . '/contacts/' . $item['cid'] ; + } + elseif(isset($a->authors[$item['author-link']])) { + $redirect_url = $a->get_baseurl() . '/redir/' . $a->authors[$item['author-link']]['id']; + $status_link = $redirect_url."?url=status"; + $profile_link = $redirect_url."?url=profile"; + $photos_link = $redirect_url."?url=photos"; + + if ($a->authors[$item['author-link']]['network']==='dfrn'){ + $pm_url = $a->get_baseurl() . '/message/new/' . $a->authors[$item['author-link']]['id']; + } + $contact_url = $item['self']?"":$a->get_baseurl() . '/contacts/' . $a->authors[$item['author-link']]['id'] ; + + } + } + + + $menu = Array( + t("View status") => $status_link, + t("View profile") => $profile_link, + t("View photos") => $photos_link, + t("Edit contact") => $contact_url, + t("Send PM") => $pm_url, + ); + + + $args = array($item, &$menu); + + call_hooks('item_photo_menu', $args); + + $o = ""; + foreach($menu as $k=>$v){ + if ($v!="") $o .= "
  • $k
  • \n"; + } + return $o; +}} + if(! function_exists('lang_selector')) { function lang_selector() { global $lang; diff --git a/mod/dfrn_poll.php b/mod/dfrn_poll.php index 4b25efe41..77beabf90 100644 --- a/mod/dfrn_poll.php +++ b/mod/dfrn_poll.php @@ -445,7 +445,7 @@ function dfrn_poll_content(&$a) { 'sec' => $sec )); } - + $profile = $r[0]['nickname']; switch($destination_url) { @@ -489,6 +489,10 @@ function dfrn_poll_content(&$a) { dbesc($session_id) ); } +<<<<<<< HEAD +======= + +>>>>>>> 890753e5b545ca5777c6c9084e99cacf42a3b485 goaway($dest); } diff --git a/mod/message.php b/mod/message.php index 7978ecaf2..7f17a362b 100644 --- a/mod/message.php +++ b/mod/message.php @@ -172,7 +172,9 @@ function message_content(&$a) { '$linkurl' => t('Please enter a link URL:') )); - $select = contact_select('messageto','message-to-select', false, 4, true); + $preselect = (isset($a->argv[2])?array($a->argv[2]):false); + + $select = contact_select('messageto','message-to-select', $preselect, 4, true); $tpl = load_view_file('view/prv_message.tpl'); $o .= replace_macros($tpl,array( '$header' => t('Send Private Message'), diff --git a/mod/network.php b/mod/network.php index a304c211f..42c6c0c29 100644 --- a/mod/network.php +++ b/mod/network.php @@ -217,6 +217,7 @@ function network_content(&$a, $update = 0) { intval($a->pager['start']), intval($a->pager['itemspage']) ); + } else { @@ -323,11 +324,12 @@ function network_content(&$a, $update = 0) { $drop = replace_macros($droptpl,array('$id' => $item['id'])); $lock = '
    '; - + $o .= replace_macros($tpl,array( '$id' => $item['item_id'], '$linktitle' => t('View $name\'s profile'), '$profile_url' => $profile_link, + '$item_photo_menu' => item_photo_menu($item), '$name' => $profile_name, '$sparkle' => $sparkle, '$lock' => $lock, @@ -551,6 +553,7 @@ function network_content(&$a, $update = 0) { $indent .= ' shiny'; + // Build the HTML $tmp_item = replace_macros($template,array( @@ -561,6 +564,7 @@ function network_content(&$a, $update = 0) { '$wall' => t('Wall-to-Wall'), '$vwall' => t('via Wall-To-Wall:'), '$profile_url' => $profile_link, + '$item_photo_menu' => item_photo_menu($item), '$name' => $profile_name, '$thumb' => $profile_avatar, '$osparkle' => $osparkle, @@ -604,4 +608,4 @@ function network_content(&$a, $update = 0) { } return $o; -} \ No newline at end of file +} diff --git a/mod/profile.php b/mod/profile.php index 17f6a2d45..ab1e8f738 100644 --- a/mod/profile.php +++ b/mod/profile.php @@ -454,10 +454,12 @@ function profile_content(&$a, $update = 0) { if(strcmp(datetime_convert('UTC','UTC',$item['created']),datetime_convert('UTC','UTC','now - 12 hours')) > 0) $indent .= ' shiny'; + $tmp_item = replace_macros($template,array( '$id' => $item['item_id'], '$linktitle' => t('View $name\'s profile'), '$profile_url' => $profile_link, + '$item_photo_menu' => item_photo_menu($item), '$name' => $profile_name, '$thumb' => $profile_avatar, '$sparkle' => $sparkle, diff --git a/mod/search.php b/mod/search.php index db7279fb5..64281dfcf 100644 --- a/mod/search.php +++ b/mod/search.php @@ -115,6 +115,7 @@ function search_content(&$a) { '$id' => $item['item_id'], '$linktitle' => t('View $name\'s profile'), '$profile_url' => $profile_link, + '$item_photo_menu' => item_photo_menu($item), '$name' => $profile_name, '$sparkle' => $sparkle, '$lock' => $lock, diff --git a/view/search_item.tpl b/view/search_item.tpl index f890bdee5..02c31fe14 100644 --- a/view/search_item.tpl +++ b/view/search_item.tpl @@ -1,9 +1,17 @@
    -
    +
    $name + menu +
    +
      + $item_photo_menu +
    +
    diff --git a/view/theme/duepuntozero/photo-menu.jpg b/view/theme/duepuntozero/photo-menu.jpg new file mode 100644 index 000000000..fde5eb535 Binary files /dev/null and b/view/theme/duepuntozero/photo-menu.jpg differ diff --git a/view/theme/duepuntozero/style.css b/view/theme/duepuntozero/style.css index 0d59b6590..bfa004a65 100644 --- a/view/theme/duepuntozero/style.css +++ b/view/theme/duepuntozero/style.css @@ -866,6 +866,37 @@ input#dfrn-url { margin-bottom: 10px; width: 100px; } +.wall-item-photo-menu-button { + display: block; + position: absolute; + background-image: url("photo-menu.jpg"); + background-position: top left; + background-repeat: no-repeat; + margin: 0px; padding: 0px; + width: 16px; + height: 16px; + top: 74px; left:10px; + overflow: hidden; + text-indent: 40px; + display: none; + +} +.wall-item-photo-menu { + width: auto; + border: 2px solid #444444; + background: #FFFFFF; + position: absolute; + left: 10px; top: 90px; + display: none; + z-index: 10000; +} +.wall-item-photo-menu ul { margin:0px; padding: 0px; list-style: none } +.wall-item-photo-menu li a { display: block; padding: 2px; } +.wall-item-photo-menu li a:hover { color: #FFFFFF; background: #3465A4; text-decoration: none; } + + +.comment .wall-item-photo-menu-button { top: 44px;} +.comment .wall-item-photo-menu { top: 60px; } .wallwall .wwto { left: 50px; @@ -878,6 +909,7 @@ input#dfrn-url { width: 30px; height: 30px; } + .wallwall .wall-item-photo-end { clear: both; } diff --git a/view/theme/loozah/photo-menu.jpg b/view/theme/loozah/photo-menu.jpg new file mode 100644 index 000000000..bd39696a2 Binary files /dev/null and b/view/theme/loozah/photo-menu.jpg differ diff --git a/view/theme/loozah/style.css b/view/theme/loozah/style.css index 566220711..d6ddb26dd 100644 --- a/view/theme/loozah/style.css +++ b/view/theme/loozah/style.css @@ -959,6 +959,7 @@ input#dfrn-url { .wall-item-content-wrapper { margin-top: 10px; border: 1px solid #CCC; + position: relative; } .wall-item-content-wrapper.comment { @@ -973,6 +974,35 @@ input#dfrn-url { width: 100px; float: left; } + +.wall-item-photo-menu-button { + display: block; + position: absolute; + background-image: url("photo-menu.jpg"); + background-position: top left; + background-repeat: no-repeat; + margin: 0px; padding: 0px; + width: 16px; + height: 16px; + top: 74px; left:10px; + overflow: hidden; + text-indent: 40px; + display: none; +} +.wall-item-photo-menu { + width: auto; + border: 2px solid #444444; + background: #FFFFFF; + position: absolute; + left: 10px; top: 90px; + display: none; + z-index: 10000; +} +.wall-item-photo-menu ul { margin:0px; padding: 0px; list-style: none } +.wall-item-photo-menu li a { display: block; padding: 2px; } +.wall-item-photo-menu li a:hover { color: #FFFFFF; background: #3465A4; text-decoration: none; } + + .wall-item-arrowphoto-wrapper { margin-top: 40px; margin-right: 20px; diff --git a/view/wall_item.tpl b/view/wall_item.tpl index 4c2a3fbf4..893483259 100644 --- a/view/wall_item.tpl +++ b/view/wall_item.tpl @@ -1,9 +1,18 @@
    -
    +
    - $name + $name + + menu +
    +
      + $item_photo_menu +
    +