diff --git a/INSTALL.txt b/INSTALL.txt index 053c33902..70027dc4c 100644 --- a/INSTALL.txt +++ b/INSTALL.txt @@ -38,7 +38,7 @@ with the Diaspora network and improved security. - PHP *command line* access with register_argc_argv set to true in the php.ini file [or see 'poormancron' in section 8] - - curl, gd, mysql, mbstring, mcrypt, and openssl extensions + - curl, gd (with at least jpeg support), mysql, mbstring, mcrypt, and openssl extensions - some form of email server or email gateway such that PHP mail() works diff --git a/boot.php b/boot.php index fe8491332..1f2b47b2e 100644 --- a/boot.php +++ b/boot.php @@ -4,14 +4,14 @@ require_once('include/config.php'); require_once('include/network.php'); require_once('include/plugin.php'); require_once('include/text.php'); -require_once("include/pgettext.php"); +require_once('include/pgettext.php'); require_once('include/nav.php'); require_once('include/cache.php'); define ( 'FRIENDICA_PLATFORM', 'Friendica'); -define ( 'FRIENDICA_VERSION', '2.3.1214' ); +define ( 'FRIENDICA_VERSION', '2.3.1217' ); define ( 'DFRN_PROTOCOL_VERSION', '2.22' ); -define ( 'DB_UPDATE_VERSION', 1114 ); +define ( 'DB_UPDATE_VERSION', 1115 ); define ( 'EOL', "
\r\n" ); define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' ); @@ -103,7 +103,7 @@ define ( 'NETWORK_MAIL', 'mail'); // IMAP/POP define ( 'NETWORK_FACEBOOK', 'face'); // Facebook API define ( 'NETWORK_LINKEDIN', 'lnkd'); // LinkedIn define ( 'NETWORK_XMPP', 'xmpp'); // XMPP - +define ( 'NETWORK_MYSPACE', 'mysp'); // MySpace /** * Maximum number of "people who like (or don't like) this" that we will list by name @@ -127,6 +127,9 @@ define ( 'NOTIFY_CONFIRM', 0x0002 ); define ( 'NOTIFY_WALL', 0x0004 ); define ( 'NOTIFY_COMMENT', 0x0008 ); define ( 'NOTIFY_MAIL', 0x0010 ); +define ( 'NOTIFY_SUGGEST', 0x0020 ); +define ( 'NOTIFY_PROFILE', 0x0040 ); + /** * various namespaces we may need to parse diff --git a/database.sql b/database.sql index 4dc1973ed..6826aa6f8 100644 --- a/database.sql +++ b/database.sql @@ -751,3 +751,20 @@ INDEX ( `uid` ), INDEX ( `seen` ), INDEX ( `date` ) ) ENGINE = MyISAM DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `item_id` ( +`iid` INT NOT NULL , +`uid` INT NOT NULL , +`face` CHAR( 255 ) NOT NULL , +`dspr` CHAR( 255 ) NOT NULL , +`twit` CHAR( 255 ) NOT NULL , +`stat` CHAR( 255 ) NOT NULL , +PRIMARY KEY ( `iid` ), +INDEX ( `uid` ), +INDEX ( `face` ), +INDEX ( `dspr` ), +INDEX ( `twit` ), +INDEX ( `stat` ) +) ENGINE = MyISAM DEFAULT CHARSET=utf8; + + diff --git a/images/smiley-Oo.gif b/images/smiley-Oo.gif new file mode 100644 index 000000000..a125d0ff2 Binary files /dev/null and b/images/smiley-Oo.gif differ diff --git a/include/conversation.php b/include/conversation.php index 26430d645..37fe32de1 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -910,25 +910,35 @@ function conv_sort($arr,$order) { elseif(stristr($order,'commented')) usort($parents,'sort_thr_commented'); - foreach($parents as $x) - $x['children'] = array(); + if(count($parents)) + foreach($parents as $x) + $x['children'] = array(); foreach($arr as $x) { if($x['id'] != $x['parent']) { $p = find_thread_parent_index($parents,$x); - $parents[$p]['children'][] = $x; + if($p !== false) + $parents[$p]['children'][] = $x; } } - foreach($parents as $x) - if(count($x['children'])) - usort($x['children'],'sort_thr_created_rev'); + if(count($parents)) { + foreach($parents as $k => $v) { + if(count($parents[$k]['children'])) { + $y = $parents[$k]['children']; + usort($y,'sort_thr_created_rev'); + $parents[$k]['children'] = $y; + } + } + } $ret = array(); - foreach($parents as $x) { - $ret[] = $x; - if(count($x['children'])) - foreach($x['children'] as $y) - $ret[] = $y; + if(count($parents)) { + foreach($parents as $x) { + $ret[] = $x; + if(count($x['children'])) + foreach($x['children'] as $y) + $ret[] = $y; + } } return $ret; @@ -951,4 +961,5 @@ function find_thread_parent_index($arr,$x) { foreach($arr as $k => $v) if($v['id'] == $x['parent']) return $k; -} + return false; +} \ No newline at end of file diff --git a/include/diaspora.php b/include/diaspora.php index 2d139c77c..5a19400da 100644 --- a/include/diaspora.php +++ b/include/diaspora.php @@ -464,7 +464,7 @@ function diaspora_request($importer,$xml) { intval($importer['uid']) ); - if((count($r)) && ($r[0]['hide-friends'] == 0)) { + if((count($r)) && (! $r[0]['hide-friends']) && (! $contact['hidden'])) { require_once('include/items.php'); $self = q("SELECT * FROM `contact` WHERE `self` = 1 AND `uid` = %d LIMIT 1", @@ -527,6 +527,8 @@ function diaspora_request($importer,$xml) { $batch = (($ret['batch']) ? $ret['batch'] : implode('/', array_slice(explode('/',$ret['url']),0,3)) . '/receive/public'); + + $r = q("INSERT INTO `contact` (`uid`, `network`,`addr`,`created`,`url`,`nurl`,`batch`,`name`,`nick`,`photo`,`pubkey`,`notify`,`poll`,`blocked`,`priority`) VALUES ( %d, '%s', '%s', '%s', '%s','%s','%s','%s','%s','%s','%s','%s','%s',%d,%d) ", intval($importer['uid']), @@ -550,9 +552,15 @@ function diaspora_request($importer,$xml) { $contact_record = diaspora_get_contact_by_handle($importer['uid'],$sender_handle); - $hash = random_string() . (string) time(); // Generate a confirm_key + if(! $contact_record) { + logger('diaspora_request: unable to locate newly created contact record.'); + return; + } + + if($importer['page-flags'] == PAGE_NORMAL) { + + $hash = random_string() . (string) time(); // Generate a confirm_key - if($contact_record) { $ret = q("INSERT INTO `intro` ( `uid`, `contact-id`, `blocked`, `knowyou`, `note`, `hash`, `datetime` ) VALUES ( %d, %d, %d, %d, '%s', '%s', '%s' )", intval($importer['uid']), @@ -564,6 +572,49 @@ function diaspora_request($importer,$xml) { dbesc(datetime_convert()) ); } + else { + + // automatic friend approval + + require_once('include/Photo.php'); + + $photos = import_profile_photo($contact_record['photo'],$importer['uid'],$contact_record['id']); + + // technically they are sharing with us (CONTACT_IS_SHARING), + // but if our page-type is PAGE_COMMUNITY or PAGE_SOAPBOX + // we are going to change the relationship and make them a follower. + + if($importer['page-flags'] == PAGE_FREELOVE) + $new_relation = CONTACT_IS_FRIEND; + else + $new_relation = CONTACT_IS_FOLLOWER; + + $r = q("UPDATE `contact` SET + `photo` = '%s', + `thumb` = '%s', + `micro` = '%s', + `rel` = %d, + `name-date` = '%s', + `uri-date` = '%s', + `avatar-date` = '%s', + `blocked` = 0, + `pending` = 0, + WHERE `id` = %d LIMIT 1 + ", + dbesc($photos[0]), + dbesc($photos[1]), + dbesc($photos[2]), + intval($new_relation), + dbesc(datetime_convert()), + dbesc(datetime_convert()), + dbesc(datetime_convert()), + intval($contact_record['id']) + ); + + $u = q("select * from user where id = %d limit 1",intval($importer['uid'])); + if($u) + $ret = diaspora_share($u[0],$contact_record); + } return; } @@ -1235,6 +1286,8 @@ function diaspora_conversation($importer,$xml,$msg) { 'source_name' => $person['name'], 'source_link' => $person['url'], 'source_photo' => $person['thumb'], + 'verb' => ACTIVITY_POST, + 'otype' => 'mail' )); } @@ -1732,27 +1785,6 @@ function diaspora_profile($importer,$xml) { } - - - - - - - - - - - - - - - - - - - - - function diaspora_share($me,$contact) { $a = get_app(); $myaddr = $me['nickname'] . '@' . substr($a->get_baseurl(), strpos($a->get_baseurl(),'://') + 3); diff --git a/include/enotify.php b/include/enotify.php index f6f291e5d..9df9b57e5 100644 --- a/include/enotify.php +++ b/include/enotify.php @@ -65,6 +65,19 @@ function notification($params) { $itemlink = $params['link']; } + if($params['type'] == NOTIFY_SUGGEST) { + $subject = sprintf( t('Friend suggestion received at %s'), $sitename); + $preamble = sprintf( t('You\'ve received a friend suggestion from \'%s\' at %s'), $params['source_name'], $sitename); + $body = t('Name:') . ' ' . $params['item']['name'] . "\n"; + $body .= t('Photo:') . ' ' . $params['item']['photo'] . "\n"; + $body .= sprintf( t('You may visit their profile at %s'),$params['item']['url']); + + $sitelink = t('Please visit %s to approve or reject the suggestion.'); + $tsitelink = sprintf( $sitelink, $siteurl ); + $hsitelink = sprintf( $sitelink, '' . $sitename . ''); + $itemlink = $params['link']; + } + if($params['type'] == NOTIFY_CONFIRM) { } diff --git a/include/items.php b/include/items.php index 9becb9ffb..0bd77582a 100644 --- a/include/items.php +++ b/include/items.php @@ -945,10 +945,15 @@ function tgroup_deliver($uid,$item_id) { $link = normalise_link($a->get_baseurl() . '/profile/' . $u[0]['nickname']); - $cnt = preg_match_all('/\@\[url\=(.*?)\](.*?)\[\/url\]/ism',$item['body'],$matches,PREG_SET_ORDER); + // Diaspora uses their own hardwired link URL in @-tags + // instead of the one we supply with webfinger + + $dlink = normalise_link($a->get_baseurl() . '/u/' . $u[0]['nickname']); + + $cnt = preg_match_all('/[\@\!]\[url\=(.*?)\](.*?)\[\/url\]/ism',$item['body'],$matches,PREG_SET_ORDER); if($cnt) { foreach($matches as $mtch) { - if(link_compare($link,$mtch[1])) { + if(link_compare($link,$mtch[1]) || link_compare($dlink,$mtch[1])) { $deliver_to_tgroup = true; logger('tgroup_deliver: local group mention found: ' . $mtch[2]); } @@ -1788,7 +1793,20 @@ function local_delivery($importer,$data) { intval(0) ); - // TODO - send email notify (which may require a new notification preference) + notification(array( + 'type' => NOTIFY_SUGGEST, + 'notify_flags' => $importer['notify-flags'], + 'language' => $importer['language'], + 'to_name' => $importer['username'], + 'to_email' => $importer['email'], + 'item' => $fsugg, + 'link' => $a->get_baseurl() . '/notifications/intros', + 'source_name' => $importer['name'], + 'source_link' => $importer['url'], + 'source_photo' => $importer['photo'], + 'verb' => ACTIVITY_REQ_FRIEND, + 'otype' => 'intro' + )); return 0; } @@ -1836,6 +1854,8 @@ function local_delivery($importer,$data) { 'source_name' => $msg['from-name'], 'source_link' => $importer['url'], 'source_photo' => $importer['thumb'], + 'verb' => ACTIVITY_POST, + 'otype' => 'mail' ); notification($notif_params); @@ -2107,7 +2127,10 @@ function local_delivery($importer,$data) { 'source_name' => stripslashes($datarray['author-name']), 'source_link' => $datarray['author-link'], 'source_photo' => ((link_compare($datarray['author-link'],$importer['url'])) - ? $importer['thumb'] : $datarray['author-avatar']) + ? $importer['thumb'] : $datarray['author-avatar']), + 'verb' => ACTIVITY_POST, + 'otype' => 'item' + )); } @@ -2223,7 +2246,10 @@ function local_delivery($importer,$data) { 'source_name' => stripslashes($datarray['author-name']), 'source_link' => $datarray['author-link'], 'source_photo' => ((link_compare($datarray['author-link'],$importer['url'])) - ? $importer['thumb'] : $datarray['author-avatar']) + ? $importer['thumb'] : $datarray['author-avatar']), + 'verb' => ACTIVITY_POST, + 'otype' => 'item' + )); break; diff --git a/include/text.php b/include/text.php index f32aaad07..1db88ca2c 100644 --- a/include/text.php +++ b/include/text.php @@ -678,7 +678,7 @@ function smilies($s) { $a = get_app(); $s = str_replace( - array( '<3', '</3', '<\\3', ':-)', ':)', ';-)', ':-(', ':(', ':-P', ':P', ':-"', ':-x', ':-X', ':-D', '8-|', '8-O', '\\o/', + array( '<3', '</3', '<\\3', ':-)', ':)', ';-)', ':-(', ':(', ':-P', ':P', ':-"', ':-x', ':-X', ':-D', '8-|', '8-O', '\\o/', 'o.O', 'O.o', '~friendika', '~friendica', 'Diaspora*' ), array( '<3', @@ -698,6 +698,8 @@ function smilies($s) { '8-|', '8-O', '\\o/', + 'o.O', + 'O.o', '~friendika ~friendika', '~friendica ~friendica', 'DiasporaDiaspora*', diff --git a/mod/dfrn_request.php b/mod/dfrn_request.php index a96860403..aa14bc473 100644 --- a/mod/dfrn_request.php +++ b/mod/dfrn_request.php @@ -580,7 +580,9 @@ function dfrn_request_content(&$a) { 'link' => $a->get_baseurl() . '/notifications/intros', 'source_name' => ((strlen(stripslashes($r[0]['name']))) ? stripslashes($r[0]['name']) : t('[Name Withheld]')), 'source_link' => $r[0]['url'], - 'source_photo' => $r[0]['photo'] + 'source_photo' => $r[0]['photo'], + 'verb' => ACTIVITY_REQ_FRIEND, + 'otype' => 'intro' )); } diff --git a/mod/item.php b/mod/item.php index ece92f0f3..d4d337584 100644 --- a/mod/item.php +++ b/mod/item.php @@ -54,6 +54,8 @@ function item_post(&$a) { $parid = 0; $r = false; + $preview = ((x($_POST,'preview')) ? intval($_POST['preview']) : 0); + if($parent || $parent_uri) { if(! x($_POST,'type')) @@ -280,7 +282,7 @@ function item_post(&$a) { $match = null; - if(preg_match_all("/\[img\](.*?)\[\/img\]/",$body,$match)) { + if((! $preview) && preg_match_all("/\[img\](.*?)\[\/img\]/",$body,$match)) { $images = $match[1]; if(count($images)) { foreach($images as $image) { @@ -323,7 +325,7 @@ function item_post(&$a) { $match = false; - if(preg_match_all("/\[attachment\](.*?)\[\/attachment\]/",$body,$match)) { + if((! $preview) && preg_match_all("/\[attachment\](.*?)\[\/attachment\]/",$body,$match)) { $attaches = $match[1]; if(count($attaches)) { foreach($attaches as $attach) { @@ -351,13 +353,6 @@ function item_post(&$a) { $bookmark = 0; if(preg_match_all("/\[bookmark\=([^\]]*)\](.*?)\[\/bookmark\]/ism",$body,$match,PREG_SET_ORDER)) { $bookmark = 1; -// foreach($match as $mtch) { -// $body = str_replace( -// '[bookmark=' . $mtch[1] . ']' . $mtch[2] . '[/bookmark]', -// '[url=' . $mtch[1] . ']' . $mtch[2] . '[/url]', -// $body -// ); -// } } $body = bb_translate_video($body); @@ -588,6 +583,17 @@ function item_post(&$a) { else $datarray['guid'] = get_guid(); + // preview mode - prepare the body for display and send it via json + + if($preview) { + $b = prepare_body($datarray,true); + require_once('include/conversation.php'); + $o = conversation(&$a,array(array_merge($datarray,$contact_record)),'search',false); + $json = array('preview' => $o); + echo json_encode($json); + killme(); + } + call_hooks('post_local',$datarray); @@ -691,7 +697,9 @@ function item_post(&$a) { 'link' => $a->get_baseurl() . '/display/' . $user['nickname'] . '/' . $post_id, 'source_name' => $datarray['author-name'], 'source_link' => $datarray['author-link'], - 'source_photo' => $datarray['author-avatar'] + 'source_photo' => $datarray['author-avatar'], + 'verb' => ACTIVITY_POST, + 'otype' => 'item' )); } @@ -731,7 +739,9 @@ function item_post(&$a) { 'link' => $a->get_baseurl() . '/display/' . $user['nickname'] . '/' . $post_id, 'source_name' => $datarray['author-name'], 'source_link' => $datarray['author-link'], - 'source_photo' => $datarray['author-avatar'] + 'source_photo' => $datarray['author-avatar'], + 'verb' => ACTIVITY_POST, + 'otype' => 'item' )); } } diff --git a/mod/ping.php b/mod/ping.php index e74ef8314..df07cb768 100644 --- a/mod/ping.php +++ b/mod/ping.php @@ -7,7 +7,6 @@ function ping_init(&$a) { header("Content-type: text/xml"); echo " "; - $xmlhead="<"."?xml version='1.0' encoding='UTF-8' ?".">"; if(local_user()){ @@ -18,11 +17,10 @@ function ping_init(&$a) { $dislikes = array(); $friends = array(); $posts = array(); - $cit = array(); $r = q("SELECT `item`.`id`,`item`.`parent`, `item`.`verb`, `item`.`author-name`, - `item`.`author-link`, `item`.`author-avatar`, `item`.`created`, `item`.`object`, `item`.`body`, + `item`.`author-link`, `item`.`author-avatar`, `item`.`created`, `item`.`object`, `pitem`.`author-name` as `pname`, `pitem`.`author-link` as `plink` FROM `item` INNER JOIN `item` as `pitem` ON `pitem`.`id`=`item`.`parent` WHERE `item`.`unseen` = 1 AND `item`.`visible` = 1 AND @@ -31,8 +29,6 @@ function ping_init(&$a) { intval(local_user()) ); - - $network = count($r); foreach ($r as $it) { switch($it['verb']){ @@ -53,11 +49,8 @@ function ping_init(&$a) { $friends[] = $it; break; default: - $reg = "|@\[url=".$a->get_baseurl()."/profile/".$a->user['nickname']."|"; if ($it['parent']!=$it['id']) { $comments[] = $it; - } else if(preg_match( $reg, $it['body'])){ - $cit[] = $it; } else { $posts[] = $it; } @@ -93,9 +86,6 @@ function ping_init(&$a) { break; default: if ($it['parent']!=$it['id']) $comments[] = $it; - if(preg_match("/@\[[^]]*\]".$a->user['username']."/", $it['body'])){ - $cit[] = $it; - } } } @@ -150,12 +140,12 @@ function ping_init(&$a) { $home"; if ($register!=0) echo "$register"; - $tot = $mail+$intro+$register+count($comments)+count($likes)+count($dislikes)+count($friends)+count($posts)+count($tags)+count($cit); + $tot = $mail+$intro+$register+count($comments)+count($likes)+count($dislikes)+count($friends)+count($posts)+count($tags); echo ' '; if ($intro>0){ foreach ($intros as $i) { - echo xmlize( $a->get_baseurl().'/notifications/intros/'.$i['id'], $i['name'], $i['url'], $i['photo'], relative_date($i['datetime']), t("{0} wants to be your friend") ); + echo xmlize( $a->get_baseurl().'/notifications/'.$i['id'], $i['name'], $i['url'], $i['photo'], relative_date($i['datetime']), t("{0} wants to be your friend") ); }; } if ($mail>0){ @@ -191,7 +181,7 @@ function ping_init(&$a) { } if (count($posts)){ foreach ($posts as $i) { - echo xmlize( $a->get_baseurl().'/display/'.$a->user['nickname']."/".$i['parent'], $i['author-name'], $i['author-link'], $i['author-avatar'], relative_date($i['created']), t("{0} posted") ); + echo xmlize( $a->get_baseurl().'/display/'.$a->user['nickname']."/".$i['parent'], $i['author-name'], $i['author-link'], $i['author-avatar'], relative_date($i['created']), sprintf( t("{0} posted") ) ); }; } if (count($tags)){ @@ -199,11 +189,6 @@ function ping_init(&$a) { echo xmlize( $a->get_baseurl().'/display/'.$a->user['nickname']."/".$i['parent'], $i['author-name'], $i['author-link'], $i['author-avatar'], relative_date($i['created']), sprintf( t("{0} tagged %s's post with #%s"), $i['pname'], $i['tname'] ) ); }; } - if (count($cit)){ - foreach ($cit as $i) { - echo xmlize( $a->get_baseurl().'/display/'.$a->user['nickname']."/".$i['parent'], $i['author-name'], $i['author-link'], $i['author-avatar'], relative_date($i['created']), t("{0} mentioned you in a post") ); - }; - } echo " "; } diff --git a/mod/settings.php b/mod/settings.php index 35902f831..8ca0bb7f8 100644 --- a/mod/settings.php +++ b/mod/settings.php @@ -255,6 +255,10 @@ function settings_post(&$a) { $notify += intval($_POST['notify4']); if(x($_POST,'notify5')) $notify += intval($_POST['notify5']); + if(x($_POST,'notify6')) + $notify += intval($_POST['notify6']); + if(x($_POST,'notify7')) + $notify += intval($_POST['notify7']); $email_changed = false; @@ -807,7 +811,7 @@ function settings_content(&$a) { '$notify3' => array('notify3', t('Someone writes on your profile wall'), ($notify & NOTIFY_WALL), NOTIFY_WALL, ''), '$notify4' => array('notify4', t('Someone writes a followup comment'), ($notify & NOTIFY_COMMENT), NOTIFY_COMMENT, ''), '$notify5' => array('notify5', t('You receive a private message'), ($notify & NOTIFY_MAIL), NOTIFY_MAIL, ''), - + '$notify6' => array('notify6', t('You receive a friend suggestion'), ($notify & NOTIFY_SUGGEST), NOTIFY_SUGGEST, ''), '$h_advn' => t('Advanced Page Settings'), diff --git a/update.php b/update.php index 6eade22f7..4dff59c98 100644 --- a/update.php +++ b/update.php @@ -1,6 +1,6 @@ $feed_id $feed_title - Friendika + Friendica $hub $salmon diff --git a/view/de/strings.php b/view/de/strings.php index b752ef2ea..7c110c093 100644 --- a/view/de/strings.php +++ b/view/de/strings.php @@ -239,11 +239,11 @@ $a->strings["Automatically expire posts after days:"] = "Einträge verfallen aut $a->strings["If empty, posts will not expire. Expired posts will be deleted"] = "Wenn leer verfallen Einträge nie automatisch. Verfallene Einträge werden gelöscht."; $a->strings["Notification Settings"] = "Benachrichtigungseinstellungen"; $a->strings["Send a notification email when:"] = "Benachrichtigungs-Email senden wenn:"; -$a->strings["You receive an introduction"] = "Du eine Vorstellung erhälst"; +$a->strings["You receive an introduction"] = "Du eine Vorstellung erhältst"; $a->strings["Your introductions are confirmed"] = "Eine deiner Vorstellungen angenommen wurde"; $a->strings["Someone writes on your profile wall"] = "Jemand etwas auf deiner Pinnwand postet"; $a->strings["Someone writes a followup comment"] = "Jemand auch einen Kommentar verfasst"; -$a->strings["You receive a private message"] = "Du eine private Nachricht erhälst"; +$a->strings["You receive a private message"] = "Du eine private Nachricht erhältst"; $a->strings["Advanced Page Settings"] = "Erweiterte Seiten Einstellungen"; $a->strings["Saved Searches"] = "Gespeicherte Suchen"; $a->strings["Remove term"] = "Begriff entfernen"; @@ -822,7 +822,7 @@ $a->strings["Post to Twitter"] = "Nach Twitter senden"; $a->strings["Twitter settings updated."] = "Twitter Einstellungen aktualisiert."; $a->strings["Twitter Posting Settings"] = "Twitter Posting Einstellungen"; $a->strings["No consumer key pair for Twitter found. Please contact your site administrator."] = "Kein Consumer Schlüsselpaar für Twitter gefunden. Bitte wende dich an den Administrator der Seite."; -$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 public posts will be posted to Twitter."] = "Auf dieser Friendika Instanz wurde das Twitter Plugin aktiviert dein Account ist allerdings noch nicht mit einem Twitter Account verbunden. Um deinen Account mit Twitter zu verbinden, klick auf den Button weiter unten und gib die PIN die du auf Twitter erhälst hier ein. Es werden ausschließlich deine öffentlichen Nachrichten auf Twitter veröffentlicht."; +$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 public posts will be posted to Twitter."] = "Auf dieser Friendika Instanz wurde das Twitter Plugin aktiviert dein Account ist allerdings noch nicht mit einem Twitter Account verbunden. Um deinen Account mit Twitter zu verbinden, klick auf den Button weiter unten und gib die PIN die du auf Twitter erhältst hier ein. Es werden ausschließlich deine öffentlichen Nachrichten auf Twitter veröffentlicht."; $a->strings["Log in with Twitter"] = "bei Twitter anmelden"; $a->strings["Copy the PIN from Twitter here"] = "Kopiere die Twitter PIN hier her"; $a->strings["Currently connected to: "] = "Momentan verbunden mit: "; diff --git a/view/en/cmnt_received_eml.tpl b/view/en/cmnt_received_eml.tpl deleted file mode 100644 index d60fcd375..000000000 --- a/view/en/cmnt_received_eml.tpl +++ /dev/null @@ -1,18 +0,0 @@ - -Dear $username, - - '$from' commented on an item/conversation which you have been following. - ------ -$body ------ - -Please login at $siteurl to view the complete conversation: - -$display - -Thank you, - $sitename administrator - - - diff --git a/view/en/cmnt_received_html_body_eml.tpl b/view/en/cmnt_received_html_body_eml.tpl deleted file mode 100644 index 95f56a4d5..000000000 --- a/view/en/cmnt_received_html_body_eml.tpl +++ /dev/null @@ -1,25 +0,0 @@ - - - - Friendica Message - - - - - - - - - - - - - - - - - - -
Friendica
$from commented on an item/conversation which you have been following.
$from
$body
Please login to view the complete conversation.
Thank You,
$sitename Administrator
- - diff --git a/view/en/cmnt_received_text_body_eml.tpl b/view/en/cmnt_received_text_body_eml.tpl deleted file mode 100644 index 7dcedeb0c..000000000 --- a/view/en/cmnt_received_text_body_eml.tpl +++ /dev/null @@ -1,14 +0,0 @@ -Dear $username, - - '$from' commented on an item/conversation which you have been following. - ------ -$body ------ - -Please login at $siteurl to view the complete conversation: - -$display - -Thank you, - $sitename administrator \ No newline at end of file diff --git a/view/en/mail_received_html_body_eml.tpl b/view/en/mail_received_html_body_eml.tpl deleted file mode 100644 index bd105a61b..000000000 --- a/view/en/mail_received_html_body_eml.tpl +++ /dev/null @@ -1,26 +0,0 @@ - - - - Friendica Message - - - - - - - - - - - - - - - - - - - -
Friendica
$from sent you a new private message at $siteName.
$from
$title
$htmlversion
Please login at $siteurl/message to read and reply to your private messages.
Thank You,
$siteName Administrator
- - diff --git a/view/en/mail_received_text_body_eml.tpl b/view/en/mail_received_text_body_eml.tpl deleted file mode 100644 index 023867304..000000000 --- a/view/en/mail_received_text_body_eml.tpl +++ /dev/null @@ -1,10 +0,0 @@ -$from sent you a new private message at $siteName. - -$title - -$textversion - -Please login at $siteurl to read and reply to your private messages. - -Thank you, -$siteName administrator diff --git a/view/en/wall_received_eml.tpl b/view/en/wall_received_eml.tpl deleted file mode 100644 index c296de785..000000000 --- a/view/en/wall_received_eml.tpl +++ /dev/null @@ -1,18 +0,0 @@ - -Dear $username, - - '$from' posted something to your profile wall. - ------ -$body ------ - -Please login at $siteurl to view or delete the item: - -$display - -Thank you, - $sitename administrator - - - diff --git a/view/en/wall_received_html_body_eml.tpl b/view/en/wall_received_html_body_eml.tpl deleted file mode 100644 index 91ef61e29..000000000 --- a/view/en/wall_received_html_body_eml.tpl +++ /dev/null @@ -1,24 +0,0 @@ - - - - Friendica Message - - - - - - - - - - - - - - - - - -
Friendica
$from posted something to your profile wall.
$from
$body
Please login at $siteurl to view or delete the post.
Thank You,
$sitename Administrator
- - diff --git a/view/en/wall_received_text_body_eml.tpl b/view/en/wall_received_text_body_eml.tpl deleted file mode 100644 index c296de785..000000000 --- a/view/en/wall_received_text_body_eml.tpl +++ /dev/null @@ -1,18 +0,0 @@ - -Dear $username, - - '$from' posted something to your profile wall. - ------ -$body ------ - -Please login at $siteurl to view or delete the item: - -$display - -Thank you, - $sitename administrator - - - diff --git a/view/jot-header.tpl b/view/jot-header.tpl index 4186ef78e..cdef9ef83 100644 --- a/view/jot-header.tpl +++ b/view/jot-header.tpl @@ -7,6 +7,7 @@ var textlen = 0; function initEditor(cb){ if (editor==false){ $("#profile-jot-text-loading").show(); + $("#jot-title-desc").show(); tinyMCE.init({ theme : "advanced", mode : "specific_textareas", @@ -108,11 +109,46 @@ function enableOnUser(){ {{ endif }} diff --git a/view/settings.tpl b/view/settings.tpl index e15976581..6310ff47e 100644 --- a/view/settings.tpl +++ b/view/settings.tpl @@ -107,6 +107,7 @@ $suggestme {{inc field_intcheckbox.tpl with $field=$notify3 }}{{endinc}} {{inc field_intcheckbox.tpl with $field=$notify4 }}{{endinc}} {{inc field_intcheckbox.tpl with $field=$notify5 }}{{endinc}} +{{inc field_intcheckbox.tpl with $field=$notify6 }}{{endinc}} diff --git a/view/theme/dispy/jot-header.tpl b/view/theme/dispy/jot-header.tpl index 7a1012230..79db0ec5a 100644 --- a/view/theme/dispy/jot-header.tpl +++ b/view/theme/dispy/jot-header.tpl @@ -8,6 +8,7 @@ var textlen = 0; function initEditor(cb) { if (editor==false) { $("#profile-jot-text-loading").show(); + $("#jot-title-desc").show(); tinyMCE.init({ theme : "advanced", mode : "specific_textareas", @@ -100,6 +101,31 @@ function initEditor(cb) { $(this).val(""); initEditor(); }); + + $("#jot-title").mouseout(function() { + $("#jot-title").hide(); + var ttl = $("#jot-title").val(); + $('#jot-title-display').html(ttl); + if(ttl.length) { + $("#jot-title-display").show(); + } + else { + $("#jot-title-desc").show(); + } + }); + + $("#jot-title-display").hover(function() { + $("#jot-title-display").hide(); + $("#jot-title").show(); + $("#jot-title").focus(); + }); + + $("#jot-title-desc").click(function() { + $("#jot-title-desc").hide(); + $("#jot-title").show(); + $("#jot-title").focus(); + }); + var uploader = new window.AjaxUpload( 'wall-image-upload', { action: 'wall_upload/$nickname', diff --git a/view/theme/dispy/jot.tpl b/view/theme/dispy/jot.tpl index a2c883e4b..0ceddb3b7 100644 --- a/view/theme/dispy/jot.tpl +++ b/view/theme/dispy/jot.tpl @@ -14,8 +14,13 @@ - + +
+ + + +
@@ -49,9 +54,6 @@ -