diff options
41 files changed, 351 insertions, 156 deletions
diff --git a/addon/statusnet/statusnet.php b/addon/statusnet/statusnet.php index bc47242fc..c7e16b56e 100644 --- a/addon/statusnet/statusnet.php +++ b/addon/statusnet/statusnet.php @@ -133,7 +133,7 @@ function statusnet_settings(&$a,&$s) { $s .= '<input id="statusnet-consumerkey" type="text" name="statusnet-consumerkey" size="35" /><br />'; $s .= '<label id="statusnet-consumersecret-label" for="statusnet-consumersecret">'. t('OAuth Consumer Secret') .'</label>'; $s .= '<input id="statusnet-consumersecret" type="text" name="statusnet-consumersecret" size="35" /><br />'; - $s .= '<label id="statusnet-baseapi-label" for="statusnet-baseapi">'. t('Base API Path (remember the trailing /)') .'</label>'; + $s .= '<label id="statusnet-baseapi-label" for="statusnet-baseapi">'. t("Base API Path \x28remember the trailing /\x29") .'</label>'; $s .= '<input id="statusnet-baseapi" type="text" name="statusnet-baseapi" size="35" /><br />'; $s .= '</div><div class="clear"></div>'; $s .= '<div class="settings-submit-wrapper" ><input type="submit" name="submit" class="settings-submit" value="' . t('Submit') . '" /></div>'; @@ -2,8 +2,8 @@ set_time_limit(0); -define ( 'BUILD_ID', 1038 ); -define ( 'FRIENDIKA_VERSION', '2.10.0906' ); +define ( 'BUILD_ID', 1039 ); +define ( 'FRIENDIKA_VERSION', '2.10.0907' ); define ( 'DFRN_PROTOCOL_VERSION', '2.1' ); define ( 'EOL', "<br />\r\n" ); @@ -1804,7 +1804,7 @@ function like_puller($a,$item,&$arr,$mode) { if((activity_match($item['verb'],$verb)) && ($item['id'] != $item['parent'])) { $url = $item['author-link']; - if(($item['network'] === 'dfrn') && (! $item['self']) && ($item['author-link'] == $item['url'])) { + if((local_user()) && (local_user() == $item['uid']) && ($item['network'] === 'dfrn') && (! $item['self']) && (link_compare($item['author-link'],$item['url']))) { $url = $a->get_baseurl() . '/redir/' . $item['contact-id']; $sparkle = ' class="sparkle" '; } @@ -1978,9 +1978,11 @@ function smilies($s) { $a = get_app(); return str_replace( - array( '<3', ':-)', ';-)', ':-(', ':(', ':-P', ':-"', ':-x', ':-X', ':-D', '8-|', '8-O'), + array( '<3', '</3', '<\\3', ':-)', ';-)', ':-(', ':(', ':-P', ':-"', ':-x', ':-X', ':-D', '8-|', '8-O'), array( '<img src="' . $a->get_baseurl() . '/images/smiley-heart.gif" alt="<3" />', + '<img src="' . $a->get_baseurl() . '/images/smiley-brokenheart.gif" alt="</3" />', + '<img src="' . $a->get_baseurl() . '/images/smiley-brokenheart.gif" alt="<\\3" />', '<img src="' . $a->get_baseurl() . '/images/smiley-smile.gif" alt=":-)" />', '<img src="' . $a->get_baseurl() . '/images/smiley-wink.gif" alt=";-)" />', '<img src="' . $a->get_baseurl() . '/images/smiley-frown.gif" alt=":-(" />', @@ -2447,3 +2449,16 @@ function feed_salmonlinks($nick) { return $salmon; }} +if(! function_exists('get_plink')) { +function get_plink($item) { + $a = get_app(); + $plink = (((x($item,'plink')) && (! $item['private'])) ? '<div class="wall-item-links-wrapper"><a href="' + . $item['plink'] . '" title="' . t('link to source') . '"><img src="' . $a->get_baseurl() . '/images/remote-link.gif" alt="' . t('link to source') . '" /></a></div>' : ''); + return $plink; +}} + +if(! function_exists('unamp')) { +function unamp($s) { + return str_replace('&', '&', $s); +}} + diff --git a/database.sql b/database.sql index 55671db85..93e444b6b 100644 --- a/database.sql +++ b/database.sql @@ -181,6 +181,7 @@ CREATE TABLE IF NOT EXISTS `item` ( `object` text NOT NULL, `target-type` char(255) NOT NULL, `target` text NOT NULL, + `plink` char(255) NOT NULL, `resource-id` char(255) NOT NULL, `tag` mediumtext NOT NULL, `inform` mediumtext NOT NULL, diff --git a/images/remote-link.gif b/images/remote-link.gif Binary files differnew file mode 100644 index 000000000..008397fe8 --- /dev/null +++ b/images/remote-link.gif diff --git a/images/smiley-brokenheart.gif b/images/smiley-brokenheart.gif Binary files differnew file mode 100644 index 000000000..79ca0c31b --- /dev/null +++ b/images/smiley-brokenheart.gif diff --git a/include/items.php b/include/items.php index b5bdd7833..0951adbae 100644 --- a/include/items.php +++ b/include/items.php @@ -246,7 +246,7 @@ function get_atom_elements($feed,$item) { $res['uri'] = unxmlify($item->get_id()); $res['title'] = unxmlify($item->get_title()); $res['body'] = unxmlify($item->get_content()); - + $res['plink'] = unxmlify($item->get_link(0)); // look for a photo. We should check media size and find the best one, // but for now let's just find any author photo @@ -350,7 +350,7 @@ function get_atom_elements($feed,$item) { '[youtube]$1[/youtube]', $res['body']); $res['body'] = oembed_html2bbcode($res['body']); - + $config = HTMLPurifier_Config::createDefault(); $config->set('Cache.DefinitionImpl', null); @@ -363,7 +363,7 @@ function get_atom_elements($feed,$item) { $res['body'] = html2bbcode($res['body']); } - + $allow = $item->get_item_tags(NAMESPACE_DFRN,'comment-allow'); if($allow && $allow[0]['data'] == 1) $res['last-child'] = 1; @@ -591,6 +591,7 @@ function item_store($arr,$force_parent = false) { $arr['object'] = ((x($arr,'object')) ? trim($arr['object']) : ''); $arr['target-type'] = ((x($arr,'target-type')) ? notags(trim($arr['target-type'])) : ''); $arr['target'] = ((x($arr,'target')) ? trim($arr['target']) : ''); + $arr['plink'] = ((x($arr,'plink')) ? notags(trim($arr['plink'])) : ''); $arr['allow_cid'] = ((x($arr,'allow_cid')) ? trim($arr['allow_cid']) : ''); $arr['allow_gid'] = ((x($arr,'allow_gid')) ? trim($arr['allow_gid']) : ''); $arr['deny_cid'] = ((x($arr,'deny_cid')) ? trim($arr['deny_cid']) : ''); @@ -1418,7 +1419,7 @@ function atom_entry($item,$type,$author,$owner,$comment = false) { $o .= '<updated>' . xmlify(datetime_convert('UTC','UTC',$item['edited'] . '+00:00',ATOM_TIME)) . '</updated>' . "\r\n"; $o .= '<dfrn:env>' . base64url_encode($item['body'], true) . '</dfrn:env>' . "\r\n"; $o .= '<content type="' . $type . '" >' . xmlify(($type === 'html') ? bbcode($item['body']) : $item['body']) . '</content>' . "\r\n"; - $o .= '<link rel="alternate" href="' . xmlify($a->get_baseurl() . '/display/' . $owner['nickname'] . '/' . $item['id']) . '" />' . "\r\n"; + $o .= '<link rel="alternate" type="text/html" href="' . xmlify($a->get_baseurl() . '/display/' . $owner['nickname'] . '/' . $item['id']) . '" />' . "\r\n"; if($comment) $o .= '<dfrn:comment-allow>' . intval($item['last-child']) . '</dfrn:comment-allow>' . "\r\n"; diff --git a/include/main.js b/include/main.js index abd097e54..824f2dfdf 100644 --- a/include/main.js +++ b/include/main.js @@ -108,7 +108,10 @@ prev = 'live-' + src; in_progress = true; - $.get('update_' + src + '?p=' + profile_uid + '&msie=' + ((msie) ? 1 : 0),function(data) { + var udargs = ((netargs.length) ? '/' + netargs : ''); + var update_url = 'update_' + src + udargs + '?p=' + profile_uid + '&page=' + profile_page + '&msie=' + ((msie) ? 1 : 0); + + $.get(update_url,function(data) { in_progress = false; $('.wall-item-outside-wrapper',data).each(function() { var ident = $(this).attr('id'); @@ -225,6 +228,10 @@ if(timer) clearTimeout(timer); timer = setTimeout(NavUpdate,10); } + if(data.reload) { + window.location.href=data.reload; + } + }, "json" ); diff --git a/include/oembed.php b/include/oembed.php index 4d6b0af16..4d2b7185e 100644 --- a/include/oembed.php +++ b/include/oembed.php @@ -79,22 +79,31 @@ function oe_get_inner_html( $node ) { * and replace it with [embed]url[/embed] */ function oembed_html2bbcode($text) { - // If it doesn't parse at all, just return the text. - $dom = @DOMDocument::loadHTML($text); - if(! $dom) + // start parser only if 'oembed' is in text + if (strpos($text, "oembed")){ + + // convert non ascii chars to html entities + $html_text = mb_convert_encoding($text, 'HTML-ENTITIES', mb_detect_encoding($text)); + + // If it doesn't parse at all, just return the text. + $dom = @DOMDocument::loadHTML($html_text); + if(! $dom) + return $text; + $xpath = new DOMXPath($dom); + $attr = "oembed"; + + $xattr = oe_build_xpath("class","oembed"); + $entries = $xpath->query("//span[$xattr]"); + + $xattr = oe_build_xpath("rel","oembed"); + foreach($entries as $e) { + $href = $xpath->evaluate("a[$xattr]/@href", $e)->item(0)->nodeValue; + if(!is_null($href)) $e->parentNode->replaceChild(new DOMText("[embed]".$href."[embed]"), $e); + } + return oe_get_inner_html( $dom->getElementsByTagName("body")->item(0) ); + } else { return $text; - $xpath = new DOMXPath($dom); - $attr = "oembed"; - - $xattr = oe_build_xpath("class","oembed"); - $entries = $xpath->query("//span[$xattr]"); - - $xattr = oe_build_xpath("rel","oembed"); - foreach($entries as $e) { - $href = $xpath->evaluate("a[$xattr]/@href", $e)->item(0)->nodeValue; - if(!is_null($href)) $e->parentNode->replaceChild(new DOMText("[embed]".$href."[embed]"), $e); - } - return oe_get_inner_html( $dom->getElementsByTagName("body")->item(0) ); + } } ?>
\ No newline at end of file diff --git a/mod/dfrn_notify.php b/mod/dfrn_notify.php index 9397cfaf9..180a8edfd 100644 --- a/mod/dfrn_notify.php +++ b/mod/dfrn_notify.php @@ -253,9 +253,6 @@ function dfrn_notify_post(&$a) { $htmlbody . "\n" . "--" . $msg['mimeboundary'] . "--\n"; // message ending - logger("message headers: " . $msg['headers']); - logger("message body: " . $mail_tpl); - // send the message $res = mail( diff --git a/mod/display.php b/mod/display.php index 3215ae90a..bdf6a6f97 100644 --- a/mod/display.php +++ b/mod/display.php @@ -153,7 +153,8 @@ function display_content(&$a) { } if($item['last-child']) { $comment = replace_macros($cmnt_tpl,array( - '$return_path' => $_SESSION['return_url'], + '$return_path' => '', + '$jsreload' => $_SESSION['return_url'], '$type' => 'wall-comment', '$id' => $item['item_id'], '$parent' => $item['parent'], @@ -272,6 +273,7 @@ function display_content(&$a) { '$owner_url' => $owner_url, '$owner_photo' => $owner_photo, '$owner_name' => $owner_name, + '$plink' => get_plink($item), '$drop' => $drop, '$vote' => $likebuttons, '$like' => $like, diff --git a/mod/follow.php b/mod/follow.php index eaee7d5ac..28441eae8 100644 --- a/mod/follow.php +++ b/mod/follow.php @@ -19,15 +19,15 @@ function follow_post(&$a) { if(count($links)) { foreach($links as $link) { if($link['@attributes']['rel'] === NAMESPACE_DFRN) - $dfrn = $link['@attributes']['href']; + $dfrn = unamp($link['@attributes']['href']); if($link['@attributes']['rel'] === 'salmon') - $notify = $link['@attributes']['href']; + $notify = unamp($link['@attributes']['href']); if($link['@attributes']['rel'] === NAMESPACE_FEED) - $poll = $link['@attributes']['href']; + $poll = unamp($link['@attributes']['href']); if($link['@attributes']['rel'] === 'http://microformats.org/profile/hcard') - $hcard = $link['@attributes']['href']; + $hcard = unamp($link['@attributes']['href']); if($link['@attributes']['rel'] === 'http://webfinger.net/rel/profile-page') - $profile = $link['@attributes']['href']; + $profile = unamp($link['@attributes']['href']); } @@ -43,10 +43,10 @@ function follow_post(&$a) { if(strpos($link['@attributes']['href'],'@') === false) { if(isset($profile)) { if($link['@attributes']['href'] !== $profile) - $alias = $link['@attributes']['href']; + $alias = unamp($link['@attributes']['href']); } else - $profile = $link['@attributes']['href']; + $profile = unamp($link['@attributes']['href']); } } } @@ -103,7 +103,7 @@ function follow_post(&$a) { $ret = scrape_feed($url); if(count($ret) && ($ret['feed_atom'] || $ret['feed_rss'])) { - $poll = ((x($ret,'feed_atom')) ? $ret['feed_atom'] : $ret['feed_rss']); + $poll = ((x($ret,'feed_atom')) ? unamp($ret['feed_atom']) : unamp($ret['feed_rss'])); $vcard = array(); require_once('simplepie/simplepie.inc'); $feed = new SimplePie(); @@ -116,27 +116,35 @@ function follow_post(&$a) { $vcard['photo'] = $feed->get_image_url(); $author = $feed->get_author(); if($author) { - $vcard['fn'] = trim($author->get_name()); - $vcard['nick'] = strtolower($vcard['fn']); + $vcard['fn'] = unxmlify(trim($author->get_name())); + if(! $vcard['fn']) + $vcard['fn'] = trim(unxmlify($author->get_email())); + if(strpos($vcard['fn'],'@') !== false) + $vcard['fn'] = substr($vcard['fn'],0,strpos($vcard['fn'],'@')); + $vcard['nick'] = strtolower(notags(unxmlify($vcard['fn']))); if(strpos($vcard['nick'],' ')) $vcard['nick'] = trim(substr($vcard['nick'],0,strpos($vcard['nick'],' '))); - $email = $author->get_email(); + $email = unxmlify($author->get_email()); } else { $item = $feed->get_item(0); if($item) { $author = $item->get_author(); if($author) { - $vcard['fn'] = trim($author->get_name()); - $vcard['nick'] = strtolower($vcard['fn']); + $vcard['fn'] = trim(unxmlify($author->get_name())); + if(! $vcard['fn']) + $vcard['fn'] = trim(unxmlify($author->get_email())); + if(strpos($vcard['fn'],'@') !== false) + $vcard['fn'] = substr($vcard['fn'],0,strpos($vcard['fn'],'@')); + $vcard['nick'] = strtolower(unxmlify($vcard['fn'])); if(strpos($vcard['nick'],' ')) $vcard['nick'] = trim(substr($vcard['nick'],0,strpos($vcard['nick'],' '))); - $email = $author->get_email(); + $email = unxmlify($author->get_email()); } if(! $vcard['photo']) { $rawmedia = $item->get_item_tags('http://search.yahoo.com/mrss/','thumbnail'); if($rawmedia && $rawmedia[0]['attribs']['']['url']) - $vcard['photo'] = $rawmedia[0]['attribs']['']['url']; + $vcard['photo'] = unxmlify($rawmedia[0]['attribs']['']['url']); } } } @@ -150,6 +158,9 @@ function follow_post(&$a) { logger('follow: poll=' . $poll . ' notify=' . $notify . ' profile=' . $profile . ' vcard=' . print_r($vcard,true)); + $vcard['fn'] = notags($vcard['fn']); + $vcard['nick'] = notags($vcard['nick']); + // do we have enough information? if(! ((x($vcard['fn'])) && ($poll) && ($profile))) { @@ -157,6 +168,7 @@ function follow_post(&$a) { goaway($_SESSION['return_url']); } + if(! $notify) { notice( t('Limited profile. This person will be unable to receive direct/personal notifications from you.') . EOL); } diff --git a/mod/item.php b/mod/item.php index 2cc2b9eb2..8c6b181c0 100644 --- a/mod/item.php +++ b/mod/item.php @@ -35,7 +35,9 @@ function item_post(&$a) { ); if(! count($r)) { notice( t('Unable to locate original post.') . EOL); - goaway($a->get_baseurl() . "/" . $_POST['return'] ); + if(x($_POST,'return')) + goaway($a->get_baseurl() . "/" . $_POST['return'] ); + killme(); } $parent_item = $r[0]; if($parent_item['contact-id'] && $uid) { @@ -53,7 +55,9 @@ function item_post(&$a) { if(! can_write_wall($a,$profile_uid)) { notice( t('Permission denied.') . EOL) ; - return; + if(x($_POST,'return')) + goaway($a->get_baseurl() . "/" . $_POST['return'] ); + killme(); } $user = null; @@ -92,8 +96,9 @@ function item_post(&$a) { if(! strlen($body)) { notice( t('Empty post discarded.') . EOL ); - goaway($a->get_baseurl() . "/" . $_POST['return'] ); - + if(x($_POST,'return')) + goaway($a->get_baseurl() . "/" . $_POST['return'] ); + killme(); } // get contact info for poster @@ -429,10 +434,11 @@ function item_post(&$a) { } } - $r = q("UPDATE `item` SET `parent` = %d, `parent-uri` = '%s', `changed` = '%s', `last-child` = 1, `visible` = 1 + $r = q("UPDATE `item` SET `parent` = %d, `parent-uri` = '%s', `plink` = '%s', `changed` = '%s', `last-child` = 1, `visible` = 1 WHERE `id` = %d LIMIT 1", intval($parent), dbesc(($parent == $post_id) ? $uri : $parent_item['uri']), + dbesc($a->get_baseurl() . '/display/' . $user['nickname'] . '/' . $post_id), dbesc(datetime_convert()), intval($post_id) ); @@ -490,10 +496,17 @@ function item_post(&$a) { } } - if((x($_POST,'return')) && strlen($_POST['return'])) + logger('post_complete'); + if((x($_POST,'return')) && strlen($_POST['return'])) { + logger('return: ' . $_POST['return']); goaway($a->get_baseurl() . "/" . $_POST['return'] ); - + } $json = array('success' => 1); + if(x($_POST,'jsreload') && strlen($_POST['jsreload'])) + $json['reload'] = $a->get_baseurl() . '/' . $_POST['jsreload']; + + logger('post_json: ' . print_r($json,true), LOGGER_DEBUG); + echo json_encode($json); killme(); // NOTREACHED @@ -544,7 +557,7 @@ function item_content(&$a) { // generate a resource-id and therefore aren't intimately linked to the item. if(strlen($item['resource-id'])) { - $q("DELETE FROM `photo` WHERE `resource-id` = '%s' AND `uid` = %d ", + q("DELETE FROM `photo` WHERE `resource-id` = '%s' AND `uid` = %d ", dbesc($item['resource-id']), intval($item['uid']) ); diff --git a/mod/message.php b/mod/message.php index 7615f22be..ef3be2c5e 100644 --- a/mod/message.php +++ b/mod/message.php @@ -2,11 +2,6 @@ require_once('include/acl_selectors.php'); -function message_init(&$a) { - - -} - function message_post(&$a) { if(! local_user()) { @@ -69,6 +64,43 @@ function message_post(&$a) { if(count($r)) $post_id = $r[0]['id']; + /** + * + * When a photo was uploaded into the message using the (profile wall) ajax + * uploader, The permissions are initially set to disallow anybody but the + * owner from seeing it. This is because the permissions may not yet have been + * set for the post. If it's private, the photo permissions should be set + * appropriately. But we didn't know the final permissions on the post until + * now. So now we'll look for links of uploaded messages that are in the + * post and set them to the same permissions as the post itself. + * + */ + + $match = null; + + if(preg_match_all("/\[img\](.+?)\[\/img\]/",$body,$match)) { + $images = $match[1]; + if(count($images)) { + foreach($images as $image) { + if(! stristr($image,$a->get_baseurl() . '/photo/')) + continue; + $image_uri = substr($image,strrpos($image,'/') + 1); + $image_uri = substr($image_uri,0, strpos($image_uri,'-')); + $r = q("UPDATE `photo` SET `allow_cid` = '%s' + WHERE `resource-id` = '%s' AND `album` = '%s' AND `uid` = %d ", + dbesc('<' . $recipient . '>'), + dbesc($image_uri), + dbesc( t('Wall Photos')), + intval(local_user()) + ); + } + } + } + + + + + $php_path = ((strlen($a->config['php_path'])) ? $a->config['php_path'] : 'php'); if($post_id) { @@ -80,7 +112,6 @@ function message_post(&$a) { notice( t('Message could not be sent.') . EOL ); } return; - } function message_content(&$a) { diff --git a/mod/network.php b/mod/network.php index f09b302e9..79a2f2b38 100644 --- a/mod/network.php +++ b/mod/network.php @@ -39,22 +39,22 @@ function network_content(&$a, $update = 0) { $group = 0; $nouveau = false; + require_once('include/acl_selectors.php'); - if(! $update) { - $o .= '<script> $(document).ready(function() { $(\'#nav-network-link\').addClass(\'nav-selected\'); });</script>'; + if(($a->argc > 2) && $a->argv[2] === 'new') + $nouveau = true; - if(($a->argc > 2) && $a->argv[2] === 'new') + if($a->argc > 1) { + if($a->argv[1] === 'new') $nouveau = true; - - // pull out the group here because the updater might have different args - if($a->argc > 1) { - if($a->argv[1] === 'new') - $nouveau = true; - else { - $group = intval($a->argv[1]); - $group_acl = array('allow_gid' => '<' . $group . '>'); - } + else { + $group = intval($a->argv[1]); + $group_acl = array('allow_gid' => '<' . $group . '>'); } + } + + if(! $update) { + $o .= '<script> $(document).ready(function() { $(\'#nav-network-link\').addClass(\'nav-selected\'); });</script>'; $_SESSION['return_url'] = $a->cmd; @@ -68,7 +68,6 @@ function network_content(&$a, $update = 0) { '$nickname' => $a->user['nickname'] )); - require_once('include/acl_selectors.php'); $tpl = load_view_file("view/jot.tpl"); @@ -106,10 +105,10 @@ function network_content(&$a, $update = 0) { // filtering by group and also you aren't writing a comment (the last // criteria is discovered in javascript). - if($a->pager['start'] == 0 && $a->argc == 1) { $o .= '<div id="live-network"></div>' . "\r\n"; - $o .= "<script> var profile_uid = " . $_SESSION['uid'] . "; </script>\r\n"; - } + $o .= "<script> var profile_uid = " . $_SESSION['uid'] + . "; var netargs = '" . substr($a->cmd,8) + . "'; var profile_page = " . $a->pager['page'] . "; </script>\r\n"; } @@ -134,6 +133,8 @@ function network_content(&$a, $update = 0) { intval($_SESSION['uid']) ); if(! count($r)) { + if($update) + killme(); notice( t('No such group') . EOL ); goaway($a->get_baseurl() . '/network'); return; // NOTREACHED @@ -340,7 +341,8 @@ function network_content(&$a, $update = 0) { if($item['last-child']) { $comment = replace_macros($cmnt_tpl,array( - '$return_path' => '', // $_SESSION['return_url'], + '$return_path' => '', + '$jsreload' => '', // $_SESSION['return_url'], '$type' => 'net-comment', '$id' => $item['item_id'], '$parent' => $item['parent'], @@ -425,6 +427,7 @@ function network_content(&$a, $update = 0) { '$owner_url' => $owner_url, '$owner_photo' => $owner_photo, '$owner_name' => $owner_name, + '$plink' => get_plink($item), '$drop' => $drop, '$vote' => $likebuttons, '$like' => $like, diff --git a/mod/photos.php b/mod/photos.php index 9acde458d..27cb1beb1 100644 --- a/mod/photos.php +++ b/mod/photos.php @@ -1048,7 +1048,8 @@ function photos_content(&$a) { if($can_post || can_write_wall($a,$owner_uid)) { if($link_item['last-child']) { $o .= replace_macros($cmnt_tpl,array( - '$return_path' => $return_url, + '$return_path' => '', + '$jsreload' => $return_url, '$type' => 'wall-comment', '$id' => $link_item['id'], '$parent' => $link_item['id'], @@ -1087,7 +1088,8 @@ function photos_content(&$a) { if($can_post || can_write_wall($a,$owner_uid)) { if($link_item['last-child']) { $o .= replace_macros($cmnt_tpl,array( - '$return_path' => $return_url, + '$return_path' => '', + '$jsreload' => $return_url, '$type' => 'wall-comment', '$id' => $link_item['id'], '$parent' => $link_item['id'], @@ -1115,7 +1117,8 @@ function photos_content(&$a) { if($item['last-child']) { $comment = replace_macros($cmnt_tpl,array( - '$return_path' => $return_url, + '$return_path' => '', + '$jsreload' => $return_url, '$type' => 'wall-comment', '$id' => $item['item_id'], '$parent' => $item['parent'], diff --git a/mod/profile.php b/mod/profile.php index 57abc479d..46d13298e 100644 --- a/mod/profile.php +++ b/mod/profile.php @@ -82,7 +82,6 @@ function profile_content(&$a, $update = 0) { $is_owner = ((local_user()) && (local_user() == $a->profile['profile_uid']) ? true : false); - if(! $update) { if(x($_GET,'tab')) $tab = notags(trim($_GET['tab'])); @@ -161,11 +160,11 @@ function profile_content(&$a, $update = 0) { // This is ugly, but we can't pass the profile_uid through the session to the ajax updater, // because browser prefetching might change it on us. We have to deliver it with the page. - if($tab === 'posts' && (! $a->pager['start'])) { + if($tab === 'posts') { $o .= '<div id="live-profile"></div>' . "\r\n"; - $o .= "<script> var profile_uid = " . $a->profile['profile_uid'] . "; </script>\r\n"; + $o .= "<script> var profile_uid = " . $a->profile['profile_uid'] + . "; var netargs = ''; var profile_page = " . $a->pager['page'] . "; </script>\r\n"; } - } // Construct permissions @@ -293,7 +292,8 @@ function profile_content(&$a, $update = 0) { } if($item['last-child']) { $comment = replace_macros($cmnt_tpl,array( - '$return_path' => '', // $_SESSION['return_url'], + '$return_path' => '', + '$jsreload' => '', // $_SESSION['return_url'], '$type' => 'wall-comment', '$id' => $item['item_id'], '$parent' => $item['parent'], @@ -371,6 +371,7 @@ function profile_content(&$a, $update = 0) { '$lock' => $lock, '$location' => $location, '$indent' => $indent, + '$plink' => get_plink($item), '$drop' => $drop, '$like' => $like, '$vote' => $likebuttons, diff --git a/mod/update_network.php b/mod/update_network.php index 35e968dba..cf9f11f58 100644 --- a/mod/update_network.php +++ b/mod/update_network.php @@ -3,7 +3,7 @@ // See update_profile.php for documentation require_once('mod/network.php'); - +require_once('include/group.php'); function update_network_content(&$a) { diff --git a/simplepie/simplepie.inc b/simplepie/simplepie.inc index 185e17bcc..c3ba02b7d 100644 --- a/simplepie/simplepie.inc +++ b/simplepie/simplepie.inc @@ -9226,6 +9226,7 @@ class SimplePie_Misc function absolutize_url($relative, $base) { +return $relative; $iri = SimplePie_IRI::absolutize(new SimplePie_IRI($base), $relative); return $iri->get_iri(); } diff --git a/tinymce/jscripts/tiny_mce/themes/advanced/img/icons.gif b/tinymce/jscripts/tiny_mce/themes/advanced/img/icons.gif Binary files differindex e46de5333..c6a75fc13 100644 --- a/tinymce/jscripts/tiny_mce/themes/advanced/img/icons.gif +++ b/tinymce/jscripts/tiny_mce/themes/advanced/img/icons.gif diff --git a/update.php b/update.php index 84eaebe18..131014d4a 100644 --- a/update.php +++ b/update.php @@ -370,3 +370,7 @@ function update_1037() { } +function update_1038() { + q("ALTER TABLE `item` ADD `plink` CHAR( 255 ) NOT NULL AFTER `target` "); +} + diff --git a/util/string_translator.php b/util/string_translator.php index 4d24f7a6f..4112d9506 100644 --- a/util/string_translator.php +++ b/util/string_translator.php @@ -4,6 +4,7 @@ <style> textarea { width: 100% } .no { background: #ffdddd; } + label { border-bottom: 1px solid #888; } </style> </head> <body> @@ -78,14 +79,13 @@ function strhex($string) { echo "<h1>Translator</h1>"; -echo "<p>Utility to translate <code>string.php</code> file."; -echo " Need write permission to language file you want to modify</p>"; +echo "<small>Utility to translate <code>string.php</code> file."; +echo " Need write permission to language file you want to modify</small>"; echo "<p>Installed languages:"; -echo "<ul>"; foreach($LANGS as $l){ - echo "<li><a href='?lang=$l'>$l</a></li>"; + echo "<a href='?lang=$l'>$l</a>, "; } -echo "</ul></p>"; +echo "</p>"; $strings['en'] = loadstrings(); @@ -156,7 +156,7 @@ if (isset($_GET['lang'])){ $istranslate = $translation != '' ? 'yes':'no'; echo "<dl class='$istranslate'>"; - echo "<dt><label for='$id'>".htmlspecialchars($v)."</label></dt>"; + echo "<dt><pre><label for='$id'>".htmlspecialchars($v)."</label></pre></dt>"; echo "<dd><textarea id='$id' name='$id'>$translation</textarea></dd>"; echo "</dl>"; } diff --git a/util/strings.php b/util/strings.php index b6360e971..a7ef2361a 100644 --- a/util/strings.php +++ b/util/strings.php @@ -57,18 +57,6 @@ $a->strings['December'] = 'December'; $a->strings['Birthdays this week:'] = 'Birthdays this week:'; $a->strings["\x28Adjusted for local time\x29"] = "\x28Adjusted for local time\x29"; $a->strings['[today]'] = '[today]'; -$a->strings['Unable to locate original post.'] = 'Unable to locate original post.'; -$a->strings['Empty post discarded.'] = 'Empty post discarded.'; -$a->strings['Wall Photos'] = 'Wall Photos'; -$a->strings[" commented on your item at "] = " commented on your item at "; -$a->strings[" posted on your profile wall at "] = " posted on your profile wall at "; -$a->strings['System error. Post not saved.'] = 'System error. Post not saved.'; -$a->strings['This message was sent to you by '] = 'This message was sent to you by '; -$a->strings[', a member of the Friendika social network.'] = ', a member of the Friendika social network.'; -$a->strings['You may visit them online at'] = 'You may visit them online at'; -$a->strings['Please contact the sender by replying to this post if you do not wish to receive these messages.'] = 'Please contact the sender by replying to this post if you do not wish to receive these messages.'; -$a->strings['posted an update.'] = 'posted an update.'; -$a->strings['Item not found.'] = 'Item not found.'; $a->strings["Invite Friends"] = "Invite Friends"; $a->strings['Connect/Follow [profile address]'] = 'Connect/Follow [profile address]'; $a->strings['Example: bob@example.com, http://example.com/barbara'] = 'Example: bob@example.com, http://example.com/barbara'; @@ -130,7 +118,7 @@ $a->strings['Unable to set your contact credentials on our system.'] = 'Unable t $a->strings['Unable to update your contact profile details on our system'] = 'Unable to update your contact profile details on our system'; $a->strings["Connection accepted at "] = "Connection accepted at "; $a->strings['Administrator'] = 'Administrator'; -$a->strings['New mail received at '] = 'New mail received at '; +$a->strings['noreply'] = 'noreply'; $a->strings[' commented on an item at '] = ' commented on an item at '; $a->strings[" commented on an item at "] = " commented on an item at "; $a->strings[' welcomes '] = ' welcomes '; @@ -173,6 +161,7 @@ $a->strings['Your profile address:'] = 'Your profile address:'; $a->strings['Submit Request'] = 'Submit Request'; $a->strings['Cancel'] = 'Cancel'; $a->strings['Global Directory'] = 'Global Directory'; +$a->strings['Item not found.'] = 'Item not found.'; $a->strings['Private Message'] = 'Private Message'; $a->strings['This is you'] = 'This is you'; $a->strings['View $name\'s profile'] = 'View $name\'s profile'; @@ -228,6 +217,17 @@ $a->strings['Your message:'] = 'Your message:'; $a->strings['Please join my social network on '] = 'Please join my social network on '; $a->strings['To accept this invitation, please visit:'] = 'To accept this invitation, please visit:'; $a->strings['Once you have registered, please connect with me via my profile page at:'] = 'Once you have registered, please connect with me via my profile page at:'; +$a->strings['Unable to locate original post.'] = 'Unable to locate original post.'; +$a->strings['Empty post discarded.'] = 'Empty post discarded.'; +$a->strings['Wall Photos'] = 'Wall Photos'; +$a->strings[" commented on your item at "] = " commented on your item at "; +$a->strings[" posted on your profile wall at "] = " posted on your profile wall at "; +$a->strings['System error. Post not saved.'] = 'System error. Post not saved.'; +$a->strings['This message was sent to you by '] = 'This message was sent to you by '; +$a->strings[', a member of the Friendika social network.'] = ', a member of the Friendika social network.'; +$a->strings['You may visit them online at'] = 'You may visit them online at'; +$a->strings['Please contact the sender by replying to this post if you do not wish to receive these messages.'] = 'Please contact the sender by replying to this post if you do not wish to receive these messages.'; +$a->strings['posted an update.'] = 'posted an update.'; $a->strings['photo'] = 'photo'; $a->strings['status'] = 'status'; $a->strings['likes'] = 'likes'; @@ -480,7 +480,13 @@ $a->strings['Uncertain'] = 'Uncertain'; $a->strings['Complicated'] = 'Complicated'; $a->strings['Don\'t care'] = 'Don\'t care'; $a->strings['Ask me'] = 'Ask me'; -$a->strings['Facebook status update failed.'] = 'Facebook status update failed.'; +$a->strings['Facebook disabled'] = 'Facebook disabled'; +$a->strings['Facebook API key is missing.'] = 'Facebook API key is missing.'; +$a->strings['Facebook Connect'] = 'Facebook Connect'; +$a->strings['Install Facebook posting'] = 'Install Facebook posting'; +$a->strings['Remove Facebook posting'] = 'Remove Facebook posting'; +$a->strings['Post to Facebook'] = 'Post to Facebook'; +$a->strings['Image: '] = 'Image: '; $a->strings['Select files to upload: '] = 'Select files to upload: '; $a->strings['Use the following controls only if the Java uploader [above] fails to launch.'] = 'Use the following controls only if the Java uploader [above] fails to launch.'; $a->strings['Upload a file'] = 'Upload a file'; @@ -496,7 +502,7 @@ $a->strings['Enable Randplace Plugin'] = 'Enable Randplace Plugin'; $a->strings['No consumer key pair for StatusNet found. Register your Friendika Account as an desktop client on your StatusNet account, copy the consumer key pair here and enter the API base root.<br />Before you register your own OAuth key pair ask the administrator if there is already a key pair for this Friendika installation at your favorited StatusNet installation.'] = 'No consumer key pair for StatusNet found. Register your Friendika Account as an desktop client on your StatusNet account, copy the consumer key pair here and enter the API base root.<br />Before you register your own OAuth key pair ask the administrator if there is already a key pair for this Friendika installation at your favorited StatusNet installation.'; $a->strings['OAuth Consumer Key'] = 'OAuth Consumer Key'; $a->strings['OAuth Consumer Secret'] = 'OAuth Consumer Secret'; -$a->strings['Base API Path (remember the trailing /] = 'Base API Path (remember the trailing /; +$a->strings["Base API Path \x28remember the trailing /\x29"] = "Base API Path \x28remember the trailing /\x29"; $a->strings['To connect to your StatusNet account click the button below to get a security code from StatusNet which you have to copy into the input box below and submit the form. Only your <strong>public</strong> posts will be posted to StatusNet.'] = 'To connect to your StatusNet account click the button below to get a security code from StatusNet which you have to copy into the input box below and submit the form. Only your <strong>public</strong> posts will be posted to StatusNet.'; $a->strings['Log in with StatusNet'] = 'Log in with StatusNet'; $a->strings['Copy the security code from StatusNet here'] = 'Copy the security code from StatusNet here'; @@ -504,6 +510,7 @@ $a->strings['Currently connected to: '] = 'Currently connected to: '; $a->strings['If enabled all your <strong>public</strong> postings will be posted to the associated StatusNet account as well.'] = 'If enabled all your <strong>public</strong> postings will be posted to the associated StatusNet account as well.'; $a->strings['Send public postings to StatusNet'] = 'Send public postings to StatusNet'; $a->strings['Clear OAuth configuration'] = 'Clear OAuth configuration'; +$a->strings['Post to Twitter'] = 'Post to Twitter'; $a->strings['Twitter Posting Settings'] = 'Twitter Posting Settings'; $a->strings['No consumer key pair for Twitter found. Please contact your site administrator.'] = 'No consumer key pair for Twitter found. Please contact your site administrator.'; $a->strings['At this Friendika instance the Twitter plugin was enabled but you have not yet connected your account to your Twitter account. To do so click the button below to get a PIN from Twitter which you have to copy into the input box below and submit the form. Only your <strong>public</strong> posts will be posted to Twitter.'] = 'At this Friendika instance the Twitter plugin was enabled but you have not yet connected your account to your Twitter account. To do so click the button below to get a PIN from Twitter which you have to copy into the input box below and submit the form. Only your <strong>public</strong> posts will be posted to Twitter.'; @@ -658,7 +665,6 @@ $a->strings['America/Managua'] = 'America/Managua'; $a->strings['America/Manaus'] = 'America/Manaus'; $a->strings['America/Marigot'] = 'America/Marigot'; $a->strings['America/Martinique'] = 'America/Martinique'; -$a->strings['America/Matamoros'] = 'America/Matamoros'; $a->strings['America/Mazatlan'] = 'America/Mazatlan'; $a->strings['America/Mendoza'] = 'America/Mendoza'; $a->strings['America/Menominee'] = 'America/Menominee'; @@ -677,7 +683,6 @@ $a->strings['America/Nome'] = 'America/Nome'; $a->strings['America/Noronha'] = 'America/Noronha'; $a->strings['America/North_Dakota/Center'] = 'America/North_Dakota/Center'; $a->strings['America/North_Dakota/New_Salem'] = 'America/North_Dakota/New_Salem'; -$a->strings['America/Ojinaga'] = 'America/Ojinaga'; $a->strings['America/Panama'] = 'America/Panama'; $a->strings['America/Pangnirtung'] = 'America/Pangnirtung'; $a->strings['America/Paramaribo'] = 'America/Paramaribo'; @@ -694,7 +699,6 @@ $a->strings['America/Regina'] = 'America/Regina'; $a->strings['America/Resolute'] = 'America/Resolute'; $a->strings['America/Rio_Branco'] = 'America/Rio_Branco'; $a->strings['America/Rosario'] = 'America/Rosario'; -$a->strings['America/Santa_Isabel'] = 'America/Santa_Isabel'; $a->strings['America/Santarem'] = 'America/Santarem'; $a->strings['America/Santiago'] = 'America/Santiago'; $a->strings['America/Santo_Domingo'] = 'America/Santo_Domingo'; @@ -723,7 +727,6 @@ $a->strings['America/Yellowknife'] = 'America/Yellowknife'; $a->strings['Antarctica/Casey'] = 'Antarctica/Casey'; $a->strings['Antarctica/Davis'] = 'Antarctica/Davis'; $a->strings['Antarctica/DumontDUrville'] = 'Antarctica/DumontDUrville'; -$a->strings['Antarctica/Macquarie'] = 'Antarctica/Macquarie'; $a->strings['Antarctica/Mawson'] = 'Antarctica/Mawson'; $a->strings['Antarctica/McMurdo'] = 'Antarctica/McMurdo'; $a->strings['Antarctica/Palmer'] = 'Antarctica/Palmer'; @@ -786,7 +789,6 @@ $a->strings['Asia/Makassar'] = 'Asia/Makassar'; $a->strings['Asia/Manila'] = 'Asia/Manila'; $a->strings['Asia/Muscat'] = 'Asia/Muscat'; $a->strings['Asia/Nicosia'] = 'Asia/Nicosia'; -$a->strings['Asia/Novokuznetsk'] = 'Asia/Novokuznetsk'; $a->strings['Asia/Novosibirsk'] = 'Asia/Novosibirsk'; $a->strings['Asia/Omsk'] = 'Asia/Omsk'; $a->strings['Asia/Oral'] = 'Asia/Oral'; diff --git a/view/comment_item.tpl b/view/comment_item.tpl index 885d735ed..dabbd6e87 100644 --- a/view/comment_item.tpl +++ b/view/comment_item.tpl @@ -4,6 +4,7 @@ <input type="hidden" name="profile_uid" value="$profile_uid" /> <input type="hidden" name="parent" value="$parent" /> <input type="hidden" name="return" value="$return_path" /> + <input type="hidden" name="jsreload" value="$jsreload" /> <div class="comment-edit-photo" id="comment-edit-photo-$id" > <a class="comment-edit-photo-link" href="$mylink" title="$mytitle"><img class="my-comment-photo" src="$myphoto" alt="$mytitle" title="$mytitle" /></a> diff --git a/view/de/mail_received_html_body_eml.tpl b/view/de/mail_received_html_body_eml.tpl index b2d914f24..32c5a651a 100644 --- a/view/de/mail_received_html_body_eml.tpl +++ b/view/de/mail_received_html_body_eml.tpl @@ -7,7 +7,7 @@ <body> <table style="border:1px solid #ccc"> <tbody> - <tr><td colspan="2" style="background:#3b5998; color:#FFFFFF; font-weight:bold; font-family:'lucida grande', tahoma, verdana,arial, sans-serif; padding: 4px 8px; vertical-align: middle; font-size:16px; letter-spacing: -0.03em; text-align: left;"><img style="width:32px;height:32px;" src='$hostname/images/ff-32.jpg'><span style="padding:7px;">Friendika</span></td></tr> + <tr><td colspan="2" style="background:#3b5998; color:#FFFFFF; font-weight:bold; font-family:'lucida grande', tahoma, verdana,arial, sans-serif; padding: 4px 8px; vertical-align: middle; font-size:16px; letter-spacing: -0.03em; text-align: left;"><img style="width:32px;height:32px;" src='$siteurl/images/ff-32.jpg'><span style="padding:7px;">Friendika</span></td></tr> <tr><td style="padding-top:22px;" colspan="2">Du hast eine neue private Nachricht von '$from' auf '$siteName' erhhalten.</td></tr> @@ -16,7 +16,7 @@ <td style="padding-top:22px;"><a href="$url">$from</a></td></tr> <tr><td style="font-weight:bold;padding-bottom:5px;">$title</td></tr> <tr><td style="padding-right:22px;">$htmlversion</td></tr> - <tr><td style="padding-top:11px;padding-bottom:11px;" colspan="2">Bitte melde dich unter $siteurl an um deine privaten Nachrichte zu lesen und zu beantworten.</td></tr> + <tr><td style="padding-top:11px;padding-bottom:11px;" colspan="2">Bitte melde dich unter <a href="$siteurl"$siteurl</a> an um deine privaten Nachrichte zu lesen und zu beantworten.</td></tr> <tr><td></td><td>Viele Grüße,</td></tr> <tr><td></td><td>$siteName Administrator</td></tr> </tbody> diff --git a/view/de/msg-header.tpl b/view/de/msg-header.tpl index 3d2567f62..174e6c985 100644 --- a/view/de/msg-header.tpl +++ b/view/de/msg-header.tpl @@ -6,14 +6,14 @@ tinyMCE.init({ theme : "advanced", mode : "specific_textareas", editor_selector: /(profile-jot-text|prvmail-text)/, - plugins : "bbcode", + plugins : "bbcode,paste", theme_advanced_buttons1 : "bold,italic,underline,undo,redo,link,unlink,image,forecolor", theme_advanced_buttons2 : "", theme_advanced_buttons3 : "", theme_advanced_toolbar_location : "top", theme_advanced_toolbar_align : "center", - theme_advanced_styles : "Code=codeStyle;Quote=quoteStyle", - content_css : "bbcode.css", + theme_advanced_blockformats : "blockquote,code", + paste_text_sticky : true, entity_encoding : "raw", add_unload_trigger : false, remove_linebreaks : false, @@ -44,8 +44,12 @@ tinyMCE.init({ $('#character-counter').addClass('red'); } $('#character-counter').text(text); - }); - } + }); + + ed.onInit.add(function(ed) { + ed.pasteAsPlainText = true; + }); + } }); </script> diff --git a/view/de/strings.php b/view/de/strings.php index bc31fab78..ef6892e8d 100644 --- a/view/de/strings.php +++ b/view/de/strings.php @@ -57,6 +57,18 @@ $a->strings['December'] = 'Dezember'; $a->strings['Birthdays this week:'] = 'Geburtstage diese Woche:'; $a->strings["\x28Adjusted for local time\x29"] = "\x28an die lokale Zeit angepasst\x29"; $a->strings['[today]'] = '[heute]'; +$a->strings['Unable to locate original post.'] = 'Unable to locate original post.'; +$a->strings['Empty post discarded.'] = 'Empty post discarded.'; +$a->strings['Wall Photos'] = 'Wall Photos'; +$a->strings[" commented on your item at "] = " commented on your item at "; +$a->strings[" posted on your profile wall at "] = " posted on your profile wall at "; +$a->strings['System error. Post not saved.'] = 'System error. Post not saved.'; +$a->strings['This message was sent to you by '] = 'This message was sent to you by '; +$a->strings[', a member of the Friendika social network.'] = ', a member of the Friendika social network.'; +$a->strings['You may visit them online at'] = 'You may visit them online at'; +$a->strings['Please contact the sender by replying to this post if you do not wish to receive these messages.'] = 'Please contact the sender by replying to this post if you do not wish to receive these messages.'; +$a->strings['posted an update.'] = 'posted an update.'; +$a->strings['Item not found.'] = 'Item not found.'; $a->strings["Invite Friends"] = "Freunde einladen"; $a->strings['Connect/Follow [profile address]'] = 'Kontaktiere/Folge [Profil Adresse]'; $a->strings['Example: bob@example.com, http://example.com/barbara'] = 'Beispiel: bob@example.com, http://example.com/barbara'; @@ -76,6 +88,9 @@ $a->strings['Contact not found.'] = 'Kontakt nicht gefunden.'; $a->strings['Mutual Friendship'] = 'Beidseitige Freundschaft'; $a->strings['is a fan of yours'] = 'ist ein Fan von dir'; $a->strings['you are a fan of'] = 'du bist Fan von'; +$a->strings['Never'] = 'Niemals'; +$a->strings["\x28Update was successful\x29"] = "\x28Aktualisierung war erfolgreich\x29"; +$a->strings["\x28Update was not successful\x29"] = "\x28Aktualisierung war nicht erfolgreich\x29"; $a->strings['Contact Editor'] = 'Kontakt Editor'; $a->strings['Visit $name\'s profile'] = 'Besuche das Profil von $name'; $a->strings['Block/Unblock contact'] = 'Kontakt blockieren/freischalten'; @@ -83,7 +98,6 @@ $a->strings['Ignore contact'] = 'Ignoriere den Kontakt'; $a->strings['Delete contact'] = 'Lösche den Kontakt'; $a->strings['Last updated: '] = 'Letzte Aktualisierung: '; $a->strings['Update public posts: '] = 'Aktualisierung öffentlicher Nachrichten: '; -$a->strings['Never'] = 'Niemals'; $a->strings['Update now'] = 'Jetzt aktualisieren'; $a->strings['Unblock this contact'] = 'Blockade dieses Kontakts aufheben'; $a->strings['Block this contact'] = 'Diesen Kontakt blockieren'; @@ -159,7 +173,6 @@ $a->strings['Your profile address:'] = 'Deine Profiladresse:'; $a->strings['Submit Request'] = 'Anfrage abschicken'; $a->strings['Cancel'] = 'Abbrechen'; $a->strings['Global Directory'] = 'Weltweites Verzeichnis'; -$a->strings['Item not found.'] = 'Eintrag nicht gefunden.'; $a->strings['Private Message'] = 'Private Nachricht'; $a->strings['This is you'] = 'Das bist du'; $a->strings['View $name\'s profile'] = 'Profile von $name'; @@ -215,16 +228,6 @@ $a->strings['Your message:'] = 'Deine Nachricht:'; $a->strings['Please join my social network on '] = 'Bitte trete meinem sozialen Netzwerk bei '; $a->strings['To accept this invitation, please visit:'] = 'Um diese Einladung anzunehmen beuche bitte:'; $a->strings['Once you have registered, please connect with me via my profile page at:'] = 'Sobald du registriert bist kontaktiere mich bitte auf meiner Profilseite:'; -$a->strings['Unable to locate original post.'] = 'Konnte das original Posting nicht finden.'; -$a->strings['Empty post discarded.'] = 'Leere Nachricht verworfen.'; -$a->strings['Wall Photos'] = 'Pinnwand Fotos'; -$a->strings[" commented on your item at "] = " kommentierte eines deiner Postings auf "; -$a->strings[" posted on your profile wall at "] = " schrieb an deine Profilwand auf "; -$a->strings['This message was sent to you by '] = 'This message was sent to you by '; -$a->strings[', a member of the Friendika social network.'] = ', a member of the Friendika social network.'; -$a->strings['You may visit them online at'] = 'You may visit them online at'; -$a->strings['Please contact the sender by replying to this post if you do not wish to receive these messages.'] = 'Please contact the sender by replying to this post if you do not wish to receive these messages.'; -$a->strings['posted an update.'] = 'posted an update.'; $a->strings['photo'] = 'Foto'; $a->strings['status'] = 'Status'; $a->strings['likes'] = 'mag das'; @@ -356,7 +359,9 @@ $a->strings['Register'] = 'Registrieren'; $a->strings['Please login.'] = 'Bitte melde dich an.'; $a->strings['Registration revoked for '] = 'Registration zurückgezogen '; $a->strings['Account approved.'] = 'Account freigegeben.'; -$a->strings['View in context'] = 'Im Kontext betrachten'; +$a->strings['Remove My Account'] = 'Remove My Account'; +$a->strings['This will completely remove your account. Once this has been done it is not recoverable.'] = 'This will completely remove your account. Once this has been done it is not recoverable.'; +$a->strings['Please enter your password for verification:'] = 'Please enter your password for verification:'; $a->strings['Passwords do not match. Password unchanged.'] = 'Die Passwörter stimmen nicht überein. Das Passwort bleibt unverändert.'; $a->strings['Empty passwords are not allowed. Password unchanged.'] = 'Leere Passwörter sind nicht erlaubt. Passwort bleibt unverändert.'; $a->strings['Password changed.'] = 'Passwort ändern.'; @@ -364,6 +369,7 @@ $a->strings['Password update failed. Please try again.'] = 'Aktualisierung des P $a->strings[' Please use a shorter name.'] = ' Bitte verwende einen kürzeren Namen.'; $a->strings[' Name too short.'] = ' Name ist zu kurz.'; $a->strings[' Not valid email.'] = ' Keine gültige EMail.'; +$a->strings[' Cannot change to that email.'] = ' Cannot change to that email.'; $a->strings['Settings updated.'] = 'Einstellungen aktualisiert.'; $a->strings['Plugin Settings'] = 'Plugin Einstellungen'; $a->strings['Account Settings'] = 'Account Einstellungen'; @@ -487,6 +493,23 @@ $a->strings['File has an invalid extension, it should be one of '] = 'Die Dateie $a->strings['Upload was cancelled, or server error encountered'] = 'Upload abgebrochen oder Serverfehler aufgetreten'; $a->strings['Randplace Settings'] = 'Randplace Settings'; $a->strings['Enable Randplace Plugin'] = 'Randplace Erweiterung aktivieren'; +$a->strings['No consumer key pair for StatusNet found. Register your Friendika Account as an desktop client on your StatusNet account, copy the consumer key pair here and enter the API base root.<br />Before you register your own OAuth key pair ask the administrator if there is already a key pair for this Friendika installation at your favorited StatusNet installation.'] = 'No consumer key pair for StatusNet found. Register your Friendika Account as an desktop client on your StatusNet account, copy the consumer key pair here and enter the API base root.<br />Before you register your own OAuth key pair ask the administrator if there is already a key pair for this Friendika installation at your favorited StatusNet installation.'; +$a->strings['OAuth Consumer Key'] = 'OAuth Consumer Key'; +$a->strings['OAuth Consumer Secret'] = 'OAuth Consumer Secret'; +$a->strings['Base API Path (remember the trailing /] = 'Base API Path (remember the trailing /; +$a->strings['To connect to your StatusNet account click the button below to get a security code from StatusNet which you have to copy into the input box below and submit the form. Only your <strong>public</strong> posts will be posted to StatusNet.'] = 'To connect to your StatusNet account click the button below to get a security code from StatusNet which you have to copy into the input box below and submit the form. Only your <strong>public</strong> posts will be posted to StatusNet.'; +$a->strings['Log in with StatusNet'] = 'Log in with StatusNet'; +$a->strings['Copy the security code from StatusNet here'] = 'Copy the security code from StatusNet here'; +$a->strings['Currently connected to: '] = 'Currently connected to: '; +$a->strings['If enabled all your <strong>public</strong> postings will be posted to the associated StatusNet account as well.'] = 'If enabled all your <strong>public</strong> postings will be posted to the associated StatusNet account as well.'; +$a->strings['Send public postings to StatusNet'] = 'Send public postings to StatusNet'; +$a->strings['Clear OAuth configuration'] = 'Clear OAuth configuration'; +$a->strings['Twitter Posting Settings'] = 'Twitter Posting Settings'; +$a->strings['No consumer key pair for Twitter found. Please contact your site administrator.'] = 'No consumer key pair for Twitter found. Please contact your site administrator.'; +$a->strings['At this Friendika instance the Twitter plugin was enabled but you have not yet connected your account to your Twitter account. To do so click the button below to get a PIN from Twitter which you have to copy into the input box below and submit the form. Only your <strong>public</strong> posts will be posted to Twitter.'] = 'At this Friendika instance the Twitter plugin was enabled but you have not yet connected your account to your Twitter account. To do so click the button below to get a PIN from Twitter which you have to copy into the input box below and submit the form. Only your <strong>public</strong> posts will be posted to Twitter.'; +$a->strings['Copy the PIN from Twitter here'] = 'Copy the PIN from Twitter here'; +$a->strings['If enabled all your <strong>public</strong> postings will be posted to the associated Twitter account as well.'] = 'If enabled all your <strong>public</strong> postings will be posted to the associated Twitter account as well.'; +$a->strings['Send public postings to Twitter'] = 'Send public postings to Twitter'; $a->strings['Africa/Abidjan'] = 'Africa/Abidjan'; $a->strings['Africa/Accra'] = 'Africa/Accra'; $a->strings['Africa/Addis_Ababa'] = 'Africa/Addis_Ababa'; diff --git a/view/de/wallwall_item.tpl b/view/de/wallwall_item.tpl index fd05a74ac..67b6006cf 100644 --- a/view/de/wallwall_item.tpl +++ b/view/de/wallwall_item.tpl @@ -21,6 +21,7 @@ <div class="wall-item-title" id="wall-item-title-$id">$title</div> <div class="wall-item-body" id="wall-item-body-$id" >$body</div> </div> + $plink $drop </div> <div class="wall-item-wrapper-end"></div> diff --git a/view/en/mail_received_html_body_eml.tpl b/view/en/mail_received_html_body_eml.tpl index 981aa46e7..56cbf1d7c 100644 --- a/view/en/mail_received_html_body_eml.tpl +++ b/view/en/mail_received_html_body_eml.tpl @@ -7,7 +7,7 @@ <body> <table style="border:1px solid #ccc"> <tbody> - <tr><td colspan="2" style="background:#3b5998; color:#FFFFFF; font-weight:bold; font-family:'lucida grande', tahoma, verdana,arial, sans-serif; padding: 4px 8px; vertical-align: middle; font-size:16px; letter-spacing: -0.03em; text-align: left;"><img style="width:32px;height:32px;" src='$hostname/images/ff-32.jpg'><span style="padding:7px;">Friendika</span></td></tr> + <tr><td colspan="2" style="background:#3b5998; color:#FFFFFF; font-weight:bold; font-family:'lucida grande', tahoma, verdana,arial, sans-serif; padding: 4px 8px; vertical-align: middle; font-size:16px; letter-spacing: -0.03em; text-align: left;"><img style="width:32px;height:32px;" src='$siteurl/images/ff-32.jpg'><span style="padding:7px;">Friendika</span></td></tr> <tr><td style="padding-top:22px;" colspan="2">$from sent you a new private message at $siteName.</td></tr> @@ -16,7 +16,7 @@ <td style="padding-top:22px;"><a href="$url">$from</a></td></tr> <tr><td style="font-weight:bold;padding-bottom:5px;">$title</td></tr> <tr><td style="padding-right:22px;">$htmlversion</td></tr> - <tr><td style="padding-top:11px;padding-bottom:11px;" colspan="2">Please login at $siteurl to read and reply to your private messages.</td></tr> + <tr><td style="padding-top:11px;padding-bottom:11px;" colspan="2">Please login at <a href="$siteurl">$siteurl</a> to read and reply to your private messages.</td></tr> <tr><td></td><td>Thank You,</td></tr> <tr><td></td><td>$siteName Administrator</td></tr> </tbody> diff --git a/view/en/msg-header.tpl b/view/en/msg-header.tpl index 3d2567f62..174e6c985 100644 --- a/view/en/msg-header.tpl +++ b/view/en/msg-header.tpl @@ -6,14 +6,14 @@ tinyMCE.init({ theme : "advanced", mode : "specific_textareas", editor_selector: /(profile-jot-text|prvmail-text)/, - plugins : "bbcode", + plugins : "bbcode,paste", theme_advanced_buttons1 : "bold,italic,underline,undo,redo,link,unlink,image,forecolor", theme_advanced_buttons2 : "", theme_advanced_buttons3 : "", theme_advanced_toolbar_location : "top", theme_advanced_toolbar_align : "center", - theme_advanced_styles : "Code=codeStyle;Quote=quoteStyle", - content_css : "bbcode.css", + theme_advanced_blockformats : "blockquote,code", + paste_text_sticky : true, entity_encoding : "raw", add_unload_trigger : false, remove_linebreaks : false, @@ -44,8 +44,12 @@ tinyMCE.init({ $('#character-counter').addClass('red'); } $('#character-counter').text(text); - }); - } + }); + + ed.onInit.add(function(ed) { + ed.pasteAsPlainText = true; + }); + } }); </script> diff --git a/view/en/wallwall_item.tpl b/view/en/wallwall_item.tpl index f8affd1c5..9c6ad6070 100644 --- a/view/en/wallwall_item.tpl +++ b/view/en/wallwall_item.tpl @@ -21,6 +21,7 @@ <div class="wall-item-title" id="wall-item-title-$id">$title</div> <div class="wall-item-body" id="wall-item-body-$id" >$body</div> </div> + $plink $drop </div> <div class="wall-item-wrapper-end"></div> diff --git a/view/fr/mail_received_html_body_eml.tpl b/view/fr/mail_received_html_body_eml.tpl index 43584a4c4..d60bbe70c 100644 --- a/view/fr/mail_received_html_body_eml.tpl +++ b/view/fr/mail_received_html_body_eml.tpl @@ -7,7 +7,7 @@ <body> <table style="border:1px solid #ccc"> <tbody> - <tr><td colspan="2" style="background:#3b5998; color:#FFFFFF; font-weight:bold; font-family:'lucida grande', tahoma, verdana,arial, sans-serif; padding: 4px 8px; vertical-align: middle; font-size:16px; letter-spacing: -0.03em; text-align: left;"><img style="width:32px;height:32px;" src='$hostname/images/ff-32.jpg'><span style="padding:7px;">Friendika</span></td></tr> + <tr><td colspan="2" style="background:#3b5998; color:#FFFFFF; font-weight:bold; font-family:'lucida grande', tahoma, verdana,arial, sans-serif; padding: 4px 8px; vertical-align: middle; font-size:16px; letter-spacing: -0.03em; text-align: left;"><img style="width:32px;height:32px;" src='$siteurl/images/ff-32.jpg'><span style="padding:7px;">Friendika</span></td></tr> <tr><td style="padding-top:22px;" colspan="2">$from t'a envoyŽ un message ˆ $siteName.</td></tr> @@ -16,7 +16,7 @@ <td style="padding-top:22px;"><a href="$url">$from</a></td></tr> <tr><td style="font-weight:bold;padding-bottom:5px;">$title</td></tr> <tr><td style="padding-right:22px;">$htmlversion</td></tr> - <tr><td style="padding-top:11px;padding-bottom:11px;" colspan="2">Ouvrez une session svp ˆ $siteurl pour lire et rŽpondre ˆ vos messages privŽs.</td></tr> + <tr><td style="padding-top:11px;padding-bottom:11px;" colspan="2">Ouvrez une session svp ˆ <a href="$siteurl">$siteurl</a> pour lire et rŽpondre ˆ vos messages privŽs.</td></tr> <tr><td></td><td>Merci,</td></tr> <tr><td></td><td>$siteName Administrateur</td></tr> </tbody> diff --git a/view/fr/msg-header.tpl b/view/fr/msg-header.tpl index 3d2567f62..174e6c985 100644 --- a/view/fr/msg-header.tpl +++ b/view/fr/msg-header.tpl @@ -6,14 +6,14 @@ tinyMCE.init({ theme : "advanced", mode : "specific_textareas", editor_selector: /(profile-jot-text|prvmail-text)/, - plugins : "bbcode", + plugins : "bbcode,paste", theme_advanced_buttons1 : "bold,italic,underline,undo,redo,link,unlink,image,forecolor", theme_advanced_buttons2 : "", theme_advanced_buttons3 : "", theme_advanced_toolbar_location : "top", theme_advanced_toolbar_align : "center", - theme_advanced_styles : "Code=codeStyle;Quote=quoteStyle", - content_css : "bbcode.css", + theme_advanced_blockformats : "blockquote,code", + paste_text_sticky : true, entity_encoding : "raw", add_unload_trigger : false, remove_linebreaks : false, @@ -44,8 +44,12 @@ tinyMCE.init({ $('#character-counter').addClass('red'); } $('#character-counter').text(text); - }); - } + }); + + ed.onInit.add(function(ed) { + ed.pasteAsPlainText = true; + }); + } }); </script> diff --git a/view/fr/wallwall_item.tpl b/view/fr/wallwall_item.tpl index f8affd1c5..9c6ad6070 100644 --- a/view/fr/wallwall_item.tpl +++ b/view/fr/wallwall_item.tpl @@ -21,6 +21,7 @@ <div class="wall-item-title" id="wall-item-title-$id">$title</div> <div class="wall-item-body" id="wall-item-body-$id" >$body</div> </div> + $plink $drop </div> <div class="wall-item-wrapper-end"></div> diff --git a/view/it/mail_received_html_body_eml.tpl b/view/it/mail_received_html_body_eml.tpl index a3c71cef9..7510f2b30 100644 --- a/view/it/mail_received_html_body_eml.tpl +++ b/view/it/mail_received_html_body_eml.tpl @@ -7,7 +7,7 @@ <body> <table style="border:1px solid #ccc"> <tbody> - <tr><td colspan="2" style="background:#3b5998; color:#FFFFFF; font-weight:bold; font-family:'lucida grande', tahoma, verdana,arial, sans-serif; padding: 4px 8px; vertical-align: middle; font-size:16px; letter-spacing: -0.03em; text-align: left;"><img style="width:32px;height:32px;" src='$hostname/images/ff-32.jpg'><span style="padding:7px;">Friendika</span></td></tr> + <tr><td colspan="2" style="background:#3b5998; color:#FFFFFF; font-weight:bold; font-family:'lucida grande', tahoma, verdana,arial, sans-serif; padding: 4px 8px; vertical-align: middle; font-size:16px; letter-spacing: -0.03em; text-align: left;"><img style="width:32px;height:32px;" src='$siteurl/images/ff-32.jpg'><span style="padding:7px;">Friendika</span></td></tr> <tr><td style="padding-top:22px;" colspan="2">Hai ricevuto un nuovo messsaggio privato su $siteName da '$from'.</td></tr> @@ -16,7 +16,7 @@ <td style="padding-top:22px;"><a href="$url">$from</a></td></tr> <tr><td style="font-weight:bold;padding-bottom:5px;">$title</td></tr> <tr><td style="padding-right:22px;">$htmlversion</td></tr> - <tr><td style="padding-top:11px;padding-bottom:11px;" colspan="2">Accedi a $siteurl per leggere e rispondere ai tuoi messaggi privati.</td></tr> + <tr><td style="padding-top:11px;padding-bottom:11px;" colspan="2">Accedi a <a href="$siteurl">$siteurl</a> per leggere e rispondere ai tuoi messaggi privati.</td></tr> <tr><td></td><td>Grazie,</td></tr> <tr><td></td><td>L'amministratore di $siteName</td></tr> </tbody> diff --git a/view/it/msg-header.tpl b/view/it/msg-header.tpl index f6f437864..69e813ae2 100644 --- a/view/it/msg-header.tpl +++ b/view/it/msg-header.tpl @@ -6,14 +6,14 @@ tinyMCE.init({ theme : "advanced", mode : "specific_textareas", editor_selector: /(profile-jot-text|prvmail-text)/, - plugins : "bbcode", + plugins : "bbcode,paste", theme_advanced_buttons1 : "bold,italic,underline,undo,redo,link,unlink,image,forecolor", theme_advanced_buttons2 : "", theme_advanced_buttons3 : "", theme_advanced_toolbar_location : "top", theme_advanced_toolbar_align : "center", - theme_advanced_styles : "Code=codeStyle;Quote=quoteStyle", - content_css : "bbcode.css", + theme_advanced_blockformats : "blockquote,code", + paste_text_sticky : true, entity_encoding : "raw", add_unload_trigger : false, remove_linebreaks : false, @@ -44,8 +44,12 @@ tinyMCE.init({ $('#character-counter').addClass('red'); } $('#character-counter').text(text); - }); - } + }); + + ed.onInit.add(function(ed) { + ed.pasteAsPlainText = true; + }); + } }); </script> diff --git a/view/it/settings_nick_unset.tpl b/view/it/settings_nick_unset.tpl index 903768b59..8f4cba475 100644 --- a/view/it/settings_nick_unset.tpl +++ b/view/it/settings_nick_unset.tpl @@ -1,13 +1,14 @@ <div id="settings-nick-wrapper" > <p id="settings-nickname-desc"> -Your profile URL is currently <strong>'$baseurl/profile/$uid'</strong>. -Setting a nickname will allow a friendly profile URL such as -<strong>'nickname@$basepath'</strong>. +L'URL del tuo profilo è <strong>'$baseurl/profile/$uid'</strong>. +Impostare un soprannome permetterà di avere un URL più aimchevole, come +<strong>'soprannome@$basepath'</strong>. <br /> -Once set, it can never be changed. The nickname <strong>must</strong> start with a letter; and only letters, numbers, dashes, and underscores are allowed. +Una volta impostato, non potr&agreve; più essere cambiato. Il soprannome <strong>deve</strong> +cominciare con una lettera; nel soprannome sono permessi solo lettere, numeri, trattini (-) e underscore (_). </p> -<label id="settings-nick-label" for="settings-nick" >URL Nickname: </label> +<label id="settings-nick-label" for="settings-nick" >Soprannome: </label> <input type="text" name="nick" id="settings-nick" value="$nickname" /> </div> <div id="settings-nick-end" ></div> diff --git a/view/it/strings.php b/view/it/strings.php index 2c429cc8a..d04e02167 100644 --- a/view/it/strings.php +++ b/view/it/strings.php @@ -1052,4 +1052,37 @@ $a->strings['File has an invalid extension, it should be one of '] = 'Il file ha $a->strings['Upload was cancelled, or server error encountered'] = 'Il caricamento è stato cancellato, o si è verificato un errore sul server'; $a->strings['Randplace Settings'] = 'Impostazioni Randplace'; $a->strings['Enable Randplace Plugin'] = 'Abilita il plugin Randplace'; +$a->strings['System error. Post not saved.'] = 'Errore di sistema. Messaggio non salvato.'; +$a->strings['(Update was successful)'] = '(L\'aggiornamento è stato completato)'; +$a->strings['(Update was not successful)'] = '(L\'aggiornamento non è stato completato)'; +$a->strings['Remove My Account'] = 'Rimuovi il mio Account'; +$a->strings['This will completely remove your account. Once this has been done it is not recoverable.'] = 'Questo rimuoverà completamente il tuo account. Una volta rimosso non si potrà recuperarlo.'; +$a->strings['Please enter your password for verification:'] = 'Inserisci la tua password per verifica:'; +$a->strings['No consumer key pair for StatusNet found. Register your Friendika Account as an desktop client on your StatusNet account, copy the consumer key pair here and enter the API base root.<br />Before you register your own OAuth key pair ask the administrator if there is already a key pair for this Friendika installation at your favorited StatusNet installation.'] = 'Nessuna coppia di chiavi consumer per StatusNet trovata. Regitstra il tuo Account Friendika come un client desktop sul tuo account StatusNet, copia la coppia di chiavi qui e inserisci l\'url di base delle API.<br />Prima di registrare la tua coppia di chiavi OAuth, chiedi all\'amministratore se esiste già una coppia di chiavi per questa installazione di Friendika sulla installazione di StatusNet che ti interessa.'; +$a->strings['OAuth Consumer Key'] = 'OAuth Consumer Key'; +$a->strings['OAuth Consumer Secret'] = 'OAuth Consumer Secret'; +$a->strings['Base API Path (remember the trailing /)'] = 'Indirizzo di base per le API (ricorda la / alla fine)'; +$a->strings['To connect to your StatusNet account click the button below to get a security code from StatusNet which you have to copy into the input box below and submit the form. Only your <strong>public</strong> posts will be posted to StatusNet.'] = 'Per collegare il tuo account StatusNet, clicca sul bottone qui sotto per ottenere un codice di sicurezza da StatusNet, che dovrai copiare nel box più sotto per poi inviare la form. Solo i tuoi messaggi <strong>pubblci</strong> saranno inviati a StatusNet.'; +$a->strings['Log in with StatusNet'] = 'Login con StatuNet'; +$a->strings['Copy the security code from StatusNet here'] = 'Copia il codice di sicurezza da StatusNet qui'; +$a->strings['Currently connected to: '] = 'Al momento collegato con:'; +$a->strings['If enabled all your <strong>public</strong> postings will be posted to the associated StatusNet account as well.'] = 'Se abilitato tutti i tuoi messaggi <strong>pubblici</strong> verranno inviati anche sull\'account StatusNet associato.'; +$a->strings['Send public postings to StatusNet'] = 'Invia messaggi pubblici su StatusNet'; +$a->strings['Clear OAuth configuration'] = 'Cancella la configurazione OAuth'; +$a->strings['Twitter Posting Settings'] = 'Impostazioni Invio a Twitter'; +$a->strings['No consumer key pair for Twitter found. Please contact your site administrator.'] = 'Nessuna coopia di chiavi per Twitter trovata. Contatta il tuo amministratore del sito.'; +$a->strings['At this Friendika instance the Twitter plugin was enabled but you have not yet connected your account to your Twitter account. To do so click the button below to get a PIN from Twitter which you have to copy into the input box below and submit the form. Only your <strong>public</strong> posts will be posted to Twitter.'] = 'Questa installazione di Friendika ha il plugin Twitter abilitato, ma non hai ancora collegato il tuo account locale con il tuo account su Twitter. Per farlo, clicca il bottone qui sotto per ottenere un PIN da Twitter, che dovrai copiare nel box più sotto per poi inviare la form. Solo i tuoi messaggi <strong>pubblici</strong> verranno inviati anche su Twitter.'; +$a->strings['Copy the PIN from Twitter here'] = 'Copia il PIN da Twitter qui'; +$a->strings['If enabled all your <strong>public</strong> postings will be posted to the associated Twitter account as well.'] = 'Se abilitato tutti i tuoi messaggi <strong>pubblici</strong> verranno inviati anche sull\'account Twitter associato.'; +$a->strings['Send public postings to Twitter'] = 'Invia messaggi pubblici su Twitter'; +$a->strings['noreply'] = 'nessuna risposta'; +$a->strings['Facebook disabled'] = 'Facebook disabilitato'; +$a->strings['Facebook API key is missing.'] = 'Chiave API Facebook mancante.'; +$a->strings['Facebook Connect'] = 'Facebook Connect'; +$a->strings['Install Facebook posting'] = 'Installa invio a Facebook'; +$a->strings['Remove Facebook posting'] = 'Rimuovi invio a Facebook'; +$a->strings['Post to Facebook'] = 'Invia a Facebook'; +$a->strings['Image: '] = 'Immagine: '; +$a->strings['Base API Path \x28remember the trailing /\x29'] = 'Indirizzo base API \x28ricorda il / alla fine\x29'; +$a->strings['Post to Twitter'] = 'Inva a Twitter'; ?> diff --git a/view/it/wallwall_item.tpl b/view/it/wallwall_item.tpl index bc2d3f2ec..3c7883fc8 100644 --- a/view/it/wallwall_item.tpl +++ b/view/it/wallwall_item.tpl @@ -21,6 +21,7 @@ <div class="wall-item-title" id="wall-item-title-$id">$title</div> <div class="wall-item-body" id="wall-item-body-$id" >$body</div> </div> + $plink $drop </div> <div class="wall-item-wrapper-end"></div> diff --git a/view/theme/duepuntozero/style.css b/view/theme/duepuntozero/style.css index ac3562d1c..e3a5fd3e7 100644 --- a/view/theme/duepuntozero/style.css +++ b/view/theme/duepuntozero/style.css @@ -833,6 +833,13 @@ input#dfrn-url { .wall-item-like-buttons img { cursor: pointer; } + +.wall-item-links-wrapper { + float: left; + margin-bottom: 5px; + margin-left: 5px; +} + .wall-item-delete-wrapper { float: right; margin-top: 5px; diff --git a/view/theme/loozah/style.css b/view/theme/loozah/style.css index a87252016..d34c81a45 100644 --- a/view/theme/loozah/style.css +++ b/view/theme/loozah/style.css @@ -962,6 +962,13 @@ input#dfrn-url { .wall-item-like-buttons img { cursor: pointer; } + +.wall-item-links-wrapper { + float: left; + margin-top: 100px; + margin-left: 10px; +} + .wall-item-delete-wrapper { float: right; margin-top: 20px; diff --git a/view/wall_item.tpl b/view/wall_item.tpl index 67fce4152..b9f27ed4a 100644 --- a/view/wall_item.tpl +++ b/view/wall_item.tpl @@ -16,6 +16,7 @@ <div class="wall-item-title" id="wall-item-title-$id">$title</div> <div class="wall-item-body" id="wall-item-body-$id" >$body</div> </div> + $plink $drop </div> <div class="wall-item-wrapper-end"></div> |