]> git.mxchange.org Git - friendica.git/commitdiff
Merge remote branch 'upstream/master'
authorMichael <icarus@dabo.de>
Wed, 11 Apr 2012 16:48:58 +0000 (18:48 +0200)
committerMichael <icarus@dabo.de>
Wed, 11 Apr 2012 16:48:58 +0000 (18:48 +0200)
133 files changed:
boot.php
doc/Account-Basics.md
doc/Bugs-and-Issues.md
doc/Making-Friends.md
doc/Plugins.md
doc/Settings.md
doc/andfinally.md
doc/groupsandpages.md
doc/guide.md
doc/makingnewfriends.md
doc/network.md
doc/peopleyouknow.md
include/Contact.php
include/Scrape.php
include/contact_widgets.php
include/conversation.php
include/datetime.php
include/dba.php
include/items.php
include/network.php
include/text.php
index.php
mod/admin.php
mod/community.php
mod/contacts.php
mod/dfrn_poll.php
mod/dfrn_request.php
mod/item.php
mod/message.php
mod/newmember.php
mod/profile.php
mod/profiles.php
mod/randprof.php [new file with mode: 0644]
mod/register.php
mod/wall_attach.php
mod/wall_upload.php
util/messages.po
view/admin_site.tpl
view/contact_head.tpl
view/de/messages.po
view/de/strings.php
view/de/update_fail_eml.tpl [new file with mode: 0644]
view/peoplefind.tpl
view/profed_head.tpl
view/profile_edit.tpl
view/theme/darkzero-NS/theme.php
view/theme/darkzero/theme.php
view/theme/diabook-aerith/comment_item.tpl [new file with mode: 0644]
view/theme/diabook-aerith/icons/bb-image.png [new file with mode: 0644]
view/theme/diabook-aerith/icons/bb-url.png [new file with mode: 0644]
view/theme/diabook-aerith/icons/bb-video.png [new file with mode: 0644]
view/theme/diabook-aerith/icons/bold.png [new file with mode: 0644]
view/theme/diabook-aerith/icons/contacts.png
view/theme/diabook-aerith/icons/contacts3.png [new file with mode: 0644]
view/theme/diabook-aerith/icons/italic.png [new file with mode: 0644]
view/theme/diabook-aerith/icons/messages.png
view/theme/diabook-aerith/icons/messages3.png [new file with mode: 0755]
view/theme/diabook-aerith/icons/notifications.png
view/theme/diabook-aerith/icons/notifications3.png [new file with mode: 0755]
view/theme/diabook-aerith/icons/notify.png
view/theme/diabook-aerith/icons/notify3.png [new file with mode: 0755]
view/theme/diabook-aerith/icons/quote.png [new file with mode: 0644]
view/theme/diabook-aerith/icons/underline.png [new file with mode: 0644]
view/theme/diabook-aerith/oembed_video.tpl [new file with mode: 0644]
view/theme/diabook-aerith/style-network.css
view/theme/diabook-aerith/style-profile.css
view/theme/diabook-aerith/style.css
view/theme/diabook-aerith/theme.php
view/theme/diabook-blue/comment_item.tpl [new file with mode: 0644]
view/theme/diabook-blue/icons/bb-image.png [new file with mode: 0644]
view/theme/diabook-blue/icons/bb-url.png [new file with mode: 0644]
view/theme/diabook-blue/icons/bb-video.png [new file with mode: 0644]
view/theme/diabook-blue/icons/bold.png [new file with mode: 0644]
view/theme/diabook-blue/icons/italic.png [new file with mode: 0644]
view/theme/diabook-blue/icons/quote.png [new file with mode: 0644]
view/theme/diabook-blue/icons/underline.png [new file with mode: 0644]
view/theme/diabook-blue/oembed_video.tpl [new file with mode: 0644]
view/theme/diabook-blue/style-network.css
view/theme/diabook-blue/style-profile.css
view/theme/diabook-blue/style.css
view/theme/diabook-blue/theme.php
view/theme/diabook-red/comment_item.tpl [new file with mode: 0644]
view/theme/diabook-red/icons/bb-image.png [new file with mode: 0644]
view/theme/diabook-red/icons/bb-url.png [new file with mode: 0644]
view/theme/diabook-red/icons/bb-video.png [new file with mode: 0644]
view/theme/diabook-red/icons/bold.png [new file with mode: 0644]
view/theme/diabook-red/icons/italic.png [new file with mode: 0644]
view/theme/diabook-red/icons/quote.png [new file with mode: 0644]
view/theme/diabook-red/icons/underline.png [new file with mode: 0644]
view/theme/diabook-red/oembed_video.tpl [new file with mode: 0644]
view/theme/diabook-red/style-network.css
view/theme/diabook-red/style-profile.css
view/theme/diabook-red/style.css
view/theme/diabook-red/theme.php
view/theme/diabook/comment_item.tpl [new file with mode: 0644]
view/theme/diabook/icons/bb-image.png [new file with mode: 0644]
view/theme/diabook/icons/bb-url.png [new file with mode: 0644]
view/theme/diabook/icons/bb-video.png [new file with mode: 0644]
view/theme/diabook/icons/bold.png [new file with mode: 0644]
view/theme/diabook/icons/contacts.png
view/theme/diabook/icons/contacts3.png [new file with mode: 0644]
view/theme/diabook/icons/italic.png [new file with mode: 0644]
view/theme/diabook/icons/messages.png [changed mode: 0755->0644]
view/theme/diabook/icons/messages3.png [new file with mode: 0644]
view/theme/diabook/icons/notifications.png
view/theme/diabook/icons/notifications3.png [new file with mode: 0755]
view/theme/diabook/icons/notify.png
view/theme/diabook/icons/notify3.png [new file with mode: 0755]
view/theme/diabook/icons/quote.png [new file with mode: 0644]
view/theme/diabook/icons/underline.png [new file with mode: 0644]
view/theme/diabook/oembed_video.tpl
view/theme/diabook/style-network.css
view/theme/diabook/style-profile.css
view/theme/diabook/style-settings.css
view/theme/diabook/style.css
view/theme/diabook/theme.php
view/theme/dispy-dark/communityhome.tpl
view/theme/dispy-dark/default.php
view/theme/dispy-dark/style.css
view/theme/dispy-dark/theme.php
view/theme/dispy/communityhome.tpl
view/theme/dispy/default.php
view/theme/dispy/nav.tpl
view/theme/dispy/style.css
view/theme/dispy/theme.php
view/theme/dispy/wall_item.tpl
view/theme/dispy/wallwall_item.tpl
view/theme/duepuntozero/theme.php
view/theme/greenzero/theme.php
view/theme/purplezero/theme.php
view/theme/slack-NS/theme.php
view/theme/slackr/theme.php
view/update_fail_eml.tpl [new file with mode: 0644]

index 576cad6b632cccc75921fe8b41aa9067f0b4f79d..abc7494931bda27e9fecf4bff6fbed8c5e33f499 100644 (file)
--- a/boot.php
+++ b/boot.php
@@ -9,7 +9,7 @@ require_once('include/nav.php');
 require_once('include/cache.php');
 
 define ( 'FRIENDICA_PLATFORM',     'Friendica');
-define ( 'FRIENDICA_VERSION',      '2.3.1304' );
+define ( 'FRIENDICA_VERSION',      '2.3.1308' );
 define ( 'DFRN_PROTOCOL_VERSION',  '2.23'    );
 define ( 'DB_UPDATE_VERSION',      1137      );
 
@@ -20,14 +20,14 @@ define ( 'ATOM_TIME',              'Y-m-d\TH:i:s\Z' );
 /**
  *
  * Image storage quality. Lower numbers save space at cost of image detail.
- * For ease of upgrade, please do not change here. Change jpeg quality with 
- * $a->config['system']['jpeg_quality'] = n; 
- * in .htconfig.php, where n is netween 1 and 100, and with very poor results 
- * below about 50 
+ * For ease of upgrade, please do not change here. Change jpeg quality with
+ * $a->config['system']['jpeg_quality'] = n;
+ * in .htconfig.php, where n is netween 1 and 100, and with very poor results
+ * below about 50
  *
  */
 
-define ( 'JPEG_QUALITY',            100  );         
+define ( 'JPEG_QUALITY',            100  );
 
 /**
  * SSL redirection policies
@@ -68,7 +68,7 @@ define ( 'CONTACT_IS_FRIEND',   3);
 /**
  * Hook array order
  */
+
 define ( 'HOOK_HOOK',      0);
 define ( 'HOOK_FILE',      1);
 define ( 'HOOK_FUNCTION',  2);
@@ -79,9 +79,9 @@ define ( 'HOOK_FUNCTION',  2);
  *
  * PAGE_NORMAL is a typical personal profile account
  * PAGE_SOAPBOX automatically approves all friend requests as CONTACT_IS_SHARING, (readonly)
- * PAGE_COMMUNITY automatically approves all friend requests as CONTACT_IS_SHARING, but with 
+ * PAGE_COMMUNITY automatically approves all friend requests as CONTACT_IS_SHARING, but with
  *      write access to wall and comments (no email and not included in page owner's ACL lists)
- * PAGE_FREELOVE automatically approves all friend requests as full friends (CONTACT_IS_FRIEND). 
+ * PAGE_FREELOVE automatically approves all friend requests as full friends (CONTACT_IS_FRIEND).
  *
  */
 
@@ -93,7 +93,7 @@ define ( 'PAGE_BLOG',              4 );
 define ( 'PAGE_PRVGROUP',          5 );
 
 /**
- * Network and protocol family types 
+ * Network and protocol family types
  */
 
 define ( 'NETWORK_DFRN',             'dfrn');    // Friendica, Mistpark, other DFRN implementations
@@ -103,13 +103,13 @@ define ( 'NETWORK_FEED',             'feed');    // RSS/Atom feeds with no known
 define ( 'NETWORK_DIASPORA',         'dspr');    // Diaspora
 define ( 'NETWORK_MAIL',             'mail');    // IMAP/POP
 define ( 'NETWORK_MAIL2',            'mai2');    // extended IMAP/POP
-define ( 'NETWORK_FACEBOOK',         'face');    // Facebook API     
+define ( 'NETWORK_FACEBOOK',         'face');    // Facebook API
 define ( 'NETWORK_LINKEDIN',         'lnkd');    // LinkedIn
-define ( 'NETWORK_XMPP',             'xmpp');    // XMPP     
+define ( 'NETWORK_XMPP',             'xmpp');    // XMPP
 define ( 'NETWORK_MYSPACE',          'mysp');    // MySpace
 define ( 'NETWORK_GPLUS',            'goog');    // Google+
 
-/*
+/**
  * These numbers are used in stored permissions
  * and existing allocations MUST NEVER BE CHANGED
  * OR RE-ASSIGNED! You may only add to them.
@@ -166,7 +166,7 @@ define ( 'NOTIFY_SYSTEM',   0x8000 );
  */
 
 define ( 'NAMESPACE_ZOT',             'http://purl.org/macgirvin/zot' );
-define ( 'NAMESPACE_DFRN' ,           'http://purl.org/macgirvin/dfrn/1.0' ); 
+define ( 'NAMESPACE_DFRN' ,           'http://purl.org/macgirvin/dfrn/1.0' );
 define ( 'NAMESPACE_THREAD' ,         'http://purl.org/syndication/thread/1.0' );
 define ( 'NAMESPACE_TOMB' ,           'http://purl.org/atompub/tombstones/1.0' );
 define ( 'NAMESPACE_ACTIVITY',        'http://activitystrea.ms/spec/1.0/' );
@@ -232,19 +232,19 @@ function startup() {
 
 
        if (get_magic_quotes_gpc()) {
-       $process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST);
-           while (list($key, $val) = each($process)) {
-           foreach ($val as $k => $v) {
-                   unset($process[$key][$k]);
-               if (is_array($v)) {
-                       $process[$key][stripslashes($k)] = $v;
-                       $process[] = &$process[$key][stripslashes($k)];
-               } else {
-                       $process[$key][stripslashes($k)] = stripslashes($v);
-               }
-               }
-       }
-           unset($process);
+               $process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST);
+               while (list($key, $val) = each($process)) {
+                       foreach ($val as $k => $v) {
+                               unset($process[$key][$k]);
+                               if (is_array($v)) {
+                                       $process[$key][stripslashes($k)] = $v;
+                                       $process[] = &$process[$key][stripslashes($k)];
+                               } else {
+                                       $process[$key][stripslashes($k)] = stripslashes($v);
+                               }
+                       }
+               }
+               unset($process);
        }
 
 }
@@ -255,276 +255,278 @@ function startup() {
  *
  * Our main application structure for the life of this page
  * Primarily deals with the URL that got us here
- * and tries to make some sense of it, and 
+ * and tries to make some sense of it, and
  * stores our page contents and config storage
- * and anything else that might need to be passed around 
- * before we spit the page out. 
+ * and anything else that might need to be passed around
+ * before we spit the page out.
  *
  */
 
 if(! class_exists('App')) {
-class App {
-
-       public  $module_loaded = false;
-       public  $query_string;
-       public  $config;
-       public  $page;
-       public  $profile;
-       public  $user;
-       public  $cid;
-       public  $contact;
-       public  $contacts;
-       public  $page_contact;
-       public  $content;
-       public  $data = array();
-       public  $error = false;
-       public  $cmd;
-       public  $argv;
-       public  $argc;
-       public  $module;
-       public  $pager;
-       public  $strings;   
-       public  $path;
-       public  $hooks;
-       public  $timezone;
-       public  $interactive = true;
-       public  $plugins;
-       public  $apps = array();
-       public  $identities;
+       class App {
+
+               public  $module_loaded = false;
+               public  $query_string;
+               public  $config;
+               public  $page;
+               public  $profile;
+               public  $user;
+               public  $cid;
+               public  $contact;
+               public  $contacts;
+               public  $page_contact;
+               public  $content;
+               public  $data = array();
+               public  $error = false;
+               public  $cmd;
+               public  $argv;
+               public  $argc;
+               public  $module;
+               public  $pager;
+               public  $strings;
+               public  $path;
+               public  $hooks;
+               public  $timezone;
+               public  $interactive = true;
+               public  $plugins;
+               public  $apps = array();
+               public  $identities;
        
-       public $nav_sel;
+               public $nav_sel;
 
-       public $category;
+               public $category;
 
-       private $scheme;
-       private $hostname;
-       private $baseurl;
-       private $db;
+               private $scheme;
+               private $hostname;
+               private $baseurl;
+               private $db;
 
-       private $curl_code;
-       private $curl_headers;
+               private $curl_code;
+               private $curl_headers;
 
-       function __construct() {
+               function __construct() {
 
-               $this->config = array();
-               $this->page = array();
-               $this->pager= array();
+                       $this->config = array();
+                       $this->page = array();
+                       $this->pager= array();
 
-               $this->query_string = '';
+                       $this->query_string = '';
 
-               startup();
+                       startup();
 
-               $this->scheme = 'http';
-               if(x($_SERVER,'HTTPS') && $_SERVER['HTTPS'])
-                       $this->scheme = 'https';
-               elseif(x($_SERVER,'SERVER_PORT') && (intval($_SERVER['SERVER_PORT']) == 443)) 
+                       $this->scheme = 'http';
+                       if(x($_SERVER,'HTTPS') && $_SERVER['HTTPS'])
+                               $this->scheme = 'https';
+                       elseif(x($_SERVER,'SERVER_PORT') && (intval($_SERVER['SERVER_PORT']) == 443))
                        $this->scheme = 'https';
 
 
-               if(x($_SERVER,'SERVER_NAME')) {
-                       $this->hostname = $_SERVER['SERVER_NAME'];
-                       if(x($_SERVER,'SERVER_PORT') && $_SERVER['SERVER_PORT'] != 80 && $_SERVER['SERVER_PORT'] != 443)
-                               $this->hostname .= ':' . $_SERVER['SERVER_PORT'];
-                       /** 
-                        * Figure out if we are running at the top of a domain
-                        * or in a sub-directory and adjust accordingly
-                        */
-
-                       $path = trim(dirname($_SERVER['SCRIPT_NAME']),'/\\');
-                       if(isset($path) && strlen($path) && ($path != $this->path))
-                               $this->path = $path;
-               }
-
-               set_include_path(
-                       "include/$this->hostname" . PATH_SEPARATOR 
-                       . 'include' . PATH_SEPARATOR 
-                       . 'library' . PATH_SEPARATOR 
-                       . 'library/phpsec' . PATH_SEPARATOR 
-                       . '.' );
-
-               if((x($_SERVER,'QUERY_STRING')) && substr($_SERVER['QUERY_STRING'],0,2) === "q=") {
-                       $this->query_string = substr($_SERVER['QUERY_STRING'],2);
-                       // removing trailing / - maybe a nginx problem
-                       if (substr($this->query_string, 0, 1) == "/")
-                               $this->query_string = substr($this->query_string, 1);
-               }
-               if(x($_GET,'q'))
-                       $this->cmd = trim($_GET['q'],'/\\');
+                       if(x($_SERVER,'SERVER_NAME')) {
+                               $this->hostname = $_SERVER['SERVER_NAME'];
+                               if(x($_SERVER,'SERVER_PORT') && $_SERVER['SERVER_PORT'] != 80 && $_SERVER['SERVER_PORT'] != 443)
+                                       $this->hostname .= ':' . $_SERVER['SERVER_PORT'];
+                               /**
+                                * Figure out if we are running at the top of a domain
+                                * or in a sub-directory and adjust accordingly
+                                */
 
-               // unix style "homedir"
-
-               if(substr($this->cmd,0,1) === '~')
-                       $this->cmd = 'profile/' . substr($this->cmd,1);
+                               $path = trim(dirname($_SERVER['SCRIPT_NAME']),'/\\');
+                               if(isset($path) && strlen($path) && ($path != $this->path))
+                                       $this->path = $path;
+                       }
 
-               // Diaspora style profile url
+                       set_include_path(
+                                       "include/$this->hostname" . PATH_SEPARATOR
+                                       . 'include' . PATH_SEPARATOR
+                                       . 'library' . PATH_SEPARATOR
+                                       . 'library/phpsec' . PATH_SEPARATOR
+                                       . '.' );
+
+                       if((x($_SERVER,'QUERY_STRING')) && substr($_SERVER['QUERY_STRING'],0,2) === "q=") {
+                               $this->query_string = substr($_SERVER['QUERY_STRING'],2);
+                               // removing trailing / - maybe a nginx problem
+                               if (substr($this->query_string, 0, 1) == "/")
+                                       $this->query_string = substr($this->query_string, 1);
+                       }
+                       if(x($_GET,'q'))
+                               $this->cmd = trim($_GET['q'],'/\\');
+
+                       // unix style "homedir"
+
+                       if(substr($this->cmd,0,1) === '~')
+                               $this->cmd = 'profile/' . substr($this->cmd,1);
+
+                       // Diaspora style profile url
+
+                       if(substr($this->cmd,0,2) === 'u/')
+                               $this->cmd = 'profile/' . substr($this->cmd,2);
+
+                       /**
+                        *
+                        * Break the URL path into C style argc/argv style arguments for our
+                        * modules. Given "http://example.com/module/arg1/arg2", $this->argc
+                        * will be 3 (integer) and $this->argv will contain:
+                        *   [0] => 'module'
+                        *   [1] => 'arg1'
+                        *   [2] => 'arg2'
+                        *
+                        *
+                        * There will always be one argument. If provided a naked domain
+                        * URL, $this->argv[0] is set to "home".
+                        *
+                        */
 
-               if(substr($this->cmd,0,2) === 'u/')
-                       $this->cmd = 'profile/' . substr($this->cmd,2);
+                       $this->argv = explode('/',$this->cmd);
+                       $this->argc = count($this->argv);
+                       if((array_key_exists('0',$this->argv)) && strlen($this->argv[0])) {
+                               $this->module = str_replace(".", "_", $this->argv[0]);
+                               if(array_key_exists('2',$this->argv)) {
+                                       $this->category = $this->argv[2];
+                               }
+                       }
+                       else {
+                               $this->argc = 1;
+                               $this->argv = array('home');
+                               $this->module = 'home';
+                       }
 
-               /**
-                *
-                * Break the URL path into C style argc/argv style arguments for our
-                * modules. Given "http://example.com/module/arg1/arg2", $this->argc
-                * will be 3 (integer) and $this->argv will contain:
-                *   [0] => 'module'
-                *   [1] => 'arg1'
-                *   [2] => 'arg2'
-                *
-                *
-                * There will always be one argument. If provided a naked domain
-                * URL, $this->argv[0] is set to "home".
-                *
-                */
+                       /**
+                        * Special handling for the webfinger/lrdd host XRD file
+                        */
 
-               $this->argv = explode('/',$this->cmd);
-               $this->argc = count($this->argv);
-               if((array_key_exists('0',$this->argv)) && strlen($this->argv[0])) {
-                       $this->module = str_replace(".", "_", $this->argv[0]);
-                       if(array_key_exists('2',$this->argv)) {
-                           $this->category = $this->argv[2];
+                       if($this->cmd === '.well-known/host-meta') {
+                               $this->argc = 1;
+                               $this->argv = array('hostxrd');
+                               $this->module = 'hostxrd';
                        }
-               }
-               else {
-                       $this->argc = 1;
-                       $this->argv = array('home');
-                       $this->module = 'home';
-               }
 
-               /**
-                * Special handling for the webfinger/lrdd host XRD file
-                */
+                       /**
+                        * See if there is any page number information, and initialise
+                        * pagination
+                        */
 
-               if($this->cmd === '.well-known/host-meta') {
-                       $this->argc = 1;
-                       $this->argv = array('hostxrd');
-                       $this->module = 'hostxrd';
+                       $this->pager['page'] = ((x($_GET,'page')) ? $_GET['page'] : 1);
+                       $this->pager['itemspage'] = 50;
+                       $this->pager['start'] = ($this->pager['page'] * $this->pager['itemspage']) - $this->pager['itemspage'];
+                       $this->pager['total'] = 0;
                }
 
-               /**
-                * See if there is any page number information, and initialise 
-                * pagination
-                */
+               function get_baseurl($ssl = false) {
 
-               $this->pager['page'] = ((x($_GET,'page')) ? $_GET['page'] : 1);
-               $this->pager['itemspage'] = 50;
-               $this->pager['start'] = ($this->pager['page'] * $this->pager['itemspage']) - $this->pager['itemspage'];
-               $this->pager['total'] = 0;
-       }
+                       $scheme = $this->scheme;
 
-       function get_baseurl($ssl = false) {
+                       if((x($this->config,'system')) && (x($this->config['system'],'ssl_policy'))) {
+                               if(intval($this->config['system']['ssl_policy']) === intval(SSL_POLICY_FULL))
+                                       $scheme = 'https';
 
-               $scheme = $this->scheme;
+                               //                      We need to populate the $ssl flag across the entire program before turning this on.
+                               //                      Basically, we'll have $ssl = true on any links which can only be seen by a logged in user
+                               //                      (and also the login link). Anything seen by an outsider will have it turned off.
+                               //                      At present, setting SSL_POLICY_SELFSIGN will only force remote contacts to update their
+                               //                      contact links to this site with "http:" if they are currently using "https:"
 
-               if((x($this->config,'system')) && (x($this->config['system'],'ssl_policy'))) {
-                       if(intval($this->config['system']['ssl_policy']) === intval(SSL_POLICY_FULL)) 
-                               $scheme = 'https';
-
-//                     We need to populate the $ssl flag across the entire program before turning this on.
-//                     Basically, we'll have $ssl = true on any links which can only be seen by a logged in user
-//                     (and also the login link). Anything seen by an outsider will have it turned off.
-//                     At present, setting SSL_POLICY_SELFSIGN will only force remote contacts to update their 
-//                     contact links to this site with "http:" if they are currently using "https:"
+                               //                      if($this->config['system']['ssl_policy'] == SSL_POLICY_SELFSIGN) {
+                               //                              if($ssl)
+                               //                                      $scheme = 'https';
+                               //                              else
+                               //                                      $scheme = 'http';
+                                       //                      }
+               }
 
-//                     if($this->config['system']['ssl_policy'] == SSL_POLICY_SELFSIGN) {
-//                             if($ssl)
-//                                     $scheme = 'https';
-//                             else
-//                                     $scheme = 'http';
-//                     }
+                               $this->baseurl = $scheme . "://" . $this->hostname . ((isset($this->path) && strlen($this->path)) ? '/' . $this->path : '' );
+                               return $this->baseurl;
                }
 
-               $this->baseurl = $scheme . "://" . $this->hostname . ((isset($this->path) && strlen($this->path)) ? '/' . $this->path : '' );
-               return $this->baseurl;
-       }
+               function set_baseurl($url) {
+                       $parsed = @parse_url($url);
 
-       function set_baseurl($url) {
-               $parsed = @parse_url($url);
+                       $this->baseurl = $url;
 
-               $this->baseurl = $url;
+                       if($parsed) {
+                               $this->scheme = $parsed['scheme'];
 
-               if($parsed) {           
-                       $this->scheme = $parsed['scheme'];
+                               $this->hostname = $parsed['host'];
+                               if(x($parsed,'port'))
+                                       $this->hostname .= ':' . $parsed['port'];
+                               if(x($parsed,'path'))
+                                       $this->path = trim($parsed['path'],'\\/');
+                       }
 
-                       $this->hostname = $parsed['host'];
-                       if(x($parsed,'port'))
-                               $this->hostname .= ':' . $parsed['port'];
-                       if(x($parsed,'path'))
-                               $this->path = trim($parsed['path'],'\\/');
                }
 
-       }
+               function get_hostname() {
+                       return $this->hostname;
+               }
 
-       function get_hostname() {
-               return $this->hostname;
-       }
+               function set_hostname($h) {
+                       $this->hostname = $h;
+               }
 
-       function set_hostname($h) {
-               $this->hostname = $h;
-       }
+               function set_path($p) {
+                       $this->path = trim(trim($p),'/');
+               }
 
-       function set_path($p) {
-               $this->path = trim(trim($p),'/');
-       } 
+               function get_path() {
+                       return $this->path;
+               }
 
-       function get_path() {
-               return $this->path;
-       }
+               function set_pager_total($n) {
+                       $this->pager['total'] = intval($n);
+               }
 
-       function set_pager_total($n) {
-               $this->pager['total'] = intval($n);
-       }
+               function set_pager_itemspage($n) {
+                       $this->pager['itemspage'] = intval($n);
+                       $this->pager['start'] = ($this->pager['page'] * $this->pager['itemspage']) - $this->pager['itemspage'];
 
-       function set_pager_itemspage($n) {
-               $this->pager['itemspage'] = intval($n);
-               $this->pager['start'] = ($this->pager['page'] * $this->pager['itemspage']) - $this->pager['itemspage'];
-
-       } 
-
-       function init_pagehead() {
-               $interval = ((local_user()) ? get_pconfig(local_user(),'system','update_interval') : 40000);
-               if($interval < 10000)
-                       $interval = 40000;
-
-               $this->page['title'] = $this->config['sitename'];
-               $tpl = file_get_contents('view/head.tpl');
-               $this->page['htmlhead'] = replace_macros($tpl,array(
-                       '$baseurl' => $this->get_baseurl(), // FIXME for z_path!!!!
-                       '$generator' => 'Friendica' . ' ' . FRIENDICA_VERSION,
-                       '$delitem' => t('Delete this item?'),
-                       '$comment' => t('Comment'),
-                       '$showmore' => t('show more'),
-                       '$showfewer' => t('show fewer'),
-                       '$update_interval' => $interval
-               ));
-       }
+               }
 
-       function set_curl_code($code) {
-               $this->curl_code = $code;
-       }
+               function init_pagehead() {
+                       $interval = ((local_user()) ? get_pconfig(local_user(),'system','update_interval') : 40000);
+                       if($interval < 10000)
+                               $interval = 40000;
+
+                       $this->page['title'] = $this->config['sitename'];
+                       $tpl = file_get_contents('view/head.tpl');
+                       $this->page['htmlhead'] = replace_macros($tpl,array(
+                               '$baseurl' => $this->get_baseurl(), // FIXME for z_path!!!!
+                               '$generator' => 'Friendica' . ' ' . FRIENDICA_VERSION,
+                               '$delitem' => t('Delete this item?'),
+                               '$comment' => t('Comment'),
+                               '$showmore' => t('show more'),
+                               '$showfewer' => t('show fewer'),
+                               '$update_interval' => $interval
+                       ));
+               }
 
-       function get_curl_code() {
-               return $this->curl_code;
-       }
+               function set_curl_code($code) {
+                       $this->curl_code = $code;
+               }
 
-       function set_curl_headers($headers) {
-               $this->curl_headers = $headers;
-       }
+               function get_curl_code() {
+                       return $this->curl_code;
+               }
 
-       function get_curl_headers() {
-               return $this->curl_headers;
-       }
+               function set_curl_headers($headers) {
+                       $this->curl_headers = $headers;
+               }
 
+               function get_curl_headers() {
+                       return $this->curl_headers;
+               }
 
-}}
+
+       }
+}
 
 // retrieve the App structure
 // useful in functions which require it but don't get it passed to them
 
 if(! function_exists('get_app')) {
-function get_app() {
-       global $a;
-       return $a;
-}};
+       function get_app() {
+               global $a;
+               return $a;
+       }
+};
 
 
 // Multi-purpose function to check variable state.
@@ -534,42 +536,44 @@ function get_app() {
 // e.g. x('') or x(0) returns 0;
 
 if(! function_exists('x')) {
-function x($s,$k = NULL) {
-       if($k != NULL) {
-               if((is_array($s)) && (array_key_exists($k,$s))) {
-                       if($s[$k])
-                               return (int) 1;
-                       return (int) 0;
+       function x($s,$k = NULL) {
+               if($k != NULL) {
+                       if((is_array($s)) && (array_key_exists($k,$s))) {
+                               if($s[$k])
+                                       return (int) 1;
+                               return (int) 0;
                }
-               return false;
-       }
-       else {          
-               if(isset($s)) {
-                       if($s) {
-                               return (int) 1;
+                       return false;
+               }
+               else {
+                       if(isset($s)) {
+                               if($s) {
+                                       return (int) 1;
+                               }
+                               return (int) 0;
                        }
-                       return (int) 0;
+                       return false;
                }
-               return false;
        }
-}}
+}
 
 // called from db initialisation if db is dead.
 
 if(! function_exists('system_unavailable')) {
-function system_unavailable() {
-       include('system_unavailable.php');
-       system_down();
-       killme();
-}}
+       function system_unavailable() {
+               include('system_unavailable.php');
+               system_down();
+               killme();
+       }
+}
 
 
 
 function clean_urls() {
        global $a;
-//     if($a->config['system']['clean_urls'])
-               return true;
-//     return false;
+       //      if($a->config['system']['clean_urls'])
+       return true;
+       //      return false;
 }
 
 function z_path() {
@@ -596,125 +600,150 @@ function is_ajax() {
 }
 
 
-// Primarily involved with database upgrade, but also sets the 
+// Primarily involved with database upgrade, but also sets the
 // base url for use in cmdline programs which don't have
 // $_SERVER variables, and synchronising the state of installed plugins.
 
 
 if(! function_exists('check_config')) {
-function check_config(&$a) {
-
-       $build = get_config('system','build');
-       if(! x($build))
-               $build = set_config('system','build',DB_UPDATE_VERSION);
-
-       $url = get_config('system','url');
-
-       // if the url isn't set or the stored url is radically different 
-       // than the currently visited url, store the current value accordingly.
-       // "Radically different" ignores common variations such as http vs https 
-       // and www.example.com vs example.com.
-
-       if((! x($url)) || (! link_compare($url,$a->get_baseurl())))
-               $url = set_config('system','url',$a->get_baseurl());
-
-       if($build != DB_UPDATE_VERSION) {
-               $stored = intval($build);
-               $current = intval(DB_UPDATE_VERSION);
-               if(($stored < $current) && file_exists('update.php')) {
-
-                       load_config('database');
-
-                       // We're reporting a different version than what is currently installed.
-                       // Run any existing update scripts to bring the database up to current.
-
-                       require_once('update.php');
-
-                       // make sure that boot.php and update.php are the same release, we might be
-                       // updating right this very second and the correct version of the update.php
-                       // file may not be here yet. This can happen on a very busy site.
+       function check_config(&$a) {
+
+               $build = get_config('system','build');
+               if(! x($build))
+                       $build = set_config('system','build',DB_UPDATE_VERSION);
+
+               $url = get_config('system','url');
+
+               // if the url isn't set or the stored url is radically different
+               // than the currently visited url, store the current value accordingly.
+               // "Radically different" ignores common variations such as http vs https
+               // and www.example.com vs example.com.
+
+               if((! x($url)) || (! link_compare($url,$a->get_baseurl())))
+                       $url = set_config('system','url',$a->get_baseurl());
+
+               if($build != DB_UPDATE_VERSION) {
+                       $stored = intval($build);
+                       $current = intval(DB_UPDATE_VERSION);
+                       if(($stored < $current) && file_exists('update.php')) {
+
+                               load_config('database');
+
+                               // We're reporting a different version than what is currently installed.
+                               // Run any existing update scripts to bring the database up to current.
+
+                               require_once('update.php');
+
+                               // make sure that boot.php and update.php are the same release, we might be
+                               // updating right this very second and the correct version of the update.php
+                               // file may not be here yet. This can happen on a very busy site.
+
+                               if(DB_UPDATE_VERSION == UPDATE_VERSION) {
+
+                                       for($x = $stored; $x < $current; $x ++) {
+                                               if(function_exists('update_' . $x)) {
+
+                                                       // There could be a lot of processes running or about to run.
+                                                       // We want exactly one process to run the update command.
+                                                       // So store the fact that we're taking responsibility
+                                                       // after first checking to see if somebody else already has.
+
+                                                       // If the update fails or times-out completely you may need to
+                                                       // delete the config entry to try again.
+
+                                                       if(get_config('database','update_' . $x))
+                                                               break;
+                                                       set_config('database','update_' . $x, '1');
+
+                                                       // call the specific update
+
+                                                       global $db;
+                                                       $db->excep(TRUE);
+                                                       try {
+                                                               $db->beginTransaction();
+                                                               $func = 'update_' . $x;
+                                                               $func($a);
+                                                               $db->commit();
+                                                       } catch(Exception $ex) {
+                                                               $db->rollback();
+                                                               //send the administrator an e-mail
+                                                               $email_tpl = get_intltext_template("update_fail_eml.tpl");
+                                                               $email_tpl = replace_macros($email_tpl, array(
+                                                                       '$sitename' => $a->config['sitename'],
+                                                                       '$siteurl' =>  $a->get_baseurl(),
+                                                                       '$update' => $x,
+                                                                       '$error' => $ex->getMessage()));
+                                                               $subject=sprintf(t('Update Error at %s'), $a->get_baseurl());
+                                                                       
+                                                               mail($a->config['admin_email'], $subject, $text,
+                                                                               'From: ' . t('Administrator') . '@' . $_SERVER['SERVER_NAME'] . "\n"
+                                                                               . 'Content-type: text/plain; charset=UTF-8' . "\n"
+                                                                               . 'Content-transfer-encoding: 8bit' );
+                                                               //try the logger
+                                                               logger('update failed: '.$ex->getMessage().EOL);
+                                                       }
+                                                       $db->excep(FALSE);
+                                               }
+                                       }
+                                       set_config('system','build', DB_UPDATE_VERSION);
+                               }
+                       }
+               }
 
-                       if(DB_UPDATE_VERSION == UPDATE_VERSION) {
+               /**
+                *
+                * Synchronise plugins:
+                *
+                * $a->config['system']['addon'] contains a comma-separated list of names
+                * of plugins/addons which are used on this system.
+                * Go through the database list of already installed addons, and if we have
+                * an entry, but it isn't in the config list, call the uninstall procedure
+                * and mark it uninstalled in the database (for now we'll remove it).
+                * Then go through the config list and if we have a plugin that isn't installed,
+                * call the install procedure and add it to the database.
+                *
+                */
 
-                               for($x = $stored; $x < $current; $x ++) {
-                                       if(function_exists('update_' . $x)) {
+               $r = q("SELECT * FROM `addon` WHERE `installed` = 1");
+               if(count($r))
+                       $installed = $r;
+               else
+                       $installed = array();
 
-                                               // There could be a lot of processes running or about to run.
-                                               // We want exactly one process to run the update command.
-                                               // So store the fact that we're taking responsibility
-                                               // after first checking to see if somebody else already has.
+               $plugins = get_config('system','addon');
+               $plugins_arr = array();
 
-                                               // If the update fails or times-out completely you may need to 
-                                               // delete the config entry to try again.
+               if($plugins)
+                       $plugins_arr = explode(',',str_replace(' ', '',$plugins));
 
-                                               if(get_config('database','update_' . $x))
-                                                       break;
-                                               set_config('database','update_' . $x, '1');
+               $a->plugins = $plugins_arr;
 
-                                               // call the specific update
+               $installed_arr = array();
 
-                                               $func = 'update_' . $x;
-                                               $func($a);
-                                       }
-                               }
-                               set_config('system','build', DB_UPDATE_VERSION);
+               if(count($installed)) {
+                       foreach($installed as $i) {
+                               if(! in_array($i['name'],$plugins_arr)) {
+                                       uninstall_plugin($i['name']);
                        }
-               }
-       }
-
-       /**
-        *
-        * Synchronise plugins:
-        *
-        * $a->config['system']['addon'] contains a comma-separated list of names
-        * of plugins/addons which are used on this system. 
-        * Go through the database list of already installed addons, and if we have
-        * an entry, but it isn't in the config list, call the uninstall procedure
-        * and mark it uninstalled in the database (for now we'll remove it).
-        * Then go through the config list and if we have a plugin that isn't installed,
-        * call the install procedure and add it to the database.
-        *
-        */
-
-       $r = q("SELECT * FROM `addon` WHERE `installed` = 1");
-       if(count($r))
-               $installed = $r;
-       else
-               $installed = array();
-
-       $plugins = get_config('system','addon');
-       $plugins_arr = array();
-
-       if($plugins)
-               $plugins_arr = explode(',',str_replace(' ', '',$plugins));
-
-       $a->plugins = $plugins_arr;
-
-       $installed_arr = array();
-
-       if(count($installed)) {
-               foreach($installed as $i) {
-                       if(! in_array($i['name'],$plugins_arr)) {
-                               uninstall_plugin($i['name']);
+                               else
+                                       $installed_arr[] = $i['name'];
                        }
-                       else
-                               $installed_arr[] = $i['name'];
                }
-       }
 
-       if(count($plugins_arr)) {
-               foreach($plugins_arr as $p) {
-                       if(! in_array($p,$installed_arr)) {
-                               install_plugin($p);
+               if(count($plugins_arr)) {
+                       foreach($plugins_arr as $p) {
+                               if(! in_array($p,$installed_arr)) {
+                                       install_plugin($p);
+                               }
                        }
                }
-       }
 
 
-       load_hooks();
+               load_hooks();
 
-       return;
-}}
+               return;
+       }
+}
 
 
 function get_guid($size=16) {
@@ -735,116 +764,124 @@ function get_guid($size=16) {
 // returns the complete html for inserting into the page
 
 if(! function_exists('login')) {
-function login($register = false, $hiddens=false) {
-       $a = get_app();
-       $o = "";
-       $reg = false;
-       if ($register) {
-               $reg = array(
-                       'title' => t('Create a New Account'),
-                       'desc' => t('Register')
-               );
-       }
+       function login($register = false, $hiddens=false) {
+               $a = get_app();
+               $o = "";
+               $reg = false;
+               if ($register) {
+                       $reg = array(
+                               'title' => t('Create a New Account'),
+                               'desc' => t('Register')
+                       );
+               }
 
-       $noid = get_config('system','no_openid');
+               $noid = get_config('system','no_openid');
        
-       $dest_url = $a->get_baseurl(true) . '/' . $a->query_string;
+               $dest_url = $a->get_baseurl(true) . '/' . $a->query_string;
 
-       if(local_user()) {
-               $tpl = get_markup_template("logout.tpl");
-       }
-       else {
-               $tpl = get_markup_template("login.tpl");
-               $_SESSION['return_url'] = $a->query_string;
-       }
+               if(local_user()) {
+                       $tpl = get_markup_template("logout.tpl");
+               }
+               else {
+                       $tpl = get_markup_template("login.tpl");
+                       $_SESSION['return_url'] = $a->query_string;
+               }
 
 
-       $o .= replace_macros($tpl,array(
+               $o .= replace_macros($tpl,array(
 
-               '$dest_url'     => $dest_url,
-               '$logout'       => t('Logout'),
-               '$login'        => t('Login'),
-               
-               '$lname'                => array('username', t('Nickname or Email address: ') , '', ''),
-               '$lpassword'    => array('password', t('Password: '), '', ''),
-               
-               '$openid'               => !$noid,
-               '$lopenid'      => array('openid_url', t('Or login using OpenID: '),'',''),
-               
-               '$hiddens'      => $hiddens,
-               
-               '$register'     => $reg,
-               
-               '$lostpass'     => t('Forgot your password?'),
-               '$lostlink'     => t('Password Reset'),
-       ));
+                       '$dest_url'     => $dest_url,
+                       '$logout'       => t('Logout'),
+                       '$login'        => t('Login'),
+       
+                       '$lname'                => array('username', t('Nickname or Email address: ') , '', ''),
+                       '$lpassword'    => array('password', t('Password: '), '', ''),
+       
+                       '$openid'               => !$noid,
+                       '$lopenid'      => array('openid_url', t('Or login using OpenID: '),'',''),
+       
+                       '$hiddens'      => $hiddens,
+       
+                       '$register'     => $reg,
+       
+                       '$lostpass'     => t('Forgot your password?'),
+                       '$lostlink'     => t('Password Reset'),
+               ));
 
-       call_hooks('login_hook',$o);
+               call_hooks('login_hook',$o);
 
-       return $o;
-}}
+               return $o;
+       }
+}
 
-// Used to end the current process, after saving session state. 
+// Used to end the current process, after saving session state.
 
 if(! function_exists('killme')) {
-function killme() {
-       session_write_close();
-       exit;
-}}
+       function killme() {
+               session_write_close();
+               exit;
+       }
+}
 
 // redirect to another URL and terminate this process.
 
 if(! function_exists('goaway')) {
-function goaway($s) {
-       header("Location: $s");
-       killme();
-}}
+       function goaway($s) {
+               header("Location: $s");
+               killme();
+       }
+}
 
 
 // Returns the uid of locally logged in user or false.
 
 if(! function_exists('local_user')) {
-function local_user() {
-       if((x($_SESSION,'authenticated')) && (x($_SESSION,'uid')))
-               return intval($_SESSION['uid']);
-       return false;
-}}
+       function local_user() {
+               if((x($_SESSION,'authenticated')) && (x($_SESSION,'uid')))
+                       return intval($_SESSION['uid']);
+               return false;
+       }
+}
 
 // Returns contact id of authenticated site visitor or false
 
 if(! function_exists('remote_user')) {
-function remote_user() {
-       if((x($_SESSION,'authenticated')) && (x($_SESSION,'visitor_id')))
-               return intval($_SESSION['visitor_id']);
-       return false;
-}}
+       function remote_user() {
+               if((x($_SESSION,'authenticated')) && (x($_SESSION,'visitor_id')))
+                       return intval($_SESSION['visitor_id']);
+               return false;
+       }
+}
 
 // contents of $s are displayed prominently on the page the next time
 // a page is loaded. Usually used for errors or alerts.
 
 if(! function_exists('notice')) {
-function notice($s) {
-       $a = get_app();
-       if(! x($_SESSION,'sysmsg'))     $_SESSION['sysmsg'] = array();
-       if($a->interactive)
-               $_SESSION['sysmsg'][] = $s;
-}}
+       function notice($s) {
+               $a = get_app();
+               if(! x($_SESSION,'sysmsg'))     $_SESSION['sysmsg'] = array();
+               if($a->interactive)
+                       $_SESSION['sysmsg'][] = $s;
+       }
+}
 if(! function_exists('info')) {
-function info($s) {
-       $a = get_app();
-       if(! x($_SESSION,'sysmsg_info')) $_SESSION['sysmsg_info'] = array();
-       if($a->interactive)
-               $_SESSION['sysmsg_info'][] = $s;
-}}
+       function info($s) {
+               $a = get_app();
+               if(! x($_SESSION,'sysmsg_info')) $_SESSION['sysmsg_info'] = array();
+               if($a->interactive)
+                       $_SESSION['sysmsg_info'][] = $s;
+       }
+}
 
 
 // wrapper around config to limit the text length of an incoming message
 
 if(! function_exists('get_max_import_size')) {
-function get_max_import_size() {
-       global $a;
-       return ((x($a->config,'max_import_size')) ? $a->config['max_import_size'] : 0 );
-}}
+       function get_max_import_size() {
+               global $a;
+               return ((x($a->config,'max_import_size')) ? $a->config['max_import_size'] : 0 );
+       }
+}
 
 
 
@@ -855,7 +892,7 @@ function get_max_import_size() {
  * @parameter string $nickname
  * @parameter int    $profile
  *
- * Summary: Loads a profile into the page sidebar. 
+ * Summary: Loads a profile into the page sidebar.
  * The function requires a writeable copy of the main App structure, and the nickname
  * of a registered local account.
  *
@@ -865,87 +902,89 @@ function get_max_import_size() {
  * by the owner.
  *
  * Profile information is placed in the App structure for later retrieval.
- * Honours the owner's chosen theme for display. 
+ * Honours the owner's chosen theme for display.
  *
  */
 
 if(! function_exists('profile_load')) {
-function profile_load(&$a, $nickname, $profile = 0) {
-       if(remote_user()) {
-               $r = q("SELECT `profile-id` FROM `contact` WHERE `id` = %d LIMIT 1",
-                       intval($_SESSION['visitor_id']));
-               if(count($r))
-                       $profile = $r[0]['profile-id'];
-       } 
+       function profile_load(&$a, $nickname, $profile = 0) {
+               if(remote_user()) {
+                       $r = q("SELECT `profile-id` FROM `contact` WHERE `id` = %d LIMIT 1",
+                                       intval($_SESSION['visitor_id']));
+                       if(count($r))
+                               $profile = $r[0]['profile-id'];
+               }
 
-       $r = null;
+               $r = null;
                           
-       if($profile) {
-               $profile_int = intval($profile);
-               $r = q("SELECT `profile`.`uid` AS `profile_uid`, `profile`.* , `contact`.`avatar-date` AS picdate, `user`.* FROM `profile` 
-                       left join `contact` on `contact`.`uid` = `profile`.`uid` LEFT JOIN `user` ON `profile`.`uid` = `user`.`uid`
-                       WHERE `user`.`nickname` = '%s' AND `profile`.`id` = %d and `contact`.`self` = 1 LIMIT 1",
-                       dbesc($nickname),
-                       intval($profile_int)
-               );
-       }
-       if((! $r) && (!  count($r))) {  
-               $r = q("SELECT `profile`.`uid` AS `profile_uid`, `profile`.* , `contact`.`avatar-date` AS picdate, `user`.* FROM `profile` 
-                       left join `contact` on `contact`.`uid` = `profile`.`uid` LEFT JOIN `user` ON `profile`.`uid` = `user`.`uid`
-                       WHERE `user`.`nickname` = '%s' AND `profile`.`is-default` = 1 and `contact`.`self` = 1 LIMIT 1",
-                       dbesc($nickname)
-               );
-       }
+               if($profile) {
+                       $profile_int = intval($profile);
+                       $r = q("SELECT `profile`.`uid` AS `profile_uid`, `profile`.* , `contact`.`avatar-date` AS picdate, `user`.* FROM `profile`
+                                       left join `contact` on `contact`.`uid` = `profile`.`uid` LEFT JOIN `user` ON `profile`.`uid` = `user`.`uid`
+                                       WHERE `user`.`nickname` = '%s' AND `profile`.`id` = %d and `contact`.`self` = 1 LIMIT 1",
+                                       dbesc($nickname),
+                                       intval($profile_int)
+                       );
+               }
+               if((! $r) && (!  count($r))) {
+                       $r = q("SELECT `profile`.`uid` AS `profile_uid`, `profile`.* , `contact`.`avatar-date` AS picdate, `user`.* FROM `profile`
+                                       left join `contact` on `contact`.`uid` = `profile`.`uid` LEFT JOIN `user` ON `profile`.`uid` = `user`.`uid`
+                                       WHERE `user`.`nickname` = '%s' AND `profile`.`is-default` = 1 and `contact`.`self` = 1 LIMIT 1",
+                                       dbesc($nickname)
+                       );
+               }
 
-       if(($r === false) || (! count($r))) {
-               notice( t('Requested profile is not available.') . EOL );
-               $a->error = 404;
-               return;
-       }
+               if(($r === false) || (! count($r))) {
+                       notice( t('Requested profile is not available.') . EOL );
+                       $a->error = 404;
+                       return;
+               }
        
-       // fetch user tags if this isn't the default profile
+               // fetch user tags if this isn't the default profile
+
+               if(! $r[0]['is-default']) {
+                       $x = q("select `pub_keywords` from `profile` where uid = %d and `is-default` = 1 limit 1",
+                                       intval($profile_uid)
+                       );
+                       if($x && count($x))
+                               $r[0]['pub_keywords'] = $x[0]['pub_keywords'];
+               }
 
-       if(! $r[0]['is-default']) {
-               $x = q("select `pub_keywords` from `profile` where uid = %d and `is-default` = 1 limit 1",
-                       intval($profile_uid)
-               );
-               if($x && count($x))
-                       $r[0]['pub_keywords'] = $x[0]['pub_keywords'];
-       }
+               $a->profile = $r[0];
 
-       $a->profile = $r[0];
 
+               $a->page['title'] = $a->profile['name'] . " @ " . $a->config['sitename'];
+               $_SESSION['theme'] = $a->profile['theme'];
 
-       $a->page['title'] = $a->profile['name'] . " @ " . $a->config['sitename'];
-       $_SESSION['theme'] = $a->profile['theme'];
+               /**
+                * load/reload current theme info
+                */
 
-       /**
-        * load/reload current theme info
-        */
-       $theme_info_file = "view/theme/".current_theme()."/theme.php";
-       if (file_exists($theme_info_file)){
-               require_once($theme_info_file);
-       }
+               $theme_info_file = "view/theme/".current_theme()."/theme.php";
+               if (file_exists($theme_info_file)){
+                       require_once($theme_info_file);
+               }
 
-       if(! (x($a->page,'aside')))
-               $a->page['aside'] = '';
+               if(! (x($a->page,'aside')))
+                       $a->page['aside'] = '';
 
-       if(local_user() && local_user() == $a->profile['uid']) {
-               $a->page['aside'] .= replace_macros(get_markup_template('profile_edlink.tpl'),array(
-                       '$editprofile' => t('Edit profile'),
-                       '$profid' => $a->profile['id']
-               ));
-       }
+               if(local_user() && local_user() == $a->profile['uid']) {
+                       $a->page['aside'] .= replace_macros(get_markup_template('profile_edlink.tpl'),array(
+                               '$editprofile' => t('Edit profile'),
+                               '$profid' => $a->profile['id']
+                       ));
+               }
 
-       $block = (((get_config('system','block_public')) && (! local_user()) && (! remote_user())) ? true : false);
+               $block = (((get_config('system','block_public')) && (! local_user()) && (! remote_user())) ? true : false);
 
-       $a->page['aside'] .= profile_sidebar($a->profile, $block);
+               $a->page['aside'] .= profile_sidebar($a->profile, $block);
 
-       /*if(! $block)
-               $a->page['aside'] .= contact_block();*/
+               /*if(! $block)
+                $a->page['aside'] .= contact_block();*/
 
-       return;
-}}
+               return;
+       }
+}
 
 
 /**
@@ -965,478 +1004,488 @@ function profile_load(&$a, $nickname, $profile = 0) {
 
 
 if(! function_exists('profile_sidebar')) {
-function profile_sidebar($profile, $block = 0) {
+       function profile_sidebar($profile, $block = 0) {
 
-       $a = get_app();
+               $a = get_app();
 
-       $o = '';
-       $location = false;
-       $address = false;
-       $pdesc = true;
+               $o = '';
+               $location = false;
+               $address = false;
+               $pdesc = true;
 
-       if((! is_array($profile)) && (! count($profile)))
-               return $o;
+               if((! is_array($profile)) && (! count($profile)))
+                       return $o;
 
-       $profile['picdate'] = urlencode($profile['picdate']);
+               $profile['picdate'] = urlencode($profile['picdate']);
 
-       call_hooks('profile_sidebar_enter', $profile);
+               call_hooks('profile_sidebar_enter', $profile);
 
        
-       // don't show connect link to yourself
-       $connect = (($profile['uid'] != local_user()) ? t('Connect')  : False);
+               // don't show connect link to yourself
+               $connect = (($profile['uid'] != local_user()) ? t('Connect')  : False);
 
-       // don't show connect link to authenticated visitors either
+               // don't show connect link to authenticated visitors either
 
-       if((remote_user()) && ($_SESSION['visitor_visiting'] == $profile['uid']))
-               $connect = False; 
+               if((remote_user()) && ($_SESSION['visitor_visiting'] == $profile['uid']))
+                       $connect = False;
 
-       if(get_my_url() && $profile['unkmail'])
-               $wallmessage = t('Message');
-       else
-               $wallmessage = false;
+               if(get_my_url() && $profile['unkmail'])
+                       $wallmessage = t('Message');
+               else
+                       $wallmessage = false;
 
 
 
-       // show edit profile to yourself
-       if ($profile['uid'] == local_user()) {
-               $profile['edit'] = array($a->get_baseurl(). '/profiles', t('Profiles'),"", t('Manage/edit profiles'));
+               // show edit profile to yourself
+               if ($profile['uid'] == local_user()) {
+                       $profile['edit'] = array($a->get_baseurl(). '/profiles', t('Profiles'),"", t('Manage/edit profiles'));
                
-               $r = q("SELECT * FROM `profile` WHERE `uid` = %d",
-                               local_user());
+                       $r = q("SELECT * FROM `profile` WHERE `uid` = %d",
+                                       local_user());
                
-               $profile['menu'] = array(
-                       'chg_photo' => t('Change profile photo'),
-                       'cr_new' => t('Create New Profile'),
-                       'entries' => array(),
-               );
-                               
-               if(count($r)) {
+                       $profile['menu'] = array(
+                               'chg_photo' => t('Change profile photo'),
+                               'cr_new' => t('Create New Profile'),
+                               'entries' => array(),
+                       );
+
+                       if(count($r)) {
+
+                               foreach($r as $rr) {
+                                       $profile['menu']['entries'][] = array(
+                                               'photo' => $rr['thumb'],
+                                               'id' => $rr['id'],
+                                               'alt' => t('Profile Image'),
+                                               'profile_name' => $rr['profile-name'],
+                                               'isdefault' => $rr['is-default'],
+                                               'visibile_to_everybody' =>  t('visible to everybody'),
+                                               'edit_visibility' => t('Edit visibility'),
+
+                                       );
+                               }
+
 
-                       foreach($r as $rr) {
-                               $profile['menu']['entries'][] = array(
-                                       'photo' => $rr['thumb'],
-                                       'id' => $rr['id'],
-                                       'alt' => t('Profile Image'),
-                                       'profile_name' => $rr['profile-name'],
-                                       'isdefault' => $rr['is-default'],
-                                       'visibile_to_everybody' =>  t('visible to everybody'),
-                                       'edit_visibility' => t('Edit visibility'),
-                                       
-                               );
                        }
 
 
                }
-               
-               
-       }
 
 
 
        
-       if((x($profile,'address') == 1) 
-               || (x($profile,'locality') == 1) 
-               || (x($profile,'region') == 1) 
-               || (x($profile,'postal-code') == 1) 
-               || (x($profile,'country-name') == 1))
-               $location = t('Location:');
+               if((x($profile,'address') == 1)
+                               || (x($profile,'locality') == 1)
+                               || (x($profile,'region') == 1)
+                               || (x($profile,'postal-code') == 1)
+                               || (x($profile,'country-name') == 1))
+                       $location = t('Location:');
 
-       $gender = ((x($profile,'gender') == 1) ? t('Gender:') : False);
+               $gender = ((x($profile,'gender') == 1) ? t('Gender:') : False);
 
 
-       $marital = ((x($profile,'marital') == 1) ?  t('Status:') : False);
+               $marital = ((x($profile,'marital') == 1) ?  t('Status:') : False);
 
-       $homepage = ((x($profile,'homepage') == 1) ?  t('Homepage:') : False);
+               $homepage = ((x($profile,'homepage') == 1) ?  t('Homepage:') : False);
 
-       if(($profile['hidewall'] || $block) && (! local_user()) && (! remote_user())) {
-               $location = $pdesc = $gender = $marital = $homepage = False;
-       }
+               if(($profile['hidewall'] || $block) && (! local_user()) && (! remote_user())) {
+                       $location = $pdesc = $gender = $marital = $homepage = False;
+               }
 
-       $firstname = ((strpos($profile['name'],' ')) 
-               ? trim(substr($profile['name'],0,strpos($profile['name'],' '))) : $profile['name']);
-       $lastname = (($firstname === $profile['name']) ? '' : trim(substr($profile['name'],strlen($firstname))));
-
-       $diaspora = array(
-               'podloc' => $a->get_baseurl(),
-               'searchable' => (($profile['publish'] && $profile['net-publish']) ? 'true' : 'false' ),
-               'nickname' => $profile['nickname'],
-               'fullname' => $profile['name'],
-               'firstname' => $firstname,
-               'lastname' => $lastname,
-               'photo300' => $a->get_baseurl() . '/photo/custom/300/' . $profile['uid'] . '.jpg',
-               'photo100' => $a->get_baseurl() . '/photo/custom/100/' . $profile['uid'] . '.jpg',
-               'photo50' => $a->get_baseurl() . '/photo/custom/50/'  . $profile['uid'] . '.jpg',
-       );
-
-       if (!$block){
-               $contact_block = contact_block();
-       }
+               $firstname = ((strpos($profile['name'],' '))
+                               ? trim(substr($profile['name'],0,strpos($profile['name'],' '))) : $profile['name']);
+               $lastname = (($firstname === $profile['name']) ? '' : trim(substr($profile['name'],strlen($firstname))));
+
+               $diaspora = array(
+                       'podloc' => $a->get_baseurl(),
+                       'searchable' => (($profile['publish'] && $profile['net-publish']) ? 'true' : 'false' ),
+                       'nickname' => $profile['nickname'],
+                       'fullname' => $profile['name'],
+                       'firstname' => $firstname,
+                       'lastname' => $lastname,
+                       'photo300' => $a->get_baseurl() . '/photo/custom/300/' . $profile['uid'] . '.jpg',
+                       'photo100' => $a->get_baseurl() . '/photo/custom/100/' . $profile['uid'] . '.jpg',
+                       'photo50' => $a->get_baseurl() . '/photo/custom/50/'  . $profile['uid'] . '.jpg',
+               );
+
+               if (!$block){
+                       $contact_block = contact_block();
+               }
 
 
-       $tpl = get_markup_template('profile_vcard.tpl');
+               $tpl = get_markup_template('profile_vcard.tpl');
 
-       $o .= replace_macros($tpl, array(
-               '$profile' => $profile,
-               '$connect'  => $connect,                
-               '$wallmessage' => $wallmessage,
-               '$location' => template_escape($location),
-               '$gender'   => $gender,
-               '$pdesc'        => $pdesc,
-               '$marital'  => $marital,
-               '$homepage' => $homepage,
-               '$diaspora' => $diaspora,
-               '$contact_block' => $contact_block,
-       ));
+               $o .= replace_macros($tpl, array(
+                       '$profile' => $profile,
+                       '$connect'  => $connect,
+                       '$wallmessage' => $wallmessage,
+                       '$location' => template_escape($location),
+                       '$gender'   => $gender,
+                       '$pdesc'        => $pdesc,
+                       '$marital'  => $marital,
+                       '$homepage' => $homepage,
+                       '$diaspora' => $diaspora,
+                       '$contact_block' => $contact_block,
+               ));
 
 
-       $arr = array('profile' => &$profile, 'entry' => &$o);
+               $arr = array('profile' => &$profile, 'entry' => &$o);
 
-       call_hooks('profile_sidebar', $arr);
+               call_hooks('profile_sidebar', $arr);
 
-       return $o;
-}}
+               return $o;
+       }
+}
 
 
 if(! function_exists('get_birthdays')) {
-function get_birthdays() {
+       function get_birthdays() {
 
-       $a = get_app();
-       $o = '';
+               $a = get_app();
+               $o = '';
 
-       if(! local_user())
-               return $o;
+               if(! local_user())
+                       return $o;
 
-       $bd_format = t('g A l F d') ; // 8 AM Friday January 18
-       $bd_short = t('F d');
-
-       $r = q("SELECT `event`.*, `event`.`id` AS `eid`, `contact`.* FROM `event` 
-               LEFT JOIN `contact` ON `contact`.`id` = `event`.`cid` 
-               WHERE `event`.`uid` = %d AND `type` = 'birthday' AND `start` < '%s' AND `finish` > '%s' 
-               ORDER BY `start` ASC ",
-               intval(local_user()),
-               dbesc(datetime_convert('UTC','UTC','now + 6 days')),
-               dbesc(datetime_convert('UTC','UTC','now'))
-       );
-
-       if($r && count($r)) {
-               $total = 0;
-               $now = strtotime('now');
-               $cids = array();
-
-               $istoday = false;
-               foreach($r as $rr) {
-                       if(strlen($rr['name']))
-                               $total ++;
-                               if((strtotime($rr['start'] . ' +00:00') < $now) && (strtotime($rr['finish'] . ' +00:00') > $now))
-                                       $istoday = true;
-               }
-               $classtoday = $istoday ? ' birthday-today ' : '';
-               if($total) {
-                       $o .= '<div id="birthday-notice" class="birthday-notice fakelink' . $classtoday . '" onclick=openClose(\'birthday-wrapper\'); >' . t('Birthday Reminders') . ' ' . '(' . $total . ')' . '</div>'; 
-                       $o .= '<div id="birthday-wrapper" style="display: none;" ><div id="birthday-title">' . t('Birthdays this week:') . '</div>'; 
-                       $o .= '<div id="birthday-title-end"></div>';
+               $bd_format = t('g A l F d') ; // 8 AM Friday January 18
+               $bd_short = t('F d');
 
-                       foreach($r as $rr) {
-                               if(! strlen($rr['name']))
-                                       continue;
-
-                               // avoid duplicates
+               $r = q("SELECT `event`.*, `event`.`id` AS `eid`, `contact`.* FROM `event`
+                               LEFT JOIN `contact` ON `contact`.`id` = `event`.`cid`
+                               WHERE `event`.`uid` = %d AND `type` = 'birthday' AND `start` < '%s' AND `finish` > '%s'
+                               ORDER BY `start` ASC ",
+                               intval(local_user()),
+                               dbesc(datetime_convert('UTC','UTC','now + 6 days')),
+                               dbesc(datetime_convert('UTC','UTC','now'))
+               );
 
-                               if(in_array($rr['cid'],$cids))
-                                       continue;
-                               $cids[] = $rr['cid'];
+               if($r && count($r)) {
+                       $total = 0;
+                       $now = strtotime('now');
+                       $cids = array();
 
-                               $today = (((strtotime($rr['start'] . ' +00:00') < $now) && (strtotime($rr['finish'] . ' +00:00') > $now)) ? true : false); 
-                               $sparkle = '';
-                               $url = $rr['url'];
-                               if($rr['network'] === NETWORK_DFRN) {
-                                       $sparkle = " sparkle";
-                                       $url = $a->get_baseurl() . '/redir/'  . $rr['cid'];
-                               }
+                       $istoday = false;
+                       foreach($r as $rr) {
+                               if(strlen($rr['name']))
+                                       $total ++;
+                               if((strtotime($rr['start'] . ' +00:00') < $now) && (strtotime($rr['finish'] . ' +00:00') > $now))
+                                       $istoday = true;
+                       }
+                       $classtoday = $istoday ? ' birthday-today ' : '';
+                       if($total) {
+                               $o .= '<div id="birthday-notice" class="birthday-notice fakelink' . $classtoday . '" onclick=openClose(\'birthday-wrapper\'); >' . t('Birthday Reminders') . ' ' . '(' . $total . ')' . '</div>';
+                               $o .= '<div id="birthday-wrapper" style="display: none;" ><div id="birthday-title">' . t('Birthdays this week:') . '</div>';
+                               $o .= '<div id="birthday-title-end"></div>';
+
+                               foreach($r as $rr) {
+                                       if(! strlen($rr['name']))
+                                               continue;
+
+                                       // avoid duplicates
+
+                                       if(in_array($rr['cid'],$cids))
+                                               continue;
+                                       $cids[] = $rr['cid'];
+
+                                       $today = (((strtotime($rr['start'] . ' +00:00') < $now) && (strtotime($rr['finish'] . ' +00:00') > $now)) ? true : false);
+                                       $sparkle = '';
+                                       $url = $rr['url'];
+                                       if($rr['network'] === NETWORK_DFRN) {
+                                               $sparkle = " sparkle";
+                                               $url = $a->get_baseurl() . '/redir/'  . $rr['cid'];
+                                       }
        
-                               $o .= '<div class="birthday-list" id="birthday-' . $rr['eid'] . '"><a class="birthday-link$sparkle" target="redir" href="' 
-                               . $url . '">' . $rr['name'] . '</a> ' 
-                               . day_translate(datetime_convert('UTC', $a->timezone, $rr['start'], $rr['adjust'] ? $bd_format : $bd_short)) . (($today) ?  ' ' . t('[today]') : '')
-                               . '</div>' ;
+                                       $o .= '<div class="birthday-list" id="birthday-' . $rr['eid'] . '"><a class="birthday-link$sparkle" target="redir" href="'
+                                       . $url . '">' . $rr['name'] . '</a> '
+                                       . day_translate(datetime_convert('UTC', $a->timezone, $rr['start'], $rr['adjust'] ? $bd_format : $bd_short)) . (($today) ?  ' ' . t('[today]') : '')
+                                       . '</div>' ;
+                               }
+                               $o .= '</div></div>';
                        }
-                       $o .= '</div></div>';
                }
+               return $o;
        }
-       return $o;
-}}
+}
 
 
 if(! function_exists('get_events')) {
-function get_events() {
+       function get_events() {
 
-       require_once('include/bbcode.php');
+               require_once('include/bbcode.php');
 
-       $a = get_app();
-       $o = '';
+               $a = get_app();
+               $o = '';
 
-       if(! local_user())
-               return $o;
+               if(! local_user())
+                       return $o;
 
-       $bd_format = t('g A l F d') ; // 8 AM Friday January 18
-       $bd_short = t('F d');
-
-       $r = q("SELECT `event`.* FROM `event` 
-               WHERE `event`.`uid` = %d AND `type` != 'birthday' AND `start` < '%s' AND `start` > '%s'
-               ORDER BY `start` ASC ",
-               intval(local_user()),
-               dbesc(datetime_convert('UTC','UTC','now + 6 days')),
-               dbesc(datetime_convert('UTC','UTC','now - 1 days'))
-       );
-
-       if($r && count($r)) {
-               $now = strtotime('now');
-               $istoday = false;
-               foreach($r as $rr) {
-                       if(strlen($rr['name']))
-                               $total ++;
-
-                       $strt = datetime_convert('UTC',$rr['convert'] ? $a->timezone : 'UTC',$rr['start'],'Y-m-d');
-                       if($strt === datetime_convert('UTC',$a->timezone,'now','Y-m-d'))
-                               $istoday = true;
-               }
-               $classtoday = (($istoday) ? ' event-today ' : '');
+               $bd_format = t('g A l F d') ; // 8 AM Friday January 18
+               $bd_short = t('F d');
 
-               $o .= '<div id="event-notice" class="birthday-notice fakelink' . $classtoday . '" onclick=openClose(\'event-wrapper\'); >' . t('Event Reminders') . ' ' . '(' . count($r) . ')' . '</div>'; 
-               $o .= '<div id="event-wrapper" style="display: none;" ><div id="event-title">' . t('Events this week:') . '</div>'; 
-               $o .= '<div id="event-title-end"></div>';
+               $r = q("SELECT `event`.* FROM `event`
+                               WHERE `event`.`uid` = %d AND `type` != 'birthday' AND `start` < '%s' AND `start` > '%s'
+                               ORDER BY `start` ASC ",
+                               intval(local_user()),
+                               dbesc(datetime_convert('UTC','UTC','now + 6 days')),
+                               dbesc(datetime_convert('UTC','UTC','now - 1 days'))
+               );
 
-               foreach($r as $rr) {
+               if($r && count($r)) {
+                       $now = strtotime('now');
+                       $istoday = false;
+                       foreach($r as $rr) {
+                               if(strlen($rr['name']))
+                                       $total ++;
 
-                       if($rr['adjust'])
-                               $md = datetime_convert('UTC',$a->timezone,$rr['start'],'Y/m\#\l\i\n\k\-j');
-                       else
-                               $md = datetime_convert('UTC','UTC',$rr['start'],'Y/m\#\l\i\n\k\-j');
+                               $strt = datetime_convert('UTC',$rr['convert'] ? $a->timezone : 'UTC',$rr['start'],'Y-m-d');
+                               if($strt === datetime_convert('UTC',$a->timezone,'now','Y-m-d'))
+                                       $istoday = true;
+                       }
+                       $classtoday = (($istoday) ? ' event-today ' : '');
 
-                       $title = substr(strip_tags(bbcode($rr['desc'])),0,32) . '... ';
-                       if(! $title)
-                               $title = t('[No description]');
+                       $o .= '<div id="event-notice" class="birthday-notice fakelink' . $classtoday . '" onclick=openClose(\'event-wrapper\'); >' . t('Event Reminders') . ' ' . '(' . count($r) . ')' . '</div>';
+                       $o .= '<div id="event-wrapper" style="display: none;" ><div id="event-title">' . t('Events this week:') . '</div>';
+                       $o .= '<div id="event-title-end"></div>';
 
-                       $strt = datetime_convert('UTC',$rr['convert'] ? $a->timezone : 'UTC',$rr['start']);
-                       $today = ((substr($strt,0,10) === datetime_convert('UTC',$a->timezone,'now','Y-m-d')) ? true : false);  
+                       foreach($r as $rr) {
 
-                       $o .= '<div class="event-list" id="event-' . $rr['eid'] . '"></a> <a href="events/' . $md . '">' . $title . '</a>' 
-                       . day_translate(datetime_convert('UTC', $rr['adjust'] ? $a->timezone : 'UTC', $rr['start'], $bd_format)) . (($today) ?  ' ' . t('[today]') : '')
-                       . '</div>' ;
+                               if($rr['adjust'])
+                                       $md = datetime_convert('UTC',$a->timezone,$rr['start'],'Y/m\#\l\i\n\k\-j');
+                               else
+                                       $md = datetime_convert('UTC','UTC',$rr['start'],'Y/m\#\l\i\n\k\-j');
+
+                               $title = substr(strip_tags(bbcode($rr['desc'])),0,32) . '... ';
+                               if(! $title)
+                                       $title = t('[No description]');
+
+                               $strt = datetime_convert('UTC',$rr['convert'] ? $a->timezone : 'UTC',$rr['start']);
+                               $today = ((substr($strt,0,10) === datetime_convert('UTC',$a->timezone,'now','Y-m-d')) ? true : false);
+
+                               $o .= '<div class="event-list" id="event-' . $rr['eid'] . '"></a> <a href="events/' . $md . '">' . $title . '</a>'
+                               . day_translate(datetime_convert('UTC', $rr['adjust'] ? $a->timezone : 'UTC', $rr['start'], $bd_format)) . (($today) ?  ' ' . t('[today]') : '')
+                               . '</div>' ;
+                       }
+                       $o .= '</div></div>';
                }
-               $o .= '</div></div>';
-       }
 
-       return $o;
-}}
+               return $o;
+       }
+}
 
 
 /**
- * 
+ *
  * Wrap calls to proc_close(proc_open()) and call hook
  * so plugins can take part in process :)
- * 
+ *
  * args:
  * $cmd program to run
  *  next args are passed as $cmd command line
- * 
+ *
  * e.g.: proc_run("ls","-la","/tmp");
- * 
+ *
  * $cmd and string args are surrounded with ""
  */
 
 if(! function_exists('proc_run')) {
-function proc_run($cmd){
+       function proc_run($cmd){
 
-       $a = get_app();
+               $a = get_app();
 
-       $args = func_get_args();
-       $arr = array('args' => $args, 'run_cmd' => true);
+               $args = func_get_args();
+               $arr = array('args' => $args, 'run_cmd' => true);
 
-       call_hooks("proc_run", $arr);
-       if(! $arr['run_cmd'])
-               return;
+               call_hooks("proc_run", $arr);
+               if(! $arr['run_cmd'])
+                       return;
 
-       if(count($args) && $args[0] === 'php')
-        $args[0] = ((x($a->config,'php_path')) && (strlen($a->config['php_path'])) ? $a->config['php_path'] : 'php');
-       foreach ($args as $arg){
-               $arg = escapeshellarg($arg);
+               if(count($args) && $args[0] === 'php')
+                       $args[0] = ((x($a->config,'php_path')) && (strlen($a->config['php_path'])) ? $a->config['php_path'] : 'php');
+               foreach ($args as $arg){
+                       $arg = escapeshellarg($arg);
+               }
+               $cmdline = implode($args," ");
+               proc_close(proc_open($cmdline." &",array(),$foo));
        }
-       $cmdline = implode($args," ");
-       proc_close(proc_open($cmdline." &",array(),$foo));
-}}
+}
 
 if(! function_exists('current_theme')) {
-function current_theme(){
-       $app_base_themes = array('duepuntozero', 'loozah');
+       function current_theme(){
+               $app_base_themes = array('duepuntozero', 'loozah');
        
-       $a = get_app();
+               $a = get_app();
        
-       $system_theme = ((isset($a->config['system']['theme'])) ? $a->config['system']['theme'] : '');
-       $theme_name = ((isset($_SESSION) && x($_SESSION,'theme')) ? $_SESSION['theme'] : $system_theme);
+               $system_theme = ((isset($a->config['system']['theme'])) ? $a->config['system']['theme'] : '');
+               $theme_name = ((isset($_SESSION) && x($_SESSION,'theme')) ? $_SESSION['theme'] : $system_theme);
        
-       if($theme_name && 
-               (file_exists('view/theme/' . $theme_name . '/style.css') ||
-               file_exists('view/theme/' . $theme_name . '/style.php')))
-               return($theme_name);
+               if($theme_name &&
+                               (file_exists('view/theme/' . $theme_name . '/style.css') ||
+                                               file_exists('view/theme/' . $theme_name . '/style.php')))
+                       return($theme_name);
        
-       foreach($app_base_themes as $t) {
-               if(file_exists('view/theme/' . $t . '/style.css')||
-                  file_exists('view/theme/' . $t . '/style.php'))
-                       return($t);
-       }
+               foreach($app_base_themes as $t) {
+                       if(file_exists('view/theme/' . $t . '/style.css')||
+                                       file_exists('view/theme/' . $t . '/style.php'))
+                               return($t);
+               }
        
-       $fallback = glob('view/theme/*/style.[css|php]');
-       if(count($fallback))
-               return (str_replace('view/theme/','', substr($fallback[0],0,-10)));
-
-}}
+               $fallback = glob('view/theme/*/style.[css|php]');
+               if(count($fallback))
+                       return (str_replace('view/theme/','', substr($fallback[0],0,-10)));
+       
+       }
+}
 
 /*
-* Return full URL to theme which is currently in effect.
+ * Return full URL to theme which is currently in effect.
 * Provide a sane default if nothing is chosen or the specified theme does not exist.
 */
 if(! function_exists('current_theme_url')) {
-function current_theme_url() {
-       global $a;
-       $t = current_theme();
-       if (file_exists('view/theme/' . $t . '/style.php'))
-               return($a->get_baseurl() . '/view/theme/' . $t . '/style.pcss');
-       return($a->get_baseurl() . '/view/theme/' . $t . '/style.css');
-}}
+       function current_theme_url() {
+               global $a;
+               $t = current_theme();
+               if (file_exists('view/theme/' . $t . '/style.php'))
+                       return($a->get_baseurl() . '/view/theme/' . $t . '/style.pcss');
+               return($a->get_baseurl() . '/view/theme/' . $t . '/style.css');
+       }
+}
 
 if(! function_exists('feed_birthday')) {
-function feed_birthday($uid,$tz) {
-
-       /**
-        *
-        * Determine the next birthday, but only if the birthday is published
-        * in the default profile. We _could_ also look for a private profile that the
-        * recipient can see, but somebody could get mad at us if they start getting
-        * public birthday greetings when they haven't made this info public. 
-        *
-        * Assuming we are able to publish this info, we are then going to convert
-        * the start time from the owner's timezone to UTC. 
-        *
-        * This will potentially solve the problem found with some social networks
-        * where birthdays are converted to the viewer's timezone and salutations from
-        * elsewhere in the world show up on the wrong day. We will convert it to the
-        * viewer's timezone also, but first we are going to convert it from the birthday
-        * person's timezone to GMT - so the viewer may find the birthday starting at
-        * 6:00PM the day before, but that will correspond to midnight to the birthday person.
-        *
-        */
+       function feed_birthday($uid,$tz) {
+
+               /**
+                *
+                * Determine the next birthday, but only if the birthday is published
+                * in the default profile. We _could_ also look for a private profile that the
+                * recipient can see, but somebody could get mad at us if they start getting
+                * public birthday greetings when they haven't made this info public.
+                *
+                * Assuming we are able to publish this info, we are then going to convert
+                * the start time from the owner's timezone to UTC.
+                *
+                * This will potentially solve the problem found with some social networks
+                * where birthdays are converted to the viewer's timezone and salutations from
+                * elsewhere in the world show up on the wrong day. We will convert it to the
+                * viewer's timezone also, but first we are going to convert it from the birthday
+                * person's timezone to GMT - so the viewer may find the birthday starting at
+                * 6:00PM the day before, but that will correspond to midnight to the birthday person.
+                *
+                */
 
        
-       $birthday = '';
-
-       if(! strlen($tz))
-               $tz = 'UTC';
-
-       $p = q("SELECT `dob` FROM `profile` WHERE `is-default` = 1 AND `uid` = %d LIMIT 1",
-               intval($uid)
-       );
-
-       if($p && count($p)) {
-               $tmp_dob = substr($p[0]['dob'],5);
-               if(intval($tmp_dob)) {
-                       $y = datetime_convert($tz,$tz,'now','Y');
-                       $bd = $y . '-' . $tmp_dob . ' 00:00';
-                       $t_dob = strtotime($bd);
-                       $now = strtotime(datetime_convert($tz,$tz,'now'));
-                       if($t_dob < $now)
-                               $bd = $y + 1 . '-' . $tmp_dob . ' 00:00';
-                       $birthday = datetime_convert($tz,'UTC',$bd,ATOM_TIME); 
+               $birthday = '';
+
+               if(! strlen($tz))
+                       $tz = 'UTC';
+
+               $p = q("SELECT `dob` FROM `profile` WHERE `is-default` = 1 AND `uid` = %d LIMIT 1",
+                               intval($uid)
+               );
+
+               if($p && count($p)) {
+                       $tmp_dob = substr($p[0]['dob'],5);
+                       if(intval($tmp_dob)) {
+                               $y = datetime_convert($tz,$tz,'now','Y');
+                               $bd = $y . '-' . $tmp_dob . ' 00:00';
+                               $t_dob = strtotime($bd);
+                               $now = strtotime(datetime_convert($tz,$tz,'now'));
+                               if($t_dob < $now)
+                                       $bd = $y + 1 . '-' . $tmp_dob . ' 00:00';
+                               $birthday = datetime_convert($tz,'UTC',$bd,ATOM_TIME);
+                       }
                }
-       }
 
-       return $birthday;
-}}
+               return $birthday;
+       }
+}
 
 if(! function_exists('is_site_admin')) {
-function is_site_admin() {
-       $a = get_app();
-       if(local_user() && x($a->user,'email') && x($a->config,'admin_email') && ($a->user['email'] === $a->config['admin_email']))
-               return true;
-       return false;
-}}
+       function is_site_admin() {
+               $a = get_app();
+               if(local_user() && x($a->user,'email') && x($a->config,'admin_email') && ($a->user['email'] === $a->config['admin_email']))
+                       return true;
+               return false;
+       }
+}
 
 
 if(! function_exists('load_contact_links')) {
-function load_contact_links($uid) {
+       function load_contact_links($uid) {
 
-       $a = get_app();
+               $a = get_app();
 
-       $ret = array();
+               $ret = array();
 
-       if(! $uid || x($a->contacts,'empty'))
-               return;
+               if(! $uid || x($a->contacts,'empty'))
+                       return;
 
-       $r = q("SELECT `id`,`network`,`url`,`thumb` FROM `contact` WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 ",
-                       intval($uid)
-       );
-       if(count($r)) {
-               foreach($r as $rr){
-                       $url = normalise_link($rr['url']);
-                       $ret[$url] = $rr;
+               $r = q("SELECT `id`,`network`,`url`,`thumb` FROM `contact` WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 ",
+                               intval($uid)
+               );
+               if(count($r)) {
+                       foreach($r as $rr){
+                               $url = normalise_link($rr['url']);
+                               $ret[$url] = $rr;
+                       }
                }
+               else
+                       $ret['empty'] = true;
+               $a->contacts = $ret;
+               return;
        }
-       else 
-               $ret['empty'] = true;   
-       $a->contacts = $ret;
-       return;         
-}}
+}
 
 if(! function_exists('profile_tabs')){
-function profile_tabs($a, $is_owner=False, $nickname=Null){
-       //echo "<pre>"; var_dump($a->user); killme();
+       function profile_tabs($a, $is_owner=False, $nickname=Null){
+               //echo "<pre>"; var_dump($a->user); killme();
        
-       if (is_null($nickname))
-               $nickname  = $a->user['nickname'];
+               if (is_null($nickname))
+                       $nickname  = $a->user['nickname'];
                
-       if(x($_GET,'tab'))
-               $tab = notags(trim($_GET['tab']));
+               if(x($_GET,'tab'))
+                       $tab = notags(trim($_GET['tab']));
        
-       $url = $a->get_baseurl() . '/profile/' . $nickname;
-
-       $tabs = array(
-               array(
-                       'label'=>t('Status'),
-                       'url' => $url,
-                       'sel' => ((!isset($tab)&&$a->argv[0]=='profile')?'active':''),
-               ),
-               array(
-                       'label' => t('Profile'),
-                       'url'   => $url.'/?tab=profile',
-                       'sel'   => ((isset($tab) && $tab=='profile')?'active':''),
-               ),
-               array(
-                       'label' => t('Photos'),
-                       'url'   => $a->get_baseurl() . '/photos/' . $nickname,
-                       'sel'   => ((!isset($tab)&&$a->argv[0]=='photos')?'active':''),
-               ),
-       );
-       
-       if ($is_owner){
-                $tabs[] = array(
-                       'label' => t('Events'),
-                       'url'   => $a->get_baseurl() . '/events',
-                       'sel'   =>((!isset($tab)&&$a->argv[0]=='events')?'active':''),
-               );
-               $tabs[] = array(
-                       'label' => t('Personal Notes'),
-                       'url'   => $a->get_baseurl() . '/notes',
-                       'sel'   =>((!isset($tab)&&$a->argv[0]=='notes')?'active':''),
+               $url = $a->get_baseurl() . '/profile/' . $nickname;
+
+               $tabs = array(
+                       array(
+                               'label'=>t('Status'),
+                               'url' => $url,
+                               'sel' => ((!isset($tab)&&$a->argv[0]=='profile')?'active':''),
+                       ),
+                       array(
+                               'label' => t('Profile'),
+                               'url'   => $url.'/?tab=profile',
+                               'sel'   => ((isset($tab) && $tab=='profile')?'active':''),
+                       ),
+                       array(
+                               'label' => t('Photos'),
+                               'url'   => $a->get_baseurl() . '/photos/' . $nickname,
+                               'sel'   => ((!isset($tab)&&$a->argv[0]=='photos')?'active':''),
+                       ),
                );
-       }
+       
+               if ($is_owner){
+                       $tabs[] = array(
+                               'label' => t('Events'),
+                               'url'   => $a->get_baseurl() . '/events',
+                               'sel'   =>((!isset($tab)&&$a->argv[0]=='events')?'active':''),
+                       );
+                       $tabs[] = array(
+                               'label' => t('Personal Notes'),
+                               'url'   => $a->get_baseurl() . '/notes',
+                               'sel'   =>((!isset($tab)&&$a->argv[0]=='notes')?'active':''),
+                       );
+               }
 
 
-       $arr = array('is_owner' => $is_owner, 'nickname' => $nickname, 'tab' => (($tab) ? $tab : false), 'tabs' => $tabs);
-       call_hooks('profile_tabs', $arr);
+               $arr = array('is_owner' => $is_owner, 'nickname' => $nickname, 'tab' => (($tab) ? $tab : false), 'tabs' => $tabs);
+               call_hooks('profile_tabs', $arr);
        
-       $tpl = get_markup_template('common_tabs.tpl');
+               $tpl = get_markup_template('common_tabs.tpl');
 
-       return replace_macros($tpl,array('$tabs' => $arr['tabs']));
-}}     
+               return replace_macros($tpl,array('$tabs' => $arr['tabs']));
+       }
+}
 
 function get_my_url() {
        if(x($_SESSION,'my_url'))
@@ -1448,7 +1497,7 @@ function zrl($s) {
        if(! strlen($s))
                return $s;
        if(! strpos($s,'/profile/'))
-               return $s;      
+               return $s;
        $achar = strpos($s,'?') ? '&' : '?';
        $mine = get_my_url();
        if($mine and ! link_compare($mine,$s))
index 164a6be462477b7aba29910d465717571e9c32f4..41ca95b360f264985ed9cb5acab9fb535917ad0b 100644 (file)
@@ -6,40 +6,41 @@ Account Basics
 
 **Registration**
 
-Not all Friendica sites allow open registration. If registration is allowed, you will see a "Register" link immediately below the login prompts on the site home page. Following this link will take you to the site registration page.  The strength of our network is that lots of different sites are all completely compatible with each other.  If the site you're visting doesn't allow registration, or you think you might prefer another one, you can find a <a href ="http://dir.friendica.com/siteinfo">list of public servers here</a>, and find one that meets your needs.  
+Not all Friendica sites allow open registration. If registration is allowed, you will see a "Register" link immediately below the login prompts on the site home page. Following this link will take you to the site registration page.  The strength of our network is that lots of different sites are all completely compatible with each other.  If the site you're visting doesn't allow registration, or you think you might prefer another one, you can find a <a href="http://dir.friendica.com/siteinfo">list of public servers here</a>, and find one that meets your needs.  
+
+If you'd like to have your own server, you can do that too.  Visit <a href="http://friendica.com/download">the Friendica website</a> to download the code with setup instructions.  It's a very simple install process that anybody experienced in hosting websites, or with basic Linux experience can handle easily.
 
-If you'd like to have your own server, you can do that too.  Visit <a href = "http://friendica.com/download">the Friendica website</a> to download the code with setup instructions.  It's a very simple install process that anybody experienced in hosting websites, or with basic Linux experience can handle easily.
 
 *OpenID*
 
 The first field on the Registration page is for an OpenID address. If you do not have an OpenID address or do not wish to use OpenID, leave this field blank. If you have an OpenID account elsewhere and wish to use it, enter the address into this field and click 'Register'. Friendica will attempt to extract as much information as possible from your OpenID provider and return to this page with those items already filled in.
 
+
 *Your Full Name*
 
 Please provide your full name **as you would like it to be displayed on this system**.  Most people use their real name for this, but you're under no obligation to do so yourself.
 
+
 *Email Address*
 
 Please provide a valid email address. Your email address is **never** published. We need this to send you account information and your login details. You may also occasionally receive notifications of incoming messages or items requiring your attention, but you have the ability to completely disable these from your Settings page once you have logged in.  This doesn't have to be your primary email address, but it does need to be a real email address.  You can't get your initial password, or reset a lost password later without it.  This is the only bit of personal information that has to be accurate.
 
+
 *Nickname*
 
 A nickname is used to generate web addresses for many of your personal pages, and is also treated like an email address when establishing communications with others. Due to the way that the nickname is used, it has some limitations. It must contain only US-ASCII text characters and numbers, and must also start with a text character. It also must be unique on this system. This is used in many places to identify your account, and once set - cannot be changed.
 
 
-
 *Directory Publishing*
 
 The Registration form also allows you to choose whether or not to list your account in the online directory. This is like a "phone book" and you may choose to be unlisted. We recommend that you select 'Yes' so that other people (friends, family, etc.) will be able to find you. If you choose 'No', you will essentially be invisible and have few opportunities for interaction. Whichever you choose, this can be changed any time from your Settings page after you login. 
 
+
 *Register*
 
 Once you have provided the necessary details, click the 'Register' button. An email will be sent to you providing your account login details. Please watch your email (including spam folders) for your registration details and initial password. 
 
 
-
-
-
 **Login Page**
 
 On the 'Login' page, please enter your login information that was provided during registration. You may use either your nickname or email address as a Login Name. 
@@ -55,6 +56,7 @@ Otherwise, enter your password. This will have been initially provided in your r
 
 After your first login, please visit the 'Settings' page from the top menu bar and change your password to something that you will remember.
 
+
 **Getting Started**
 
 A ['Tips for New Members'](newmember) link will show up on your home page for two weeks to provide some important Getting Started information.
index 46abea9a3ec06f0ca2f22d239c88a67b24ec797d..251f91e9361ee59527d3839e5675a392d76e442b 100644 (file)
@@ -6,11 +6,11 @@ Bugs and Issues
 
 If your server has a support page, you should report any bugs/issues you encounter there first.  Reporting to your support page before reporting to the developers makes their job easier, as they don't have to deal with bug reports that might not have anything to do with them, and that helps us get new features faster.
 
-If you're a technical user, or your site doesn't have a support page, you'll need to use the <a href = "http://bugs.friendica.com/">Bug Tracker</a>.  Please perform a search to see if there's already an open bug that matches yours before submitting anything.
+If you're a technical user, or your site doesn't have a support page, you'll need to use the <a href="http://bugs.friendica.com/">Bug Tracker</a>.  Please perform a search to see if there's already an open bug that matches yours before submitting anything.
 
 Try to provide as much information as you can about the bug, including the **full** text of any error messages or notices, and any steps required to replicate the problem in as much detail as possible.  It's generally better to provide too much information than not enough.
 
-<a href = "http://www.chiark.greenend.org.uk/~sgtatham/bugs.html">See this article</a> to learn more about submitting **good** bug reports.
+<a href="http://www.chiark.greenend.org.uk/~sgtatham/bugs.html">See this article</a> to learn more about submitting **good** bug reports.
 
 
 **Bug Sponsorship**
index 3f1a24c8de9168c40fea7ac0d41db3d57e360ec1..70b87abbc0f3fc24e2104c37d3d04202bf58dcc5 100644 (file)
@@ -5,11 +5,11 @@ Making Friends
 
 Friendship in Friendica can take on a great many different meanings. But let's keep it simple, you want to be friends with somebody. How do you do it?
 
-The easiest thing to do is to join the <a href = "http://kakste.com/profile/newhere">New Here</a> group.  This group is especially for people new to the Friendica network.  Simply connect to the group, post to the wall, and make new friends.  You don't even have to like us - comment on a few of our posts, and other people will start to add you too.
+The easiest thing to do is to join the <a href="http://kakste.com/profile/newhere">New Here</a> group.  This group is especially for people new to the Friendica network.  Simply connect to the group, post to the wall, and make new friends.  You don't even have to like us - comment on a few of our posts, and other people will start to add you too.
 
 The next thing you can do is look at the Directory.  The directory is split up into two parts.  If you click the directory button, you will be presented with a list of all members (who chose to be listed) on your server.  You'll also see a link to the Global Directory.  If you click through to the global directory, you will be presented with a list of everybody who chose to be listed across all instances of Friendica.  You will also see a "Show Community Forums" link, which will direct you to Groups, Forums and Fanpages.  You connect to people, groups and forums in the same way, except groups and forums will automatically accept your introduction request, whereas a human will approve you manually.
 
-To connect with other Friendica user
+To connect with other Friendica users:
 
 Visit their profile. Just beneath their profile picture will be the word 'Connect' (we're assuming this is an English language profile).
 
index 29dff3187b33f3d7ba49f8434b096296c9042d98..df60044500647928bde04f1538949349c30ca1df 100644 (file)
@@ -164,10 +164,15 @@ Your module functions will often contain the function plugin_name_content(&$a),
 **'init_1'** - called just after DB has been opened and before session start
     $b is not used or passed
 
-
 **'page_end'** - called after HTML content functions have completed
     $b is (string) HTML of content div
 
+**'avatar_lookup'** - called when looking up the avatar
+    $b is (array)
+        'size' => the size of the avatar that will be looked up
+        'email' => email to look up the avatar for
+        'url' => the (string) generated URL of the avatar
+
 
 A complete list of all hook callbacks with file locations (generated 14-Feb-2012): Please see the source for details of any hooks not documented above.
 
index 9808ecc5d9352eec7e4b309de40b36845e6ec19e..574ce8dcc1ee9cb2e30fade0287fc8c5308724d4 100644 (file)
@@ -172,16 +172,6 @@ $a->config['system']['no_regfullname'] = true;
 ```
 
 
-**Gravatars**
-
-During registration, we will try to automatically find a user photo for you on the web using the gravatar service. You may turn this off by setting 'no_gravatar' to true. Default is false.
-
-Config:
-```
-$a->config['system']['no_gravatar'] = true;
-```
-
-
 **OpenID**
 
 By default, OpenID may be used for both registration and logins. If you do not wish to make OpenID facilities available on your system (at all), set 'no_openid' to true. Default is false.
index cd8a6994ba60e7edab8f7b00506c6fe03c2c21c6..c4e8cb948058e3f48103ec4081feaa6de8c53efd 100644 (file)
@@ -1,3 +1,5 @@
+[[!meta title="And Finally..."]]
+
 And that brings the Quick Start to an end.
 
 Here are some more things to help get you started:
@@ -5,20 +7,20 @@ Here are some more things to help get you started:
 **Groups**
 
 
-- <a href = "https://kakste.com/profile/newhere">New Here</a> - a group for people new to Friendica
+- <a href="https://kakste.com/profile/newhere">New Here</a> - a group for people new to Friendica
 
-- <a href = "http://helpers.pyxis.uberspace.de/profile/helpers">Friendica Support</a> - problems?  This is the place to ask.
+- <a href="http://helpers.pyxis.uberspace.de/profile/helpers">Friendica Support</a> - problems?  This is the place to ask.
 
-- <a href = "https://kakste.com/profile/public_stream">Public Stream</a> - a place to talk about anything to anyone.
+- <a href="https://kakste.com/profile/public_stream">Public Stream</a> - a place to talk about anything to anyone.
 
-- <a href = "https://letstalk.pyxis.uberspace.de/profile/letstalk">Let's Talk</a> a group for finding people and groups who share similar interests.
+- <a href="https://letstalk.pyxis.uberspace.de/profile/letstalk">Let's Talk</a> a group for finding people and groups who share similar interests.
 
-- <a href = "http://newzot.hydra.uberspace.de/profile/newzot">Local Friendica</a> a page for local Friendica groups</a>
+- <a href="http://newzot.hydra.uberspace.de/profile/newzot">Local Friendica</a> a page for local Friendica groups</a>
 
 
 **Documentation**
 
-- <a href = "/help/Connectors">Connecting to more networks</a>
-- <a href = "/help">Help Index</a>
+- <a href="help/Connectors">Connecting to more networks</a>
+- <a href="help">Help Index</a>
 
 
index 418e682c83838cf7a9d00fab8713289c42809452..5cfbc653cf332c37ece3a1a0b2c1d8b99ebdef0b 100644 (file)
@@ -1,11 +1,11 @@
-This is the global directory.  If you get lost, you can <a href = "/help/groupsandpages">click this link</a> to bring yourself back here.
+This is the global directory.  If you get lost, you can <a href = "help/groupsandpages">click this link</a> to bring yourself back here.
 
 On this page, you'll find a collection of groups, forums and celebrity pages.  Groups are not real people.  Connecting to them is similar to "liking" something on Facebook, or signing up for a new forum.  You don't have to feel awkward about introducing yourself to a new person, because they're not people!
 
 When you connect to a group, all messages to that group will start appearing in your network tab.  You can comment on these posts, or post to the group yourself without ever having to add any of the groups members.  This is a great way to make friends dynamically - you'll find people you like and add each other naturally instead of adding random strangers.  Simply find a group you're interested in, and connect to it the same way you did with people in the last section.  There are a lot of groups, and you're likely to get lost.  Remember the link at the top of this page will bring you back here.
 
-Once you've added some groups, <a href = "/help/andfinally">move on to the next section</a>.
+Once you've added some groups, <a href="help/andfinally">move on to the next section</a>.
 
-<iframe src="http://dir.friendica.com/directory/forum" width="950" height = "600"></iframe>
+<iframe src="http://dir.friendica.com/directory/forum" width="950" height="600"></iframe>
 
 
index 178170c4e2b9719c7299e045a58c21bda31ce738..d76af92e25453a99a78e45ec411b567d4b5baa04 100644 (file)
@@ -6,8 +6,8 @@ This is a bit like your Facebook wall.  It's where all your status messgages are
 
 Once you've finished writing your post, click on the padlock icon to select who can see it.  If you do not use the padlock icon, your post will be public.  This means it will appear to anybody who views your profile, and in the community tab if your site has it enabled, as well as in the network tab of any of your contacts.
 
-Play around with this a bit, then when you're ready to move on, we'll take a look at the <a href = "/help/network">Network Tab</a>
+Play around with this a bit, then when you're ready to move on, we'll take a look at the <a href="help/network">Network Tab</a>
 
-<iframe src="/login" width="950" height = "600"></iframe>
+<iframe src="login" width="950" height="600"></iframe>
 
 
index 35befaa36566fd9a431c011337aff7cd316d4246..7eff1eda10365ef4558921950abfe4bbe758509b 100644 (file)
@@ -1,11 +1,11 @@
-This is your Suggested Friends page.  If you get lost, you can <a href = "/help/makenewfriends">click this link</a> to bring yourself back here.
+This is your Suggested Friends page.  If you get lost, you can <a href="help/makenewfriends">click this link</a> to bring yourself back here.
 
 This is a bit like the Friend Suggestions page of Facebook.  Everybody on this list has agreed that they may be suggested as a friend.  This means they're unlikely to refuse an introduction you send, and they want to meet new people too!
 
 See somebody you like the look of?  Click the connect button beneath their photograph.  This will bring you to the introductions page.  Fill in the form as instructed, and add a small note (optional).  Now, wait a bit and they'll accept your request - note that these are real people, and it might take a while.  Now you've added one, you're probably lost.  Click the link at the top of this page to go back to the suggested friends list and add some more.
 
-Feel uncomfortable adding people you don't know?  Don't worry - that's where <a href = "/help/groupsandpages">Groups and Pages</a> come in!
+Feel uncomfortable adding people you don't know?  Don't worry - that's where <a href="help/groupsandpages">Groups and Pages</a> come in!
 
-<iframe src="/suggest" width="950" height = "600"></iframe>
+<iframe src="suggest" width="950" height="600"></iframe>
 
 
index f445b0055eb87c8d918f37342285aaa1faefb799..afb09239501097ab42ed2dab49def0dea66a2b1d 100644 (file)
@@ -1,9 +1,9 @@
-This is your Network Tab.  If you get lost, you can <a href = "/help/network">click this link</a> to bring yourself back here.
+This is your Network Tab.  If you get lost, you can <a href="help/network">click this link</a> to bring yourself back here.
 
 This is a bit like the Newsfeed at Facebook or the Stream at Diaspora.  It's where all the posts from your contacts, groups, and feeds will appear.  If you're new, you won't see anything in this page, unless you posted your status in the last step.  If you've already added a few friends, you'll be able to see their posts.  Here, you can comment, like, or dislike posts, or click on somebody's name to visit their profile page where you can write on their wall.
 
-Now we need to fill it up, the first step, is to <a href = "/help/peopleyouknow"> add people you already know from Facebook</a>.
+Now we need to fill it up, the first step, is to <a href="help/peopleyouknow"> add people you already know from Facebook</a>.
 
-<iframe src="/network" width="950" height = "600"></iframe>
+<iframe src="network" width="950" height="600"></iframe>
 
 
index 143c4921761597a918ebcec29e6090267b1da92c..ae0c9ef5986387532b83fa52448031288cdea5b5 100644 (file)
@@ -1,13 +1,13 @@
-This is your connector settings page.  If you get lost, you can <a href = "/help/network">click this link</a> to bring yourself back here.
+This is your connector settings page.  If you get lost, you can <a href="help/network">click this link</a> to bring yourself back here.
 
 This is the bit that makes Friendica unique.  You can connect to <i>anybody on the internet</i> from your Friendica account using this page!  The available connectors varies depending on which plugins you have installed, but for now, we'll walk you through Facebook.  Note that not all servers have the Facebook connector installed.  If you can't find it in the list below, don't worry, we'll look at ways of connecting to more people in the following pages.  
 
-The biggest of all social networks is Facebook.  Fortunately, this connector is really easy.  Scroll down the page, and click Facebook Connector Settings.  Enter your Facebook user name and password and let the application (the connector) do everything the options suggest.  You can <a href = "https://github.com/friendica/friendica/wiki/How-to:-Friendica%E2%80%99s-Facebook-connector" target="new">fine tune this</a> or experiment with the other connectors too.  If you need help, you can always ask at <a href = "http://helpers.pyxis.uberspace.de/profile/helpers" target="new">Friendica Support</a> or <a href = "/help/Connectors" target="new">see the instructions here</a>.
+The biggest of all social networks is Facebook.  Fortunately, this connector is really easy.  Scroll down the page, and click Facebook Connector Settings.  Enter your Facebook user name and password and let the application (the connector) do everything the options suggest.  You can <a href="https://github.com/friendica/friendica/wiki/How-to:-Friendica%E2%80%99s-Facebook-connector" target="_blank">fine tune this</a> or experiment with the other connectors too.  If you need help, you can always ask at <a href="http://helpers.pyxis.uberspace.de/profile/helpers" target="_blank">Friendica Support</a> or <a href="help/Connectors" target="_blank">see the instructions here</a>.
 
-When you're ready, we can move on to <a href = "/help/makingnewfriends">making new friends</a>.
+When you're ready, we can move on to <a href="help/makingnewfriends">making new friends</a>.
 
 
 
-<iframe src="/settings/connectors" width="950" height = "600"></iframe>
+<iframe src="settings/connectors" width="950" height="600"></iframe>
 
 
index d9949b1ef8db45cb3167fb61e84b9d3383d39a64..532ea2f957cf15e1c4bc1c605e6c547ea0a663ad 100644 (file)
@@ -134,11 +134,11 @@ function contact_photo_menu($contact) {
        $posts_link = $a->get_baseurl() . '/network/?cid=' . $contact['id'];
 
        $menu = Array(
-               t("View status") => $status_link,
-               t("View profile") => $profile_link,
-               t("View photos") => $photos_link,               
-               t("View recent") => $posts_link, 
-               t("Edit contact") => $contact_url,
+               t("View Status") => $status_link,
+               t("View Profile") => $profile_link,
+               t("View Photos") => $photos_link,               
+               t("Network Posts") => $posts_link, 
+               t("Edit Contact") => $contact_url,
                t("Send PM") => $pm_url,
        );
        
@@ -150,7 +150,7 @@ function contact_photo_menu($contact) {
        $o = "";
        foreach($menu as $k=>$v){
                if ($v!="") {
-                       if(($k !== t("View recent")) && ($k !== t("Send PM")))
+                       if(($k !== t("Network Posts")) && ($k !== t("Send PM")))
                                $o .= "<li><a target=\"redir\" href=\"$v\">$k</a></li>\n";
                        else
                                $o .= "<li><a href=\"$v\">$k</a></li>\n";
@@ -158,3 +158,11 @@ function contact_photo_menu($contact) {
        }
        return $o;
 }}
+
+
+function random_profile() {
+       $r = q("select url from gcontact where url like '%%://%%/profile/%%' order by rand() limit 1");
+       if(count($r))
+               return dirname($r[0]['url']);
+       return '';
+}
\ No newline at end of file
index 9c237916bc30bfa4ab7b23440fd23a9f89576c9b..141c90dcfd6a92bbb5246ee78fc61a040ba06a05 100644 (file)
@@ -446,7 +446,7 @@ function probe_url($url, $mode = PROBE_NORMAL) {
                                                $phost = substr($url,strpos($url,'@')+1);
                                                $profile = 'http://' . $phost;
                                                // fix nick character range
-                                               $vcard = array('fn' => $name, 'nick' => $name, 'photo' => gravatar_img($url));
+                                               $vcard = array('fn' => $name, 'nick' => $name, 'photo' => avatar_img($url));
                                                $notify = 'smtp ' . random_string();
                                                $poll = 'email ' . random_string();
                                                $priority = 0;
@@ -655,7 +655,7 @@ function probe_url($url, $mode = PROBE_NORMAL) {
                        }
 
                        if((! $vcard['photo']) && strlen($email))
-                               $vcard['photo'] = gravatar_img($email);
+                               $vcard['photo'] = avatar_img($email);
                        if($poll === $profile)
                                $lnk = $feed->get_permalink();
                        if(isset($lnk) && strlen($lnk))
index e0f37f078f7cf2241b3e4efc34fbe3b9bcecc3c8..96b02f29391c816926739db27dc07fb86d552bc1 100644 (file)
@@ -12,6 +12,7 @@ function follow_widget() {
 }
 
 function findpeople_widget() {
+       require_once('include/Contact.php');
 
        $a = get_app();
 
@@ -32,6 +33,7 @@ function findpeople_widget() {
                '$findthem' => t('Find'),
                '$suggest' => t('Friend Suggestions'),
                '$similar' => t('Similar Interests'),
+               '$random' => t('Random Profile'),
                '$inv' => t('Invite Friends')
        ));
 
index df92a40ed000addbe70678ddae0200c1eff3932a..5396a125d7966ea10709e81238509919db00d08b 100644 (file)
@@ -810,11 +810,11 @@ function item_photo_menu($item){
        }
 
        $menu = Array(
-               t("View status") => $status_link,
-               t("View profile") => $profile_link,
-               t("View photos") => $photos_link,
-               t("View recent") => $posts_link, 
-               t("Edit contact") => $contact_url,
+               t("View Status") => $status_link,
+               t("View Profile") => $profile_link,
+               t("View Photos") => $photos_link,
+               t("Network Posts") => $posts_link, 
+               t("Edit Contact") => $contact_url,
                t("Send PM") => $pm_url,
        );
        
index 6d395fe3f25d06611d2c4f047c63bcc94f00e085..f4dcfce62e9fb90952a65c1158781ca7ed8a339a 100644 (file)
@@ -80,6 +80,16 @@ function field_timezone($name='timezone', $label='', $current = 'America/Los_Ang
 if(! function_exists('datetime_convert')) {
 function datetime_convert($from = 'UTC', $to = 'UTC', $s = 'now', $fmt = "Y-m-d H:i:s") {
 
+       // Defaults to UTC if nothing is set, but throws an exception if set to empty string.
+       // Provide some sane defaults regardless.
+
+       if($from === '')
+               $from = 'UTC';
+       if($to === '')
+               $to = 'UTC';
+       if($s === '')
+               $s = 'now';
+
        // Slight hackish adjustment so that 'zero' datetime actually returns what is intended
        // otherwise we end up with -0001-11-30 ...
        // add 32 days so that we at least get year 00, and then hack around the fact that 
index 76cc0bc7b91ff74f77f743eb720ee96f66d81c8a..1421a703dc730ad1a7eb803e30c632ff0d17937c 100644 (file)
@@ -8,189 +8,273 @@ require_once('include/datetime.php');
  *
  * For debugging, insert 'dbg(1);' anywhere in the program flow.
  * dbg(0); will turn it off. Logging is performed at LOGGER_DATA level.
- * When logging, all binary info is converted to text and html entities are escaped so that 
- * the debugging stream is safe to view within both terminals and web pages.
+ * When logging, all binary info is converted to
+ * text and html entities are escaped so that
+ * the debugging stream is safe to view
+ * within both terminals and web pages.
  *
  */
-if(! class_exists('dba')) { 
-class dba {
-
-       private $debug = 0;
-       private $db;
-       public  $mysqli = true;
-       public  $connected = false;
-       public  $error = false;
-
-       function __construct($server,$user,$pass,$db,$install = false) {
-
-               $server = trim($server);
-               $user = trim($user);
-               $pass = trim($pass);
-               $db = trim($db);
-
-               if (!(strlen($server) && strlen($user))){
-                       $this->connected = false;
-                       $this->db = null;
-                       return;                 
-               }
+
+if(! class_exists('dba')) {
+
+       class dba {
+
+               private $debug = 0;
+               private $db;
+               private $exceptions; 
                
-               if($install) {
-                       if(strlen($server) && ($server !== 'localhost') && ($server !== '127.0.0.1')) {
-                               if(! dns_get_record($server, DNS_A + DNS_CNAME + DNS_PTR)) {
-                                       $this->error = sprintf( t('Cannot locate DNS info for database server \'%s\''), $server);
-                                       $this->connected = false;
-                                       $this->db = null;
-                                       return;
+               public  $mysqli = true;
+               public  $connected = false;
+               public  $error = false;
+
+               function __construct($server,$user,$pass,$db,$install = false) {
+
+                       $server = trim($server);
+                       $user = trim($user);
+                       $pass = trim($pass);
+                       $db = trim($db);
+
+                       //we need both, server and username, so fail if one is missing
+                       if (!(strlen($server) && strlen($user))){
+                               $this->connected = false;
+                               $this->db = null;
+                               throw new InvalidArgumentException(t("Server name of user name are missing. "));
+                       }
+
+                       //when we are installing
+                       if($install) {
+                               if(strlen($server) && ($server !== 'localhost') && ($server !== '127.0.0.1')) {
+                                       if(! dns_get_record($server, DNS_A + DNS_CNAME + DNS_PTR)) {
+                                               $this->connected = false;
+                                               $this->db = null;
+                                               throw new InvalidArgumentException( t('Cannot locate DNS info for database server \'%s\''), $server);
+                                       }
                                }
                        }
-               }
 
-               if(class_exists('mysqli')) {
-                       $this->db = @new mysqli($server,$user,$pass,$db);
-                       if(! mysqli_connect_errno()) {
-                               $this->connected = true;
+                       if(class_exists('mysqli')) {
+                               $this->db = new mysqli($server,$user,$pass,$db);
+                               if(NULL === $this->db->connect_error) {
+                                       $this->connected = true;
+                               } else {
+                                       throw new RuntimeException($this->db->connect_error);
+                               }
+                       } else {
+                               $this->mysqli = false;
+                               $this->db = mysql_connect($server,$user,$pass);
+                               if($this->db && mysql_select_db($db,$this->db)) {
+                                       $this->connected = true;
+                               } else {
+                                       throw new RuntimeException(mysql_error());
+                               }
                        }
                }
-               else {
-                       $this->mysqli = false;
-                       $this->db = mysql_connect($server,$user,$pass);
-                       if($this->db && mysql_select_db($db,$this->db)) {
-                               $this->connected = true;
-                       }
+
+               public function excep($excep) {
+                       $this->exceptions=$excep; 
                }
-               if(! $this->connected) {
-                       $this->db = null;
-                       if(! $install)
-                               system_unavailable();
+               
+               public function getdb() {
+                       return $this->db;
                }
-       }
 
-       public function getdb() {
-               return $this->db;
-       }
+               public function q($sql) {
 
-       public function q($sql) {
-               
-               if((! $this->db) || (! $this->connected))
-                       return false;
-               
-               if($this->mysqli)
-                       $result = @$this->db->query($sql);
-               else
-                       $result = @mysql_query($sql,$this->db);
+                       if((! $this->db) || (! $this->connected)) {
+                               $this->throwOrLog(new RuntimeException(t("There is no db connection. ")));
+                               return;
+                       }
+
+                       if($this->mysqli) {
+                               $result = $this->db->query($sql);
+                       } else {
+                               $result = mysql_query($sql,$this->db);
+                       }
 
-               if($this->debug) {
+                       //on debug mode or fail, the query is written to the log.
+                       //this won't work if logger can not read it's logging level
+                       //from the db.
+                       if($this->debug || FALSE === $result) {
+
+                               $mesg = '';
+
+                               if($result === false) {
+                                       $mesg = 'false '.$this->error();
+                               } elseif($result === true) {
+                                       $mesg = 'true';
+                               } else {
+                                       if($this->mysqli) {
+                                               $mesg = $result->num_rows . t(' results') . EOL;
+                                       } else {
+                                               $mesg = mysql_num_rows($result) . t(' results') . EOL;
+                                       }
+                               }
 
-                       $mesg = '';
+                               $str =  'SQL = ' . printable($sql) . EOL . t('SQL returned ') . $mesg . EOL;
 
-                       if($this->mysqli) {
-                               if($this->db->errno)
-                                       logger('dba: ' . $this->db->error);
+
+                        // If dbfail.out exists, we will write any failed calls directly to it,
+                        // regardless of any logging that may or may nor be in effect.
+                        // These usually indicate SQL syntax errors that need to be resolved.
+                               if(file_exists('dbfail.out')) {\r
+                                       file_put_contents('dbfail.out', datetime_convert() . "\n" . $str . "\n", FILE_APPEND);
+                               }
+                               logger('dba: ' . $str );
+                               if(FALSE===$result) {
+                                       $this->throwOrLog(new RuntimeException('dba: ' . $str));
+                                       return; 
+                               }
                        }
-                       elseif(mysql_errno($this->db))
-                               logger('dba: ' . mysql_error($this->db));
-
-                       if($result === false)
-                               $mesg = 'false';
-                       elseif($result === true)
-                               $mesg = 'true';
-                       else {
-                               if($this->mysqli)
-                                       $mesg = $result->num_rows . ' results' . EOL;
-                       else
-                                       $mesg = mysql_num_rows($result) . ' results' . EOL;
+                               
+
+                       if($result === true) {
+                               return $result;
                        }
-    
-                       $str =  'SQL = ' . printable($sql) . EOL . 'SQL returned ' . $mesg . EOL;
 
-                       logger('dba: ' . $str );
-               }
+                       $r = array();
+                       if($this->mysqli) {
+                               if($result->num_rows) {
+                                       while($x = $result->fetch_array(MYSQLI_ASSOC)) {
+                                               $r[] = $x;
+                                       }
+                                       $result->free_result();
+                               }
+                       } else {
+                               if(mysql_num_rows($result)) {
+                                       while($x = mysql_fetch_array($result, MYSQL_ASSOC)) {
+                                               $r[] = $x;
+                                       }
+                                       mysql_free_result($result);
+                               }
+                       }
 
-               /**
-                * If dbfail.out exists, we will write any failed calls directly to it,
-                * regardless of any logging that may or may nor be in effect.
-                * These usually indicate SQL syntax errors that need to be resolved.
-                */
 
-               if($result === false) {
-                       logger('dba: ' . printable($sql) . ' returned false.');
-                       if(file_exists('dbfail.out'))
-                               file_put_contents('dbfail.out', datetime_convert() . "\n" . printable($sql) . ' returned false' . "\n", FILE_APPEND);
+                       if($this->debug) {
+                               logger('dba: ' . printable(print_r($r, true)));
+                       }
+                       return($r);
                }
 
-               if(($result === true) || ($result === false))
-                       return $result;
-
-               $r = array();
-               if($this->mysqli) {
-                       if($result->num_rows) {
-                               while($x = $result->fetch_array(MYSQLI_ASSOC))
-                                       $r[] = $x;
-                               $result->free_result();
+               private function error() {
+                       if($this->mysqli) {
+                               return $this->db->error;
+                       } else {
+                               return mysql_error($this->db);
+                       }
+               }
+               
+               private function throwOrLog(Exception $ex) {
+                       if($this->exceptions) {
+                               throw $ex; 
+                       } else {
+                               logger('dba: '.$ex->getMessage()); 
                        }
                }
-               else {
-                       if(mysql_num_rows($result)) {
-                               while($x = mysql_fetch_array($result, MYSQL_ASSOC))
-                                       $r[] = $x;
-                               mysql_free_result($result);
+               
+               /**
+                * starts a transaction. Transactions need to be finished with 
+                * commit() or rollback(). Please mind that the db table engine may
+                * not support this. 
+                */
+               public function beginTransaction() {\r
+                       if($this->mysqli) {\r
+                               return $this->db->autocommit(false);\r
+                       } else {\r
+                               //no transaction support in mysql module...
+                               mysql_query('SET AUTOCOMMIT = 0;', $db); \r
+                       }\r
+               }
+               
+               /**
+                * rollback a transaction. So, rollback anything that was done since the last call 
+                * to beginTransaction(). 
+                */
+               public function rollback() {\r
+                       if($this->mysqli) {\r
+                               return $this->db->rollback();\r
+                       } else {\r
+                               //no transaction support in mysql module...
+                               mysql_query('ROLLBACK;', $db);\r
                        }
+                       $this->stopTransaction(); \r
                }
 
-    
-               if($this->debug)
-                       logger('dba: ' . printable(print_r($r, true)));
-               return($r);
-       }
-
-       public function dbg($dbg) {
-               $this->debug = $dbg;
-       }
+               /**
+                * commit a transaction. So, write any query to the database. 
+                */
+               public function commit() {\r
+                       if($this->mysqli) {\r
+                               return $this->db->commit();\r
+                       } else {\r
+                               //no transaction support in mysql module...\r
+                               mysql_query('COMMIT;', $db);\r
+                       }\r
+                       $this->stopTransaction();\r
+               }
+               
+               private function stopTransaction() {\r
+                       if($this->mysqli) {\r
+                               return $this->db->autocommit(true);\r
+                       } else {\r
+                               //no transaction support in mysql module...\r
+                               mysql_query('SET AUTOCOMMIT = 1;', $db);\r
+                       }\r
+               }
+               
+               public function dbg($dbg) {
+                       $this->debug = $dbg;
+               }
 
-       public function escape($str) {
-               if($this->db && $this->connected) {
-                       if($this->mysqli)
-                               return @$this->db->real_escape_string($str);
-                       else
-                               return @mysql_real_escape_string($str,$this->db);
+               public function escape($str) {
+                       if($this->db && $this->connected) {
+                               if($this->mysqli) {
+                                       return $this->db->real_escape_string($str);
+                               } else {
+                                       return mysql_real_escape_string($str,$this->db);
+                               }
+                       }
                }
-       }
 
-       function __destruct() {
-               if ($this->db) 
-                       if($this->mysqli)
-                               $this->db->close();
-                       else
+               function __destruct() {
+                       if ($this->db) {
+                               if($this->mysqli) {
+                                       $this->db->close();
+                               }
+                       } else {
                                mysql_close($this->db);
+                       }
+               }
        }
-}}
+}
 
 if(! function_exists('printable')) {
-function printable($s) {
-       $s = preg_replace("~([\x01-\x08\x0E-\x0F\x10-\x1F\x7F-\xFF])~",".", $s);
-       $s = str_replace("\x00",'.',$s);
-       if(x($_SERVER,'SERVER_NAME'))
-               $s = escape_tags($s);
-       return $s;
-}}
+       function printable($s) {
+               $s = preg_replace("~([\x01-\x08\x0E-\x0F\x10-\x1F\x7F-\xFF])~",".", $s);
+               $s = str_replace("\x00",'.',$s);
+               if(x($_SERVER,'SERVER_NAME'))
+                       $s = escape_tags($s);
+               return $s;
+       }
+}
 
 // Procedural functions
-if(! function_exists('dbg')) { 
-function dbg($state) {
-       global $db;
-       if($db)
-       $db->dbg($state);
-}}
+if(! function_exists('dbg')) {
+       function dbg($state) {
+               global $db;
+               if($db)
+                       $db->dbg($state);
+       }
+}
 
-if(! function_exists('dbesc')) { 
-function dbesc($str) {
-       global $db;
-       if($db && $db->connected)
-               return($db->escape($str));
-       else
-               return(str_replace("'","\\'",$str));
-}}
+if(! function_exists('dbesc')) {
+       function dbesc($str) {
+               global $db;
+               if($db && $db->connected)
+                       return($db->escape($str));
+               else
+                       return(str_replace("'","\\'",$str));
+       }
+}
 
 
 
@@ -199,30 +283,31 @@ function dbesc($str) {
 // Example: $r = q("SELECT * FROM `%s` WHERE `uid` = %d",
 //                   'user', 1);
 
-if(! function_exists('q')) { 
-function q($sql) {
+if(! function_exists('q')) {
+       function q($sql) {
 
-       global $db;
-       $args = func_get_args();
-       unset($args[0]);
+               global $db;
+               $args = func_get_args();
+               unset($args[0]);
 
-       if($db && $db->connected) {
-               $stmt = vsprintf($sql,$args);
-               if($stmt === false)
-                       logger('dba: vsprintf error: ' . print_r(debug_backtrace(),true));
-               return $db->q($stmt);
-       }
+               if($db && $db->connected) {
+                       $stmt = vsprintf($sql,$args);
+                       if($stmt === false)
+                               logger('dba: vsprintf error: ' . print_r(debug_backtrace(),true));
+                       return $db->q($stmt);
+               }
 
-       /**
-        *
-        * This will happen occasionally trying to store the 
-        * session data after abnormal program termination 
-        *
-        */
-       logger('dba: no database: ' . print_r($args,true));
-       return false; 
+               /**
+                *
+                * This will happen occasionally trying to store the
+                * session data after abnormal program termination
+                *
+                */
+               logger('dba: no database: ' . print_r($args,true));
+               return false;
 
-}}
+       }
+}
 
 /**
  *
@@ -230,36 +315,39 @@ function q($sql) {
  *
  */
 
-if(! function_exists('dbq')) { 
-function dbq($sql) {
+if(! function_exists('dbq')) {
+       function dbq($sql) {
 
-       global $db;
-       if($db && $db->connected)
-               $ret = $db->q($sql);
-       else
-               $ret = false;
-       return $ret;
-}}
+               global $db;
+               if($db && $db->connected)
+                       $ret = $db->q($sql);
+               else
+                       $ret = false;
+               return $ret;
+       }
+}
 
 
-// Caller is responsible for ensuring that any integer arguments to 
+// Caller is responsible for ensuring that any integer arguments to
 // dbesc_array are actually integers and not malformed strings containing
-// SQL injection vectors. All integer array elements should be specifically 
-// cast to int to avoid trouble. 
+// SQL injection vectors. All integer array elements should be specifically
+// cast to int to avoid trouble.
 
 
 if(! function_exists('dbesc_array_cb')) {
-function dbesc_array_cb(&$item, $key) {
-       if(is_string($item))
-               $item = dbesc($item);
-}}
+       function dbesc_array_cb(&$item, $key) {
+               if(is_string($item))
+                       $item = dbesc($item);
+       }
+}
 
 
 if(! function_exists('dbesc_array')) {
-function dbesc_array(&$arr) {
-       if(is_array($arr) && count($arr)) {
-               array_walk($arr,'dbesc_array_cb');
+       function dbesc_array(&$arr) {
+               if(is_array($arr) && count($arr)) {
+                       array_walk($arr,'dbesc_array_cb');
+               }
        }
-}}             
+}
 
 
index ee6960534937a36bfdcbd9b2b01ec7a2b643bdad..3a931b68c085e6eb44034856119f3f0b8da772e4 100644 (file)
@@ -1856,6 +1856,8 @@ function local_delivery($importer,$data) {
        $feed->enable_order_by_date(false);
        $feed->init();
 
+/*
+       // Currently unsupported - needs a lot of work
        $reloc = $feed->get_feed_tags( NAMESPACE_DFRN, 'relocate' );
        if(isset($reloc[0]['child'][NAMESPACE_DFRN])) {
                $base = $reloc[0]['child'][NAMESPACE_DFRN];
@@ -1880,6 +1882,7 @@ function local_delivery($importer,$data) {
                // schedule a scan?
 
        }
+*/
 
        // handle friend suggestion notification
 
index 38d0980d50f781464127a77017aeced9f8310ebb..23ef50b21bd34095a68de6386bda7d180bf84bcf 100644 (file)
@@ -692,18 +692,23 @@ function allowed_email($email) {
 }}
 
 
-if(! function_exists('gravatar_img')) {
-function gravatar_img($email) {
-       $size = 175;
-       $opt = 'identicon';   // psuedo-random geometric pattern if not found
-       $rating = 'pg';
-       $hash = md5(trim(strtolower($email)));
-       
-       $url = 'http://www.gravatar.com/avatar/' . $hash . '.jpg' 
-               . '?s=' . $size . '&d=' . $opt . '&r=' . $rating;
+if(! function_exists('avatar_img')) {
+function avatar_img($email) {
+
+       $a = get_app();
+
+       $avatar['size'] = 175;
+       $avatar['email'] = $email;
+       $avatar['url'] = '';
+       $avatar['success'] = false;
+
+       call_hooks('avatar_lookup', $avatar);
+
+       if(! $avatar['success'])
+               $avatar['url'] = $a->get_baseurl() . '/images/person-175.jpg';
 
-       logger('gravatar: ' . $email . ' ' . $url);
-       return $url;
+       logger('Avatar: ' . $avatar['email'] . ' ' . $avatar['url'], LOGGER_DEBUG);
+       return $avatar['url'];
 }}
 
 
index aced9e0a81471bd4b22900a315a32131b57bca8b..4ec59a66589c05ec8509d53da9e37ec46741fc79 100644 (file)
@@ -1506,3 +1506,8 @@ function undo_post_tagging($s) {
        return $s;
 }
 
+function fix_mce_lf($s) {
+       $s = str_replace("\r\n","\n",$s);
+       $s = str_replace("\n\n","\n",$s);
+       return $s;
+}
\ No newline at end of file
index e7227962f479436a31cfff2054dc79bdcb995920..5dd93523e3a78dd86e99a7df6ba1165f44aedebd 100644 (file)
--- a/index.php
+++ b/index.php
@@ -38,11 +38,10 @@ load_translation_table($lang);
  */
 
 require_once("dba.php");
-$db = new dba($db_host, $db_user, $db_pass, $db_data, $install);
-        unset($db_host, $db_user, $db_pass, $db_data);
-
 
 if(! $install) {
+$db = new dba($db_host, $db_user, $db_pass, $db_data, $install);
+        unset($db_host, $db_user, $db_pass, $db_data);
 
        /**
         * Load configs from db. Overwrite configs from .htconfig.php
@@ -258,6 +257,18 @@ if($a->module_loaded) {
                $func($a);
        }
 
+       if(function_exists(str_replace('-','_',current_theme()) . '_init')) {
+               $func = str_replace('-','_',current_theme()) . '_init';
+               $func($a);
+       }
+//     elseif (x($a->theme_info,"extends") && file_exists("view/theme/".$a->theme_info["extends"]."/theme.php")) {
+//             require_once("view/theme/".$a->theme_info["extends"]."/theme.php");
+//             if(function_exists(str_replace('-','_',$a->theme_info["extends"]) . '_init')) {
+//                     $func = str_replace('-','_',$a->theme_info["extends"]) . '_init';
+//                     $func($a);
+//             }
+//     }
+
        if(($_SERVER['REQUEST_METHOD'] === 'POST') && (! $a->error)
                && (function_exists($a->module . '_post'))
                && (! x($_POST,'auth-params'))) {
@@ -348,13 +359,13 @@ $profile = $a->profile;
 
 header("Content-type: text/html; charset=utf-8");
 
-$template = 'view/' . current_theme() . '/' 
+$template = 'view/theme/' . current_theme() . '/' 
        . ((x($a->page,'template')) ? $a->page['template'] : 'default' ) . '.php';
 
 if(file_exists($template))
        require_once($template);
 else
-       require_once(str_replace(current_theme() . '/', '', $template));
+       require_once(str_replace('theme/' . current_theme() . '/', '', $template));
 
 session_write_close();
 exit;
index a395027c11604110f22864e7bcc8fa5fe68358d7..96100278685069b4eb9ade74c876f90dd616a190 100644 (file)
@@ -174,7 +174,6 @@ function admin_page_site_post(&$a){
                return;
        }
 
-       
        $sitename                       =       ((x($_POST,'sitename'))                 ? notags(trim($_POST['sitename']))                      : '');
        $banner                         =       ((x($_POST,'banner'))                   ? trim($_POST['banner'])                                        : false);
        $language                       =       ((x($_POST,'language'))                 ? notags(trim($_POST['language']))                      : '');
@@ -194,7 +193,6 @@ function admin_page_site_post(&$a){
        $global_directory       =       ((x($_POST,'directory_submit_url'))     ? notags(trim($_POST['directory_submit_url']))  : '');
        $no_multi_reg           =       ((x($_POST,'no_multi_reg'))             ? True  :       False);
        $no_openid                      =       !((x($_POST,'no_openid'))               ? True  :       False);
-       $no_gravatar            =       !((x($_POST,'no_gravatar'))             ? True  :       False);
        $no_regfullname         =       !((x($_POST,'no_regfullname'))  ? True  :       False);
        $no_utf                         =       !((x($_POST,'no_utf'))                  ? True  :       False);
        $no_community_page      =       !((x($_POST,'no_community_page'))       ? True  :       False);
@@ -204,7 +202,7 @@ function admin_page_site_post(&$a){
        $proxy                          =       ((x($_POST,'proxy'))                    ? notags(trim($_POST['proxy'])) : '');
        $timeout                        =       ((x($_POST,'timeout'))                  ? intval(trim($_POST['timeout']))               : 60);
        $dfrn_only          =   ((x($_POST,'dfrn_only'))            ? True      :       False);
-    $ostatus_disabled   =   !((x($_POST,'ostatus_disabled')) ? True  :   False);
+       $ostatus_disabled   =   !((x($_POST,'ostatus_disabled')) ? True  :   False);
        $diaspora_enabled   =   ((x($_POST,'diaspora_enabled')) ? True   :  False);
        $ssl_policy         =   ((x($_POST,'ssl_policy')) ? intval($_POST['ssl_policy']) : 0);
 
@@ -283,7 +281,6 @@ function admin_page_site_post(&$a){
        set_config('system','directory_search_url', $global_search_url);
        set_config('system','block_extended_register', $no_multi_reg);
        set_config('system','no_openid', $no_openid);
-       set_config('system','no_gravatar', $no_gravatar);
        set_config('system','no_regfullname', $no_regfullname);
        set_config('system','no_community_page', $no_community_page);
        set_config('system','no_utf', $no_utf);
@@ -380,7 +377,6 @@ function admin_page_site(&$a) {
                        
                '$no_multi_reg'         => array('no_multi_reg', t("Block multiple registrations"),  get_config('system','block_extended_register'), t("Disallow users to register additional accounts for use as pages.")),
                '$no_openid'            => array('no_openid', t("OpenID support"), !get_config('system','no_openid'), t("OpenID support for registration and logins.")),
-               '$no_gravatar'          => array('no_gravatar', t("Gravatar support"), !get_config('system','no_gravatar'), t("Search new user's photo on Gravatar.")),
                '$no_regfullname'       => array('no_regfullname', t("Fullname check"), !get_config('system','no_regfullname'), t("Force users to register with a space between firstname and lastname in Full name, as an antispam measure")),
                '$no_utf'                       => array('no_utf', t("UTF-8 Regular expressions"), !get_config('system','no_utf'), t("Use PHP UTF8 regular expressions")),
                '$no_community_page' => array('no_community_page', t("Show Community Page"), !get_config('system','no_community_page'), t("Display a Community page showing all recent public postings on this site.")),
index f8cc3305b104a615392b4970e77f62e7f29dda51..bfe5a30893f6d1fda936ea9dd045d19155f5fc63 100644 (file)
@@ -45,13 +45,13 @@ function community_content(&$a, $update = 0) {
        // OR your own posts if you are a logged in member
 
 
-       $r = q("SELECT COUNT(*) AS `total`
+       $r = q("SELECT distinct(`item`.`uri`) AS `total`
                FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id` LEFT JOIN `user` ON `user`.`uid` = `item`.`uid`
                WHERE `item`.`visible` = 1 AND `item`.`deleted` = 0 and `item`.`moderated` = 0
                AND `item`.`allow_cid` = ''  AND `item`.`allow_gid` = '' 
                AND `item`.`deny_cid`  = '' AND `item`.`deny_gid`  = '' 
                AND `item`.`private` = 0 AND `item`.`wall` = 1 AND `user`.`hidewall` = 0 
-               AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0 "
+               AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0 group by `item`.`uri` "
        );
 
        if(count($r))
@@ -62,7 +62,7 @@ function community_content(&$a, $update = 0) {
                return $o;
        }
 
-       $r = q("SELECT `item`.*, `item`.`id` AS `item_id`, 
+       $r = q("SELECT distinct(`item`.`uri`), `item`.*, `item`.`id` AS `item_id`, 
                `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`,
                `contact`.`network`, `contact`.`thumb`, `contact`.`self`, `contact`.`writable`, 
                `contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`,
@@ -73,7 +73,7 @@ function community_content(&$a, $update = 0) {
                AND `item`.`allow_cid` = ''  AND `item`.`allow_gid` = '' 
                AND `item`.`deny_cid`  = '' AND `item`.`deny_gid`  = '' 
                AND `item`.`private` = 0 AND `item`.`wall` = 1 AND `user`.`hidewall` = 0 
-               AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
+               AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0 group by `item`.`uri`
                ORDER BY `received` DESC LIMIT %d, %d ",
                intval($a->pager['start']),
                intval($a->pager['itemspage'])
index 8aa51d00ae471cea524192f33eb5c6a0dd9b0c38..9d29d4bd1438ee091407a83bcabcb8f33a37d788 100644 (file)
@@ -85,7 +85,7 @@ function contacts_post(&$a) {
        if($priority > 5 || $priority < 0)
                $priority = 0;
 
-       $info = escape_tags(trim($_POST['info']));
+       $info = fix_mce_lf(escape_tags(trim($_POST['info'])));
 
        $r = q("UPDATE `contact` SET `profile-id` = %d, `priority` = %d , `info` = '%s',
                `hidden` = %d WHERE `id` = %d AND `uid` = %d LIMIT 1",
@@ -232,8 +232,14 @@ function contacts_content(&$a) {
                $contact_id = $a->data['contact']['id'];
                $contact = $a->data['contact'];
 
-               $tpl = get_markup_template('contact_head.tpl');
-               $a->page['htmlhead'] .= replace_macros($tpl, array('$baseurl' => $a->get_baseurl(true)));
+               $editselect = 'exact';
+               if(intval(get_pconfig(local_user(),'system','plaintext')))
+                       $editselect = 'none';
+
+               $a->page['htmlhead'] .= replace_macros(get_markup_template('contact_head.tpl'), array(
+                       '$baseurl' => $a->get_baseurl(true),
+                       '$editselect' => $editselect,
+               ));
 
                require_once('include/contact_selectors.php');
 
index 5c27889831575a1e8cbd2f88ffff1a70530666cc..436727a78fca603bcb1e00c04ddd5b97a92674bf 100644 (file)
@@ -428,11 +428,13 @@ function dfrn_poll_content(&$a) {
                                break; // NOTREACHED
                }
 
+               $nickname = $a->argv[1];
+
                $r = q("SELECT `contact`.*, `user`.`username`, `user`.`nickname` 
                        FROM `contact` LEFT JOIN `user` ON `contact`.`uid` = `user`.`uid`
                        WHERE `contact`.`blocked` = 0 AND `contact`.`pending` = 0 
                        AND `user`.`nickname` = '%s' $sql_extra LIMIT 1",
-                       dbesc($a->argv[1])
+                       dbesc($nickname)
                );
 
                if(count($r)) {
@@ -482,7 +484,7 @@ function dfrn_poll_content(&$a) {
                                ));
                        }
                        
-                       $profile = $r[0]['nickname'];
+                       $profile = ((count($r) && $r[0]['nickname']) ? $r[0]['nickname'] : $nickname);
 
                        switch($destination_url) {
                                case 'profile':
index 5881b7b51bed3805f6a68aaef12239c24c15e6bd..77a3124f76a2128f39a48b5d9fe69c45e054a59c 100644 (file)
@@ -180,7 +180,7 @@ function dfrn_request_post(&$a) {
                                
                                // (ignore reply, nothing we can do it failed)
 
-                               goaway($dfrn_url);
+                               goaway(zrl($dfrn_url));
                                return; // NOTREACHED
 
                        }
@@ -261,7 +261,7 @@ function dfrn_request_post(&$a) {
                        WHERE `intro`.`blocked` = 1 AND `contact`.`self` = 0 
                        AND `contact`.`network` != '%s'
                        AND `intro`.`datetime` < UTC_TIMESTAMP() - INTERVAL 30 MINUTE ",
-                       dbesc(NETWORK_MAIL)
+                       dbesc(NETWORK_MAIL2)
                );
                if(count($r)) {
                        foreach($r as $rr) {
@@ -286,7 +286,7 @@ function dfrn_request_post(&$a) {
                        WHERE `intro`.`blocked` = 1 AND `contact`.`self` = 0 
                        AND `contact`.`network` = '%s'
                        AND `intro`.`datetime` < UTC_TIMESTAMP() - INTERVAL 3 DAY ",
-                       dbesc(NETWORK_MAIL)
+                       dbesc(NETWORK_MAIL2)
                );
                if(count($r)) {
                        foreach($r as $rr) {
@@ -301,6 +301,8 @@ function dfrn_request_post(&$a) {
                        }
                }
 
+               $email_follow = (x($_POST,'email_follow') ? intval($_POST['email_follow']) : 0);
+               $real_name = (x($_POST,'realname') ? notags(trim($_POST['realname'])) : '');
 
                $url = trim($_POST['dfrn_url']);
                if(! strlen($url)) {
@@ -308,17 +310,60 @@ function dfrn_request_post(&$a) {
                        return;
                }
 
-               // Canonicalise email-style profile locator
-
                $hcard = '';
-               $url = webfinger_dfrn($url,$hcard);
 
-               if(substr($url,0,5) === 'stat:') {
-                       $network = NETWORK_OSTATUS;
-                       $url = substr($url,5);
+               if($email_follow) {
+
+                       if(! strpos($url,'@')) {
+                               notice( t('Invalid email address.') . EOL);
+                               return;
+                       }
+
+                       $addr    = $url;
+                       $name    = ($realname) ? $realname : $addr;
+                       $nick    = substr($addr,0,strpos($addr,'@'));
+                       $url     = 'http://' . substr($addr,strpos($addr,'@') + 1);
+                       $nurl    = normalise_url($host);
+                       $poll    = 'email ' . random_string();
+                       $notify  = 'smtp ' . random_string();
+                       $blocked = 1;
+                       $pending = 1;
+                       $network = NETWORK_MAIL2;
+                       $rel     = CONTACT_IS_FOLLOWER;
+
+                       $mail_disabled = ((function_exists('imap_open') && (! get_config('system','imap_disabled'))) ? 0 : 1);
+                       if(get_config('system','dfrn_only'))
+                               $mail_disabled = 1;
+
+                       if(! $mail_disabled) {
+                               $failed = false;
+                               $r = q("SELECT * FROM `mailacct` WHERE `uid` = %d LIMIT 1",
+                                       intval($uid)
+                               );
+                               if(! count($r)) {
+                                       notice( t('This account has not been configured for email. Request failed.') . EOL);
+                                       return;
+                               }
+                       }
+
+
+
+
+
                }
                else {
-                       $network = NETWORK_DFRN;
+
+                       // Canonicalise email-style profile locator
+
+                       $url = webfinger_dfrn($url,$hcard);
+
+                       if(substr($url,0,5) === 'stat:') {
+                               $network = NETWORK_OSTATUS;
+                               $url = substr($url,5);
+                       }
+                       else {
+                               $network = NETWORK_DFRN;
+                       }
                }
 
                logger('dfrn_request: url: ' . $url);
index 72e63865bd53da577fed451fe10efff853bcbd9a..7f0ca3fc355c515a80b88d43113978a7ec4a03bd 100644 (file)
@@ -272,8 +272,7 @@ function item_post(&$a) {
 
        $plaintext = (local_user() ? intval(get_pconfig(local_user(),'system','plaintext')) : 0);
        if((! $parent) && (! $api_source) && (! $plaintext)) {
-               $body = str_replace("\r\n","\n",$body);
-               $body = str_replace("\n\n","\n",$body);
+               $body = fix_mce_lf($body);
        }
 
 
@@ -351,7 +350,7 @@ function item_post(&$a) {
                                $image_uri = substr($image_uri,0, strpos($image_uri,'-'));
                                if(! strlen($image_uri))
                                        continue;
-                               $srch = '<' . intval($profile_uid) . '>';
+                               $srch = '<' . intval($contact_record['id']) . '>';
                                $r = q("SELECT `id` FROM `photo` WHERE `allow_cid` = '%s' AND `allow_gid` = '' AND `deny_cid` = '' AND `deny_gid` = ''
                                        AND `resource-id` = '%s' AND `uid` = %d LIMIT 1",
                                        dbesc($srch),
@@ -447,7 +446,7 @@ function item_post(&$a) {
 
        if(count($tags)) {
                foreach($tags as $tag) {
-                       handle_tag($a, $body, $inform, $str_tags, $profile_uid, $tag); 
+                       handle_tag($a, $body, $inform, $str_tags, (local_user()) ? local_user() : $profile_uid , $tag); 
                }
        }
 
index 1369fde2e2708af28e2d55ddd28ea1e053bda21e..260f4bb14d30045b93c62b0eff4e10fabde70706 100644 (file)
@@ -48,8 +48,7 @@ function message_post(&$a) {
 
        $plaintext = intval(get_pconfig(local_user(),'system','plaintext'));
        if(! $plaintext) {
-               $body = str_replace("\r\n","\n",$body);
-               $body = str_replace("\n\n","\n",$body);
+               $body = fix_mce_lf($body);
        }
        
        $ret = send_message($recipient, $body, $subject, $replyto);
index 683463ecb87dd2aabe9b52557f010084693025b8..a423d11b8fbec3e912700f48a807f8c2c11fadc9 100644 (file)
@@ -13,7 +13,7 @@ function newmember_content(&$a) {
 
        $o .= '<ul>';
 
-       $o .= '<li>' . '<a target="newmember" href="/help/guide">' . t('On your <em>Quick Start</em> page - find a brief introduction to your profile and network tabs, connect to Facebook, make some new connections, and find some groups to join.') . '</a></li>' . EOL; 
+       $o .= '<li>' . '<a target="newmember" href="help/guide">' . t('On your <em>Quick Start</em> page - find a brief introduction to your profile and network tabs, connect to Facebook, make some new connections, and find some groups to join.') . '</a></li>' . EOL; 
 
        $o .= '<li>' . '<a target="newmember" href="settings">' . t('On your <em>Settings</em> page -  change your initial password. Also make a note of your Identity Address. This looks just like an email address - and will be useful in making friends on the free social web.') . '</a></li>' . EOL; 
 
@@ -48,4 +48,4 @@ function newmember_content(&$a) {
        $o .= '</div>';
 
        return $o;
-}
\ No newline at end of file
+}
index 68d73fba3829b50aab8d2fb33897788ee148dfe9..51f9444121d20083f3908c30e63b82b7ab389822 100644 (file)
@@ -14,7 +14,7 @@ function profile_init(&$a) {
        else {
                $r = q("select nickname from user where blocked = 0 and account_expired = 0 and verified = 1 order by rand() limit 1");
                if(count($r)) {
-                       $which = $r[0]['nickname'];
+                       goaway($a->get_baseurl() . '/profile/' . $r[0]['nickname']);
                }
                else {
                        notice( t('Requested profile is not available.') . EOL );
index 7b3b6ccc1eb5ea1451bcf361768c53f73f117379..eef58bb06fcd8201361fa812ed8798a208e85180 100644 (file)
@@ -121,16 +121,17 @@ function profiles_post(&$a) {
                $politic = notags(trim($_POST['politic']));
                $religion = notags(trim($_POST['religion']));
 
-               $about = escape_tags(trim($_POST['about']));
-               $interest = escape_tags(trim($_POST['interest']));
-               $contact = escape_tags(trim($_POST['contact']));
-               $music = escape_tags(trim($_POST['music']));
-               $book = escape_tags(trim($_POST['book']));
-               $tv = escape_tags(trim($_POST['tv']));
-               $film = escape_tags(trim($_POST['film']));
-               $romance = escape_tags(trim($_POST['romance']));
-               $work = escape_tags(trim($_POST['work']));
-               $education = escape_tags(trim($_POST['education']));
+               $about = fix_mce_lf(escape_tags(trim($_POST['about'])));
+               $interest = fix_mce_lf(escape_tags(trim($_POST['interest'])));
+               $contact = fix_mce_lf(escape_tags(trim($_POST['contact'])));
+               $music = fix_mce_lf(escape_tags(trim($_POST['music'])));
+               $book = fix_mce_lf(escape_tags(trim($_POST['book'])));
+               $tv = fix_mce_lf(escape_tags(trim($_POST['tv'])));
+               $film = fix_mce_lf(escape_tags(trim($_POST['film'])));
+               $romance = fix_mce_lf(escape_tags(trim($_POST['romance'])));
+               $work = fix_mce_lf(escape_tags(trim($_POST['work'])));
+               $education = fix_mce_lf(escape_tags(trim($_POST['education'])));
+
                $hide_friends = (($_POST['hide-friends'] == 1) ? 1: 0);
 
                $r = q("UPDATE `profile` 
@@ -361,7 +362,16 @@ function profiles_content(&$a) {
 
                require_once('include/profile_selectors.php');
 
-               $tpl = get_markup_template('profed_head.tpl');
+
+               $editselect = 'textareas';
+               if(intval(get_pconfig(local_user(),'system','plaintext')))
+                       $editselect = 'none';
+
+               $a->page['htmlhead'] .= replace_macros(get_markup_template('profed_head.tpl'), array(
+                       '$baseurl' => $a->get_baseurl(true),
+                       '$editselect' => $editselect,
+               ));
+
 
                $opt_tpl = get_markup_template("profile-hide-friends.tpl");
                $hide_friends = replace_macros($opt_tpl,array(
@@ -372,10 +382,12 @@ function profiles_content(&$a) {
                        '$no_selected' => (($r[0]['hide-friends'] == 0) ? " checked=\"checked\" " : "")
                ));
 
-
-               $a->page['htmlhead'] .= replace_macros($tpl, array('$baseurl' => $a->get_baseurl(true)));
                $a->page['htmlhead'] .= "<script type=\"text/javascript\" src=\"js/country.js\" ></script>";
 
+
+
+
+
                $f = get_config('system','birthday_input_format');
                if(! $f)
                        $f = 'ymd';
diff --git a/mod/randprof.php b/mod/randprof.php
new file mode 100644 (file)
index 0000000..53d7425
--- /dev/null
@@ -0,0 +1,10 @@
+<?php
+
+
+function randprof_init(&$a) {
+       require_once('include/Contact.php');
+       $x = random_profile();
+       if($x)
+               goaway($x);
+       goaway($a->get_baseurl() . '/profile');
+}
index 630c0a6759426fa6918d022087dee6b89ceefc2b..b60707d457299f0a167a69564637c755c46a6718 100644 (file)
@@ -314,17 +314,13 @@ function register_post(&$a) {
 
        }
 
-       $use_gravatar = ((get_config('system','no_gravatar')) ? false : true);
-
-       // if we have an openid photo use it. 
-       // otherwise unless it is disabled, use gravatar
-
-       if($use_gravatar || strlen($photo)) {
+       // if we have no OpenID photo try to look up an avatar
+       if(! strlen($photo))
+               $photo = avatar_img($email);
 
+       // unless there is no avatar-plugin loaded
+       if(strlen($photo)) {
                require_once('include/Photo.php');
-
-               if(($use_gravatar) && (! strlen($photo))) 
-                       $photo = gravatar_img($email);
                $photo_failure = false;
 
                $filename = basename($photo);
@@ -333,7 +329,7 @@ function register_post(&$a) {
                if($img->is_valid()) {
 
                        $img->scaleImageSquare(175);
-                                       
+
                        $hash = photo_new_resource();
 
                        $r = $img->store($newuid, 0, $hash, $filename, t('Profile Photos'), 4 );
index ecf4752915f22a85abee826d9534122433a38fcb..bee7c29dc9684230db3c5b76a66ef9fc062f5d47 100644 (file)
@@ -7,7 +7,7 @@ function wall_attach_post(&$a) {
 
        if($a->argc > 1) {
                $nick = $a->argv[1];
-               $r = q("SELECT * FROM `user` WHERE `nickname` = '%s' AND `blocked` = 0 LIMIT 1",
+               $r = q("SELECT `user`.*, `contact`.`id` FROM `user` LEFT JOIN `contact` on `user`.`uid` = `contact`.`uid`  WHERE `user`.`nickname` = '%s' AND `user`.`blocked` = 0 and `contact`.`self` = 1 LIMIT 1",
                        dbesc($nick)
                );
                if(! count($r))
@@ -21,6 +21,7 @@ function wall_attach_post(&$a) {
        $visitor   = 0;
 
        $page_owner_uid   = $r[0]['uid'];
+       $page_owner_cid   = $r[0]['id'];
        $page_owner_nick  = $r[0]['nickname'];
        $community_page   = (($r[0]['page-flags'] == PAGE_COMMUNITY) ? true : false);
 
@@ -73,7 +74,7 @@ function wall_attach_post(&$a) {
                dbesc($filedata),
                dbesc($created),
                dbesc($created),
-               dbesc('<' . $page_owner_uid . '>'),
+               dbesc('<' . $page_owner_cid . '>'),
                dbesc(''),
                dbesc(''),
                dbesc('')
index 64f174a78e4763a58e445d153a21a4de73643ed1..f341cc9cdaa837186d2b10d4efad4964f10f6fe5 100644 (file)
@@ -6,7 +6,7 @@ function wall_upload_post(&$a) {
 
        if($a->argc > 1) {
                $nick = $a->argv[1];
-               $r = q("SELECT * FROM `user` WHERE `nickname` = '%s' AND `blocked` = 0 LIMIT 1",
+               $r = q("SELECT `user`.*, `contact`.`id` FROM `user` LEFT JOIN `contact` on `user`.`uid` = `contact`.`uid`  WHERE `user`.`nickname` = '%s' AND `user`.`blocked` = 0 and `contact`.`self` = 1 LIMIT 1",
                        dbesc($nick)
                );
                if(! count($r))
@@ -16,10 +16,13 @@ function wall_upload_post(&$a) {
        else
                return;
 
+
+
        $can_post  = false;
        $visitor   = 0;
 
        $page_owner_uid   = $r[0]['uid'];
+       $default_cid      = $r[0]['id'];
        $page_owner_nick  = $r[0]['nickname'];
        $community_page   = (($r[0]['page-flags'] == PAGE_COMMUNITY) ? true : false);
 
@@ -34,6 +37,7 @@ function wall_upload_post(&$a) {
                        if(count($r)) {
                                $can_post = true;
                                $visitor = remote_user();
+                               $default_cid = $visitor;
                        }
                }
        }
@@ -76,7 +80,7 @@ function wall_upload_post(&$a) {
        
        $smallest = 0;
 
-       $defperm = '<' . $page_owner_uid . '>';
+       $defperm = '<' . $default_cid . '>';
 
        $r = $ph->store($page_owner_uid, $visitor, $hash, $filename, t('Wall Photos'), 0, 0, $defperm);
 
index 0cb9d094d0851600eebd8c3952f180e6e9243908..2f02d0d8cd987cfb596a86903c9b91d4f39c156b 100644 (file)
@@ -6,9 +6,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: 2.3.1304\n"
+"Project-Id-Version: 2.3.1308\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-04-06 10:00-0700\n"
+"POT-Creation-Date: 2012-04-10 10:00-0700\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -34,7 +34,7 @@ msgstr ""
 msgid "Contact update failed."
 msgstr ""
 
-#: ../../mod/crepair.php:115 ../../mod/wall_attach.php:43
+#: ../../mod/crepair.php:115 ../../mod/wall_attach.php:44
 #: ../../mod/fsuggest.php:78 ../../mod/events.php:110 ../../mod/api.php:26
 #: ../../mod/api.php:31 ../../mod/photos.php:130 ../../mod/photos.php:866
 #: ../../mod/editpost.php:10 ../../mod/install.php:171
@@ -50,12 +50,12 @@ msgstr ""
 #: ../../mod/profile_photo.php:139 ../../mod/profile_photo.php:150
 #: ../../mod/profile_photo.php:163 ../../mod/message.php:38
 #: ../../mod/message.php:91 ../../mod/allfriends.php:9
-#: ../../mod/wall_upload.php:42 ../../mod/follow.php:8 ../../mod/common.php:9
+#: ../../mod/wall_upload.php:46 ../../mod/follow.php:8 ../../mod/common.php:9
 #: ../../mod/display.php:138 ../../mod/profiles.php:7
 #: ../../mod/profiles.php:232 ../../mod/delegate.php:6
 #: ../../mod/suggest.php:28 ../../mod/invite.php:13 ../../mod/invite.php:81
-#: ../../mod/dfrn_confirm.php:53 ../../addon/facebook/facebook.php:456
-#: ../../include/items.php:3118 ../../index.php:294
+#: ../../mod/dfrn_confirm.php:53 ../../addon/facebook/facebook.php:460
+#: ../../include/items.php:3118 ../../index.php:306
 msgid "Permission denied."
 msgstr ""
 
@@ -132,12 +132,13 @@ msgstr ""
 #: ../../mod/manage.php:109 ../../mod/group.php:85 ../../mod/admin.php:357
 #: ../../mod/admin.php:525 ../../mod/admin.php:654 ../../mod/admin.php:826
 #: ../../mod/admin.php:906 ../../mod/profiles.php:390 ../../mod/invite.php:119
-#: ../../addon/facebook/facebook.php:547 ../../addon/yourls/yourls.php:76
+#: ../../addon/facebook/facebook.php:551 ../../addon/yourls/yourls.php:76
 #: ../../addon/ljpost/ljpost.php:93 ../../addon/nsfw/nsfw.php:57
+#: ../../addon/planets/planets.php:180
 #: ../../addon/uhremotestorage/uhremotestorage.php:89
 #: ../../addon/randplace/randplace.php:179 ../../addon/dwpost/dwpost.php:93
 #: ../../addon/drpost/drpost.php:110 ../../addon/geonames/geonames.php:187
-#: ../../addon/oembed.old/oembed.php:41 ../../addon/impressum/impressum.php:69
+#: ../../addon/oembed.old/oembed.php:41 ../../addon/impressum/impressum.php:80
 #: ../../addon/blockem/blockem.php:57 ../../addon/qcomment/qcomment.php:61
 #: ../../addon/openstreetmap/openstreetmap.php:70
 #: ../../addon/editplain/editplain.php:84 ../../addon/blackout/blackout.php:94
@@ -147,12 +148,12 @@ msgstr ""
 #: ../../addon/statusnet/statusnet.php:318
 #: ../../addon/statusnet/statusnet.php:325
 #: ../../addon/statusnet/statusnet.php:353
-#: ../../addon/statusnet/statusnet.php:547 ../../addon/tumblr/tumblr.php:90
+#: ../../addon/statusnet/statusnet.php:553 ../../addon/tumblr/tumblr.php:90
 #: ../../addon/numfriends/numfriends.php:85 ../../addon/gnot/gnot.php:88
 #: ../../addon/wppost/wppost.php:102 ../../addon/showmore/showmore.php:48
 #: ../../addon/piwik/piwik.php:89 ../../addon/twitter/twitter.php:180
-#: ../../addon/twitter/twitter.php:209 ../../addon/twitter/twitter.php:369
-#: ../../addon/posterous/posterous.php:90
+#: ../../addon/twitter/twitter.php:209 ../../addon/twitter/twitter.php:375
+#: ../../addon/blogger/blogger.php:102 ../../addon/posterous/posterous.php:90
 #: ../../view/theme/quattro/config.php:21 ../../include/conversation.php:555
 msgid "Submit"
 msgstr ""
@@ -173,12 +174,12 @@ msgstr ""
 msgid "Page not found."
 msgstr ""
 
-#: ../../mod/wall_attach.php:57
+#: ../../mod/wall_attach.php:58
 #, php-format
 msgid "File exceeds size limit of %d"
 msgstr ""
 
-#: ../../mod/wall_attach.php:85 ../../mod/wall_attach.php:96
+#: ../../mod/wall_attach.php:86 ../../mod/wall_attach.php:97
 msgid "File upload failed."
 msgstr ""
 
@@ -211,11 +212,11 @@ msgstr ""
 msgid "link to source"
 msgstr ""
 
-#: ../../mod/events.php:296 ../../view/theme/diabook-red/theme.php:240
-#: ../../view/theme/diabook-blue/theme.php:240
-#: ../../view/theme/diabook/theme.php:248
-#: ../../view/theme/diabook-aerith/theme.php:240 ../../include/nav.php:52
-#: ../../boot.php:1421
+#: ../../mod/events.php:296 ../../view/theme/diabook-red/theme.php:244
+#: ../../view/theme/diabook-blue/theme.php:244
+#: ../../view/theme/diabook/theme.php:251
+#: ../../view/theme/diabook-aerith/theme.php:245 ../../include/nav.php:52
+#: ../../boot.php:1469
 msgid "Events"
 msgstr ""
 
@@ -265,7 +266,7 @@ msgid "Description:"
 msgstr ""
 
 #: ../../mod/events.php:395 ../../include/event.php:37
-#: ../../include/bb2diaspora.php:260 ../../boot.php:1042
+#: ../../include/bb2diaspora.php:260 ../../boot.php:1081
 msgid "Location:"
 msgstr ""
 
@@ -347,10 +348,10 @@ msgstr ""
 #: ../../mod/photos.php:51 ../../mod/photos.php:151 ../../mod/photos.php:880
 #: ../../mod/photos.php:951 ../../mod/photos.php:966 ../../mod/photos.php:1383
 #: ../../mod/photos.php:1395 ../../addon/communityhome/communityhome.php:110
-#: ../../view/theme/diabook-red/theme.php:110
-#: ../../view/theme/diabook-blue/theme.php:110
-#: ../../view/theme/diabook/theme.php:114
-#: ../../view/theme/diabook-aerith/theme.php:110
+#: ../../view/theme/diabook-red/theme.php:114
+#: ../../view/theme/diabook-blue/theme.php:114
+#: ../../view/theme/diabook/theme.php:117
+#: ../../view/theme/diabook-aerith/theme.php:115
 msgid "Contact Photos"
 msgstr ""
 
@@ -373,10 +374,10 @@ msgstr ""
 #: ../../mod/profile_photo.php:74 ../../mod/profile_photo.php:174
 #: ../../mod/profile_photo.php:252 ../../mod/profile_photo.php:261
 #: ../../addon/communityhome/communityhome.php:111
-#: ../../view/theme/diabook-red/theme.php:111
-#: ../../view/theme/diabook-blue/theme.php:111
-#: ../../view/theme/diabook/theme.php:115
-#: ../../view/theme/diabook-aerith/theme.php:111
+#: ../../view/theme/diabook-red/theme.php:115
+#: ../../view/theme/diabook-blue/theme.php:115
+#: ../../view/theme/diabook/theme.php:118
+#: ../../view/theme/diabook-aerith/theme.php:116
 msgid "Profile Photos"
 msgstr ""
 
@@ -398,10 +399,10 @@ msgstr ""
 
 #: ../../mod/photos.php:529 ../../mod/like.php:127 ../../mod/tagger.php:70
 #: ../../addon/communityhome/communityhome.php:163
-#: ../../view/theme/diabook-red/theme.php:82
-#: ../../view/theme/diabook-blue/theme.php:82
-#: ../../view/theme/diabook/theme.php:86
-#: ../../view/theme/diabook-aerith/theme.php:82 ../../include/text.php:1297
+#: ../../view/theme/diabook-red/theme.php:86
+#: ../../view/theme/diabook-blue/theme.php:86
+#: ../../view/theme/diabook/theme.php:89
+#: ../../view/theme/diabook-aerith/theme.php:87 ../../include/text.php:1297
 #: ../../include/diaspora.php:1654 ../../include/conversation.php:53
 #: ../../include/conversation.php:126
 msgid "photo"
@@ -420,12 +421,12 @@ msgid "Image file is empty."
 msgstr ""
 
 #: ../../mod/photos.php:654 ../../mod/profile_photo.php:124
-#: ../../mod/wall_upload.php:65
+#: ../../mod/wall_upload.php:69
 msgid "Unable to process image."
 msgstr ""
 
 #: ../../mod/photos.php:674 ../../mod/profile_photo.php:257
-#: ../../mod/wall_upload.php:84
+#: ../../mod/wall_upload.php:88
 msgid "Image upload failed."
 msgstr ""
 
@@ -576,11 +577,10 @@ msgstr ""
 msgid "Not available."
 msgstr ""
 
-#: ../../mod/community.php:30 ../../addon/pages/pages.php:75
-#: ../../view/theme/diabook-red/theme.php:242
-#: ../../view/theme/diabook-blue/theme.php:242
-#: ../../view/theme/diabook/theme.php:250
-#: ../../view/theme/diabook-aerith/theme.php:242 ../../include/nav.php:101
+#: ../../mod/community.php:30 ../../view/theme/diabook-red/theme.php:246
+#: ../../view/theme/diabook-blue/theme.php:246
+#: ../../view/theme/diabook/theme.php:253
+#: ../../view/theme/diabook-aerith/theme.php:247 ../../include/nav.php:101
 msgid "Community"
 msgstr ""
 
@@ -1165,7 +1165,7 @@ msgid "is interested in:"
 msgstr ""
 
 #: ../../mod/match.php:58 ../../mod/suggest.php:59
-#: ../../include/contact_widgets.php:9 ../../boot.php:986
+#: ../../include/contact_widgets.php:9 ../../boot.php:1025
 msgid "Connect"
 msgstr ""
 
@@ -1213,10 +1213,10 @@ msgstr ""
 msgid "Personal"
 msgstr ""
 
-#: ../../mod/notifications.php:90 ../../view/theme/diabook-red/theme.php:236
-#: ../../view/theme/diabook-blue/theme.php:236
-#: ../../view/theme/diabook/theme.php:244
-#: ../../view/theme/diabook-aerith/theme.php:236 ../../include/nav.php:77
+#: ../../mod/notifications.php:90 ../../view/theme/diabook-red/theme.php:240
+#: ../../view/theme/diabook-blue/theme.php:240
+#: ../../view/theme/diabook/theme.php:247
+#: ../../view/theme/diabook-aerith/theme.php:241 ../../include/nav.php:77
 #: ../../include/nav.php:115
 msgid "Home"
 msgstr ""
@@ -1594,10 +1594,10 @@ msgstr ""
 msgid "Edit contact"
 msgstr ""
 
-#: ../../mod/contacts.php:523 ../../view/theme/diabook-red/theme.php:238
-#: ../../view/theme/diabook-blue/theme.php:238
-#: ../../view/theme/diabook/theme.php:246
-#: ../../view/theme/diabook-aerith/theme.php:238 ../../include/nav.php:139
+#: ../../mod/contacts.php:523 ../../view/theme/diabook-red/theme.php:242
+#: ../../view/theme/diabook-blue/theme.php:242
+#: ../../view/theme/diabook/theme.php:249
+#: ../../view/theme/diabook-aerith/theme.php:243 ../../include/nav.php:139
 msgid "Contacts"
 msgstr ""
 
@@ -1630,8 +1630,9 @@ msgstr ""
 #: ../../mod/lostpass.php:45 ../../mod/lostpass.php:107
 #: ../../mod/register.php:392 ../../mod/register.php:446
 #: ../../mod/regmod.php:54 ../../mod/dfrn_confirm.php:732
-#: ../../addon/facebook/facebook.php:617
-#: ../../addon/facebook/facebook.php:1069 ../../include/items.php:2658
+#: ../../addon/facebook/facebook.php:621
+#: ../../addon/facebook/facebook.php:1073 ../../include/items.php:2658
+#: ../../boot.php:679
 msgid "Administrator"
 msgstr ""
 
@@ -1641,7 +1642,7 @@ msgid ""
 "Password reset failed."
 msgstr ""
 
-#: ../../mod/lostpass.php:83 ../../boot.php:779
+#: ../../mod/lostpass.php:83 ../../boot.php:808
 msgid "Password Reset"
 msgstr ""
 
@@ -1733,52 +1734,52 @@ msgstr ""
 msgid " Cannot change to that email."
 msgstr ""
 
-#: ../../mod/settings.php:420 ../../addon/facebook/facebook.php:445
-#: ../../addon/impressum/impressum.php:64
+#: ../../mod/settings.php:420 ../../addon/facebook/facebook.php:449
+#: ../../addon/impressum/impressum.php:75
 #: ../../addon/openstreetmap/openstreetmap.php:80
-#: ../../addon/piwik/piwik.php:105 ../../addon/twitter/twitter.php:364
+#: ../../addon/piwik/piwik.php:105 ../../addon/twitter/twitter.php:370
 msgid "Settings updated."
 msgstr ""
 
-#: ../../mod/settings.php:484 ../../view/theme/diabook-red/theme.php:284
-#: ../../view/theme/diabook-blue/theme.php:283
-#: ../../view/theme/diabook/theme.php:293
-#: ../../view/theme/diabook-aerith/theme.php:283 ../../include/nav.php:137
+#: ../../mod/settings.php:484 ../../view/theme/diabook-red/theme.php:288
+#: ../../view/theme/diabook-blue/theme.php:287
+#: ../../view/theme/diabook/theme.php:298
+#: ../../view/theme/diabook-aerith/theme.php:288 ../../include/nav.php:137
 msgid "Account settings"
 msgstr ""
 
-#: ../../mod/settings.php:489 ../../view/theme/diabook-red/theme.php:289
-#: ../../view/theme/diabook-blue/theme.php:288
-#: ../../view/theme/diabook/theme.php:298
-#: ../../view/theme/diabook-aerith/theme.php:288
+#: ../../mod/settings.php:489 ../../view/theme/diabook-red/theme.php:293
+#: ../../view/theme/diabook-blue/theme.php:292
+#: ../../view/theme/diabook/theme.php:303
+#: ../../view/theme/diabook-aerith/theme.php:293
 msgid "Display settings"
 msgstr ""
 
-#: ../../mod/settings.php:495 ../../view/theme/diabook-red/theme.php:298
-#: ../../view/theme/diabook-blue/theme.php:297
-#: ../../view/theme/diabook/theme.php:307
-#: ../../view/theme/diabook-aerith/theme.php:297
-msgid "Connector settings"
-msgstr ""
-
-#: ../../mod/settings.php:500 ../../view/theme/diabook-red/theme.php:303
-#: ../../view/theme/diabook-blue/theme.php:302
+#: ../../mod/settings.php:495 ../../view/theme/diabook-red/theme.php:302
+#: ../../view/theme/diabook-blue/theme.php:301
 #: ../../view/theme/diabook/theme.php:312
 #: ../../view/theme/diabook-aerith/theme.php:302
-msgid "Plugin settings"
+msgid "Connector settings"
 msgstr ""
 
-#: ../../mod/settings.php:505 ../../view/theme/diabook-red/theme.php:308
-#: ../../view/theme/diabook-blue/theme.php:307
+#: ../../mod/settings.php:500 ../../view/theme/diabook-red/theme.php:307
+#: ../../view/theme/diabook-blue/theme.php:306
 #: ../../view/theme/diabook/theme.php:317
 #: ../../view/theme/diabook-aerith/theme.php:307
-msgid "Connections"
+msgid "Plugin settings"
 msgstr ""
 
-#: ../../mod/settings.php:510 ../../view/theme/diabook-red/theme.php:313
-#: ../../view/theme/diabook-blue/theme.php:312
+#: ../../mod/settings.php:505 ../../view/theme/diabook-red/theme.php:312
+#: ../../view/theme/diabook-blue/theme.php:311
 #: ../../view/theme/diabook/theme.php:322
 #: ../../view/theme/diabook-aerith/theme.php:312
+msgid "Connections"
+msgstr ""
+
+#: ../../mod/settings.php:510 ../../view/theme/diabook-red/theme.php:317
+#: ../../view/theme/diabook-blue/theme.php:316
+#: ../../view/theme/diabook/theme.php:327
+#: ../../view/theme/diabook-aerith/theme.php:317
 msgid "Export personal data"
 msgstr ""
 
@@ -1788,12 +1789,12 @@ msgid "Add application"
 msgstr ""
 
 #: ../../mod/settings.php:532 ../../mod/settings.php:559
-#: ../../addon/statusnet/statusnet.php:541
+#: ../../addon/statusnet/statusnet.php:547
 msgid "Consumer Key"
 msgstr ""
 
 #: ../../mod/settings.php:533 ../../mod/settings.php:560
-#: ../../addon/statusnet/statusnet.php:540
+#: ../../addon/statusnet/statusnet.php:546
 msgid "Consumer Secret"
 msgstr ""
 
@@ -2258,12 +2259,12 @@ msgstr ""
 msgid "Invalid contact."
 msgstr ""
 
-#: ../../mod/notes.php:44 ../../boot.php:1426
+#: ../../mod/notes.php:44 ../../boot.php:1474
 msgid "Personal Notes"
 msgstr ""
 
 #: ../../mod/notes.php:63 ../../mod/filer.php:30
-#: ../../addon/facebook/facebook.php:673 ../../include/text.php:652
+#: ../../addon/facebook/facebook.php:677 ../../include/text.php:652
 msgid "Save"
 msgstr ""
 
@@ -2465,7 +2466,7 @@ msgstr ""
 msgid "Group name changed."
 msgstr ""
 
-#: ../../mod/group.php:72 ../../mod/profperm.php:19 ../../index.php:293
+#: ../../mod/group.php:72 ../../mod/profperm.php:19 ../../index.php:305
 msgid "Permission denied"
 msgstr ""
 
@@ -2505,12 +2506,12 @@ msgstr ""
 msgid "Profile Visibility Editor"
 msgstr ""
 
-#: ../../mod/profperm.php:103 ../../view/theme/diabook-red/theme.php:237
-#: ../../view/theme/diabook-blue/theme.php:237
-#: ../../view/theme/diabook/theme.php:245
-#: ../../view/theme/diabook-aerith/theme.php:237
+#: ../../mod/profperm.php:103 ../../view/theme/diabook-red/theme.php:241
+#: ../../view/theme/diabook-blue/theme.php:241
+#: ../../view/theme/diabook/theme.php:248
+#: ../../view/theme/diabook-aerith/theme.php:242
 #: ../../include/profile_advanced.php:7 ../../include/profile_advanced.php:76
-#: ../../include/nav.php:50 ../../boot.php:1408
+#: ../../include/nav.php:50 ../../boot.php:1456
 msgid "Profile"
 msgstr ""
 
@@ -2682,7 +2683,7 @@ msgstr ""
 msgid "Choose a nickname: "
 msgstr ""
 
-#: ../../mod/register.php:571 ../../include/nav.php:81 ../../boot.php:745
+#: ../../mod/register.php:571 ../../include/nav.php:81 ../../boot.php:774
 msgid "Register"
 msgstr ""
 
@@ -2691,28 +2692,28 @@ msgid "People Search"
 msgstr ""
 
 #: ../../mod/like.php:127 ../../mod/tagger.php:70
-#: ../../addon/facebook/facebook.php:1440
+#: ../../addon/facebook/facebook.php:1546
 #: ../../addon/communityhome/communityhome.php:158
 #: ../../addon/communityhome/communityhome.php:167
-#: ../../view/theme/diabook-red/theme.php:77
-#: ../../view/theme/diabook-red/theme.php:86
-#: ../../view/theme/diabook-blue/theme.php:77
-#: ../../view/theme/diabook-blue/theme.php:86
-#: ../../view/theme/diabook/theme.php:81 ../../view/theme/diabook/theme.php:90
-#: ../../view/theme/diabook-aerith/theme.php:77
-#: ../../view/theme/diabook-aerith/theme.php:86
+#: ../../view/theme/diabook-red/theme.php:81
+#: ../../view/theme/diabook-red/theme.php:90
+#: ../../view/theme/diabook-blue/theme.php:81
+#: ../../view/theme/diabook-blue/theme.php:90
+#: ../../view/theme/diabook/theme.php:84 ../../view/theme/diabook/theme.php:93
+#: ../../view/theme/diabook-aerith/theme.php:82
+#: ../../view/theme/diabook-aerith/theme.php:91
 #: ../../include/diaspora.php:1654 ../../include/conversation.php:48
 #: ../../include/conversation.php:57 ../../include/conversation.php:121
 #: ../../include/conversation.php:130
 msgid "status"
 msgstr ""
 
-#: ../../mod/like.php:144 ../../addon/facebook/facebook.php:1444
+#: ../../mod/like.php:144 ../../addon/facebook/facebook.php:1550
 #: ../../addon/communityhome/communityhome.php:172
-#: ../../view/theme/diabook-red/theme.php:91
-#: ../../view/theme/diabook-blue/theme.php:91
-#: ../../view/theme/diabook/theme.php:95
-#: ../../view/theme/diabook-aerith/theme.php:91
+#: ../../view/theme/diabook-red/theme.php:95
+#: ../../view/theme/diabook-blue/theme.php:95
+#: ../../view/theme/diabook/theme.php:98
+#: ../../view/theme/diabook-aerith/theme.php:96
 #: ../../include/diaspora.php:1670 ../../include/conversation.php:65
 #, php-format
 msgid "%1$s likes %2$s's %3$s"
@@ -2754,8 +2755,8 @@ msgstr ""
 msgid "Empty post discarded."
 msgstr ""
 
-#: ../../mod/item.php:373 ../../mod/wall_upload.php:81
-#: ../../mod/wall_upload.php:90 ../../mod/wall_upload.php:97
+#: ../../mod/item.php:373 ../../mod/wall_upload.php:85
+#: ../../mod/wall_upload.php:94 ../../mod/wall_upload.php:101
 #: ../../include/message.php:144
 msgid "Wall Photos"
 msgstr ""
@@ -2806,7 +2807,7 @@ msgstr ""
 msgid "Unable to process image"
 msgstr ""
 
-#: ../../mod/profile_photo.php:115 ../../mod/wall_upload.php:56
+#: ../../mod/profile_photo.php:115 ../../mod/wall_upload.php:60
 #, php-format
 msgid "Image exceeds size limit of %d"
 msgstr ""
@@ -3032,7 +3033,7 @@ msgstr ""
 msgid "Advanced"
 msgstr ""
 
-#: ../../mod/admin.php:365 ../../addon/statusnet/statusnet.php:538
+#: ../../mod/admin.php:365 ../../addon/statusnet/statusnet.php:544
 msgid "Site name"
 msgstr ""
 
@@ -3426,7 +3427,7 @@ msgstr ""
 msgid "FTP Password"
 msgstr ""
 
-#: ../../mod/profile.php:20 ../../boot.php:901
+#: ../../mod/profile.php:20 ../../boot.php:938
 msgid "Requested profile is not available."
 msgstr ""
 
@@ -3758,30 +3759,30 @@ msgstr ""
 msgid "Age: "
 msgstr ""
 
-#: ../../mod/profiles.php:476 ../../view/theme/diabook-red/theme.php:294
-#: ../../view/theme/diabook-blue/theme.php:293
-#: ../../view/theme/diabook/theme.php:303
-#: ../../view/theme/diabook-aerith/theme.php:293
+#: ../../mod/profiles.php:476 ../../view/theme/diabook-red/theme.php:298
+#: ../../view/theme/diabook-blue/theme.php:297
+#: ../../view/theme/diabook/theme.php:308
+#: ../../view/theme/diabook-aerith/theme.php:298
 msgid "Edit/Manage Profiles"
 msgstr ""
 
-#: ../../mod/profiles.php:477 ../../boot.php:1008
+#: ../../mod/profiles.php:477 ../../boot.php:1047
 msgid "Change profile photo"
 msgstr ""
 
-#: ../../mod/profiles.php:478 ../../boot.php:1009
+#: ../../mod/profiles.php:478 ../../boot.php:1048
 msgid "Create New Profile"
 msgstr ""
 
-#: ../../mod/profiles.php:489 ../../boot.php:1019
+#: ../../mod/profiles.php:489 ../../boot.php:1058
 msgid "Profile Image"
 msgstr ""
 
-#: ../../mod/profiles.php:491 ../../boot.php:1022
+#: ../../mod/profiles.php:491 ../../boot.php:1061
 msgid "visible to everybody"
 msgstr ""
 
-#: ../../mod/profiles.php:492 ../../boot.php:1023
+#: ../../mod/profiles.php:492 ../../boot.php:1062
 msgid "Edit visibility"
 msgstr ""
 
@@ -3833,10 +3834,10 @@ msgstr ""
 msgid "No entries."
 msgstr ""
 
-#: ../../mod/suggest.php:38 ../../view/theme/diabook-red/theme.php:146
-#: ../../view/theme/diabook-blue/theme.php:146
-#: ../../view/theme/diabook/theme.php:150
-#: ../../view/theme/diabook-aerith/theme.php:146
+#: ../../mod/suggest.php:38 ../../view/theme/diabook-red/theme.php:150
+#: ../../view/theme/diabook-blue/theme.php:150
+#: ../../view/theme/diabook/theme.php:153
+#: ../../view/theme/diabook-aerith/theme.php:151
 #: ../../include/contact_widgets.php:33
 msgid "Friend Suggestions"
 msgstr ""
@@ -3851,10 +3852,10 @@ msgstr ""
 msgid "Ignore/Hide"
 msgstr ""
 
-#: ../../mod/directory.php:47 ../../view/theme/diabook-red/theme.php:144
-#: ../../view/theme/diabook-blue/theme.php:144
-#: ../../view/theme/diabook/theme.php:148
-#: ../../view/theme/diabook-aerith/theme.php:144
+#: ../../mod/directory.php:47 ../../view/theme/diabook-red/theme.php:148
+#: ../../view/theme/diabook-blue/theme.php:148
+#: ../../view/theme/diabook/theme.php:151
+#: ../../view/theme/diabook-aerith/theme.php:149
 msgid "Global Directory"
 msgstr ""
 
@@ -4040,71 +4041,71 @@ msgstr ""
 msgid "Connection accepted at %s"
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:462
+#: ../../addon/facebook/facebook.php:466
 msgid "Facebook disabled"
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:467
+#: ../../addon/facebook/facebook.php:471
 msgid "Updating contacts"
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:488
+#: ../../addon/facebook/facebook.php:492
 msgid "Facebook API key is missing."
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:495
+#: ../../addon/facebook/facebook.php:499
 msgid "Facebook Connect"
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:501
+#: ../../addon/facebook/facebook.php:505
 msgid "Install Facebook connector for this account."
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:508
+#: ../../addon/facebook/facebook.php:512
 msgid "Remove Facebook connector"
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:513
+#: ../../addon/facebook/facebook.php:517
 msgid ""
 "Re-authenticate [This is necessary whenever your Facebook password is "
 "changed.]"
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:520
+#: ../../addon/facebook/facebook.php:524
 msgid "Post to Facebook by default"
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:524
+#: ../../addon/facebook/facebook.php:528
 msgid "Link all your Facebook friends and conversations on this website"
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:526
+#: ../../addon/facebook/facebook.php:530
 msgid ""
 "Facebook conversations consist of your <em>profile wall</em> and your friend "
 "<em>stream</em>."
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:527
+#: ../../addon/facebook/facebook.php:531
 msgid "On this website, your Facebook friend stream is only visible to you."
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:528
+#: ../../addon/facebook/facebook.php:532
 msgid ""
 "The following settings determine the privacy of your Facebook profile wall "
 "on this website."
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:532
+#: ../../addon/facebook/facebook.php:536
 msgid ""
 "On this website your Facebook profile wall conversations will only be "
 "visible to you"
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:537
+#: ../../addon/facebook/facebook.php:541
 msgid "Do not import your Facebook profile wall conversations"
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:539
+#: ../../addon/facebook/facebook.php:543
 msgid ""
 "If you choose to link conversations and leave both of these boxes unchecked, "
 "your Facebook profile wall will be merged with your profile wall on this "
@@ -4112,114 +4113,114 @@ msgid ""
 "who may see the conversations."
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:544
+#: ../../addon/facebook/facebook.php:548
 msgid "Comma separated applications to ignore"
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:615
+#: ../../addon/facebook/facebook.php:619
 msgid "Problems with Facebook Real-Time Updates"
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:639
+#: ../../addon/facebook/facebook.php:643
 #: ../../include/contact_selectors.php:81
 msgid "Facebook"
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:640
+#: ../../addon/facebook/facebook.php:644
 msgid "Facebook Connector Settings"
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:649
+#: ../../addon/facebook/facebook.php:653
 msgid "Facebook API Key"
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:658
+#: ../../addon/facebook/facebook.php:662
 msgid ""
 "Error: it appears that you have specified the App-ID and -Secret in your ."
 "htconfig.php file. As long as they are specified there, they cannot be set "
 "using this form.<br><br>"
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:663
+#: ../../addon/facebook/facebook.php:667
 msgid ""
 "Error: the given API Key seems to be incorrect (the application access token "
 "could not be retrieved)."
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:665
+#: ../../addon/facebook/facebook.php:669
 msgid "The given API Key seems to work correctly."
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:667
+#: ../../addon/facebook/facebook.php:671
 msgid ""
 "The correctness of the API Key could not be detected. Somthing strange's "
 "going on."
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:670
+#: ../../addon/facebook/facebook.php:674
 msgid "App-ID / API-Key"
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:671
+#: ../../addon/facebook/facebook.php:675
 msgid "Application secret"
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:672
+#: ../../addon/facebook/facebook.php:676
 #, php-format
 msgid "Polling Interval (min. %1$s minutes)"
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:676
+#: ../../addon/facebook/facebook.php:680
 msgid "Real-Time Updates"
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:680
+#: ../../addon/facebook/facebook.php:684
 msgid "Real-Time Updates are activated."
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:681
+#: ../../addon/facebook/facebook.php:685
 msgid "Deactivate Real-Time Updates"
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:683
+#: ../../addon/facebook/facebook.php:687
 msgid "Real-Time Updates not activated."
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:683
+#: ../../addon/facebook/facebook.php:687
 msgid "Activate Real-Time Updates"
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:697
+#: ../../addon/facebook/facebook.php:701
 msgid "The new values have been saved."
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:716
+#: ../../addon/facebook/facebook.php:720
 msgid "Post to Facebook"
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:808
+#: ../../addon/facebook/facebook.php:812
 msgid ""
 "Post to Facebook cancelled because of multi-network access permission "
 "conflict."
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:1026
+#: ../../addon/facebook/facebook.php:1030
 msgid "View on Friendica"
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:1051
+#: ../../addon/facebook/facebook.php:1055
 msgid "Facebook post failed. Queued for retry."
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:1087
+#: ../../addon/facebook/facebook.php:1091
 msgid "Your Facebook connection became invalid. Please Re-authenticate."
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:1088
+#: ../../addon/facebook/facebook.php:1092
 msgid "Facebook connection became invalid"
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:1089
+#: ../../addon/facebook/facebook.php:1093
 #, php-format
 msgid ""
 "Hi %1$s,\n"
@@ -4229,11 +4230,6 @@ msgid ""
 "connection again, you have to %3$sre-authenticate the Facebook-connector%4$s."
 msgstr ""
 
-#: ../../addon/facebook/facebook.php:1214
-#: ../../addon/facebook/facebook.php:1223 ../../include/bb2diaspora.php:102
-msgid "link"
-msgstr ""
-
 #: ../../addon/widgets/widget_like.php:58
 #, php-format
 msgid "%d person likes this"
@@ -4351,11 +4347,19 @@ msgstr ""
 msgid "Forums"
 msgstr ""
 
+#: ../../addon/planets/planets.php:172
+msgid "Planets Settings"
+msgstr ""
+
+#: ../../addon/planets/planets.php:174
+msgid "Enable Planets Plugin"
+msgstr ""
+
 #: ../../addon/communityhome/communityhome.php:28
 #: ../../addon/communityhome/communityhome.php:34
 #: ../../addon/communityhome/twillingham/communityhome.php:28
 #: ../../addon/communityhome/twillingham/communityhome.php:34
-#: ../../include/nav.php:64 ../../boot.php:766
+#: ../../include/nav.php:64 ../../boot.php:795
 msgid "Login"
 msgstr ""
 
@@ -4383,10 +4387,10 @@ msgid "Latest likes"
 msgstr ""
 
 #: ../../addon/communityhome/communityhome.php:155
-#: ../../view/theme/diabook-red/theme.php:74
-#: ../../view/theme/diabook-blue/theme.php:74
-#: ../../view/theme/diabook/theme.php:78
-#: ../../view/theme/diabook-aerith/theme.php:74 ../../include/text.php:1295
+#: ../../view/theme/diabook-red/theme.php:78
+#: ../../view/theme/diabook-blue/theme.php:78
+#: ../../view/theme/diabook/theme.php:81
+#: ../../view/theme/diabook-aerith/theme.php:79 ../../include/text.php:1295
 #: ../../include/conversation.php:45 ../../include/conversation.php:118
 msgid "event"
 msgstr ""
@@ -4538,7 +4542,7 @@ msgid "Post to Drupal by default"
 msgstr ""
 
 #: ../../addon/drpost/drpost.php:184 ../../addon/wppost/wppost.php:190
-#: ../../addon/posterous/posterous.php:173
+#: ../../addon/blogger/blogger.php:172 ../../addon/posterous/posterous.php:173
 msgid "Post from Friendica"
 msgstr ""
 
@@ -4594,41 +4598,69 @@ msgstr ""
 msgid "URL to embed:"
 msgstr ""
 
-#: ../../addon/impressum/impressum.php:25
+#: ../../addon/impressum/impressum.php:34
 msgid "Impressum"
 msgstr ""
 
-#: ../../addon/impressum/impressum.php:38
-#: ../../addon/impressum/impressum.php:40
-#: ../../addon/impressum/impressum.php:70
+#: ../../addon/impressum/impressum.php:47
+#: ../../addon/impressum/impressum.php:49
+#: ../../addon/impressum/impressum.php:81
 msgid "Site Owner"
 msgstr ""
 
-#: ../../addon/impressum/impressum.php:38
-#: ../../addon/impressum/impressum.php:74
+#: ../../addon/impressum/impressum.php:47
+#: ../../addon/impressum/impressum.php:85
 msgid "Email Address"
 msgstr ""
 
-#: ../../addon/impressum/impressum.php:43
-#: ../../addon/impressum/impressum.php:72
+#: ../../addon/impressum/impressum.php:52
+#: ../../addon/impressum/impressum.php:83
 msgid "Postal Address"
 msgstr ""
 
-#: ../../addon/impressum/impressum.php:49
+#: ../../addon/impressum/impressum.php:58
 msgid ""
 "The impressum addon needs to be configured!<br />Please add at least the "
 "<tt>owner</tt> variable to your config file. For other variables please "
 "refer to the README file of the addon."
 msgstr ""
 
-#: ../../addon/impressum/impressum.php:71
+#: ../../addon/impressum/impressum.php:81
+msgid "The page operators name."
+msgstr ""
+
+#: ../../addon/impressum/impressum.php:82
 msgid "Site Owners Profile"
 msgstr ""
 
-#: ../../addon/impressum/impressum.php:73
+#: ../../addon/impressum/impressum.php:82
+msgid "Profile address of the operator."
+msgstr ""
+
+#: ../../addon/impressum/impressum.php:83
+msgid "How to contact the operator via snail mail."
+msgstr ""
+
+#: ../../addon/impressum/impressum.php:84
 msgid "Notes"
 msgstr ""
 
+#: ../../addon/impressum/impressum.php:84
+msgid "Additional notes that are displayed beneath the contact information."
+msgstr ""
+
+#: ../../addon/impressum/impressum.php:85
+msgid "How to contact the operator via email. (will be displayed obfuscated)"
+msgstr ""
+
+#: ../../addon/impressum/impressum.php:86
+msgid "Footer note"
+msgstr ""
+
+#: ../../addon/impressum/impressum.php:86
+msgid "Text for the footer."
+msgstr ""
+
 #: ../../addon/buglink/buglink.php:15
 msgid "Report Bug"
 msgstr ""
@@ -4879,7 +4911,7 @@ msgstr ""
 msgid "Clear OAuth configuration"
 msgstr ""
 
-#: ../../addon/statusnet/statusnet.php:539
+#: ../../addon/statusnet/statusnet.php:545
 msgid "API URL"
 msgstr ""
 
@@ -4982,11 +5014,11 @@ msgstr ""
 msgid "Cutting posts after how much characters"
 msgstr ""
 
-#: ../../addon/showmore/showmore.php:64
+#: ../../addon/showmore/showmore.php:65
 msgid "Show More Settings saved."
 msgstr ""
 
-#: ../../addon/showmore/showmore.php:86 ../../include/conversation.php:466
+#: ../../addon/showmore/showmore.php:87 ../../include/conversation.php:466
 #: ../../boot.php:495
 msgid "show more"
 msgstr ""
@@ -5089,11 +5121,11 @@ msgstr ""
 msgid "Send #tag links to Twitter"
 msgstr ""
 
-#: ../../addon/twitter/twitter.php:371
+#: ../../addon/twitter/twitter.php:377
 msgid "Consumer key"
 msgstr ""
 
-#: ../../addon/twitter/twitter.php:372
+#: ../../addon/twitter/twitter.php:378
 msgid "Consumer secret"
 msgstr ""
 
@@ -5105,6 +5137,34 @@ msgstr ""
 msgid "Popular Channels"
 msgstr ""
 
+#: ../../addon/blogger/blogger.php:42
+msgid "Post to blogger"
+msgstr ""
+
+#: ../../addon/blogger/blogger.php:74
+msgid "Blogger Post Settings"
+msgstr ""
+
+#: ../../addon/blogger/blogger.php:76
+msgid "Enable Blogger Post Plugin"
+msgstr ""
+
+#: ../../addon/blogger/blogger.php:81
+msgid "Blogger username"
+msgstr ""
+
+#: ../../addon/blogger/blogger.php:86
+msgid "Blogger password"
+msgstr ""
+
+#: ../../addon/blogger/blogger.php:91
+msgid "Blogger API URL"
+msgstr ""
+
+#: ../../addon/blogger/blogger.php:96
+msgid "Post to Blogger by default"
+msgstr ""
+
 #: ../../addon/posterous/posterous.php:36
 msgid "Post to Posterous"
 msgstr ""
@@ -5129,159 +5189,159 @@ msgstr ""
 msgid "Post to Posterous by default"
 msgstr ""
 
-#: ../../view/theme/diabook-red/theme.php:23
-#: ../../view/theme/diabook-blue/theme.php:23
-#: ../../view/theme/diabook/theme.php:27
-#: ../../view/theme/dispy-dark/theme.php:116
-#: ../../view/theme/diabook-aerith/theme.php:23
+#: ../../view/theme/diabook-red/theme.php:27
+#: ../../view/theme/diabook-blue/theme.php:27
+#: ../../view/theme/diabook/theme.php:30
+#: ../../view/theme/dispy-dark/theme.php:120
+#: ../../view/theme/diabook-aerith/theme.php:28
 msgid "Last users"
 msgstr ""
 
-#: ../../view/theme/diabook-red/theme.php:52
-#: ../../view/theme/diabook-blue/theme.php:52
-#: ../../view/theme/diabook/theme.php:56
-#: ../../view/theme/diabook-aerith/theme.php:52
+#: ../../view/theme/diabook-red/theme.php:56
+#: ../../view/theme/diabook-blue/theme.php:56
+#: ../../view/theme/diabook/theme.php:59
+#: ../../view/theme/diabook-aerith/theme.php:57
 msgid "Last likes"
 msgstr ""
 
-#: ../../view/theme/diabook-red/theme.php:97
-#: ../../view/theme/diabook-blue/theme.php:97
-#: ../../view/theme/diabook/theme.php:101
-#: ../../view/theme/diabook-aerith/theme.php:97
+#: ../../view/theme/diabook-red/theme.php:101
+#: ../../view/theme/diabook-blue/theme.php:101
+#: ../../view/theme/diabook/theme.php:104
+#: ../../view/theme/diabook-aerith/theme.php:102
 msgid "Last photos"
 msgstr ""
 
-#: ../../view/theme/diabook-red/theme.php:142
-#: ../../view/theme/diabook-blue/theme.php:142
-#: ../../view/theme/diabook/theme.php:146
-#: ../../view/theme/diabook-aerith/theme.php:142
+#: ../../view/theme/diabook-red/theme.php:146
+#: ../../view/theme/diabook-blue/theme.php:146
+#: ../../view/theme/diabook/theme.php:149
+#: ../../view/theme/diabook-aerith/theme.php:147
 msgid "Find Friends"
 msgstr ""
 
-#: ../../view/theme/diabook-red/theme.php:143
-#: ../../view/theme/diabook-blue/theme.php:143
-#: ../../view/theme/diabook/theme.php:147
-#: ../../view/theme/diabook-aerith/theme.php:143
+#: ../../view/theme/diabook-red/theme.php:147
+#: ../../view/theme/diabook-blue/theme.php:147
+#: ../../view/theme/diabook/theme.php:150
+#: ../../view/theme/diabook-aerith/theme.php:148
 msgid "Local Directory"
 msgstr ""
 
-#: ../../view/theme/diabook-red/theme.php:145
-#: ../../view/theme/diabook-blue/theme.php:145
-#: ../../view/theme/diabook/theme.php:149
-#: ../../view/theme/diabook-aerith/theme.php:145
+#: ../../view/theme/diabook-red/theme.php:149
+#: ../../view/theme/diabook-blue/theme.php:149
+#: ../../view/theme/diabook/theme.php:152
+#: ../../view/theme/diabook-aerith/theme.php:150
 #: ../../include/contact_widgets.php:34
 msgid "Similar Interests"
 msgstr ""
 
-#: ../../view/theme/diabook-red/theme.php:147
-#: ../../view/theme/diabook-blue/theme.php:147
-#: ../../view/theme/diabook/theme.php:151
-#: ../../view/theme/diabook-aerith/theme.php:147
+#: ../../view/theme/diabook-red/theme.php:151
+#: ../../view/theme/diabook-blue/theme.php:151
+#: ../../view/theme/diabook/theme.php:154
+#: ../../view/theme/diabook-aerith/theme.php:152
 #: ../../include/contact_widgets.php:35
 msgid "Invite Friends"
 msgstr ""
 
-#: ../../view/theme/diabook-red/theme.php:162
-#: ../../view/theme/diabook-red/theme.php:243
-#: ../../view/theme/diabook-blue/theme.php:162
-#: ../../view/theme/diabook-blue/theme.php:243
-#: ../../view/theme/diabook/theme.php:167
-#: ../../view/theme/diabook/theme.php:251
-#: ../../view/theme/diabook-aerith/theme.php:162
-#: ../../view/theme/diabook-aerith/theme.php:243
+#: ../../view/theme/diabook-red/theme.php:166
+#: ../../view/theme/diabook-red/theme.php:247
+#: ../../view/theme/diabook-blue/theme.php:166
+#: ../../view/theme/diabook-blue/theme.php:247
+#: ../../view/theme/diabook/theme.php:170
+#: ../../view/theme/diabook/theme.php:254
+#: ../../view/theme/diabook-aerith/theme.php:167
+#: ../../view/theme/diabook-aerith/theme.php:248
 msgid "Community Pages"
 msgstr ""
 
-#: ../../view/theme/diabook-red/theme.php:195
-#: ../../view/theme/diabook-blue/theme.php:195
-#: ../../view/theme/diabook/theme.php:200
-#: ../../view/theme/diabook-aerith/theme.php:195
+#: ../../view/theme/diabook-red/theme.php:199
+#: ../../view/theme/diabook-blue/theme.php:199
+#: ../../view/theme/diabook/theme.php:203
+#: ../../view/theme/diabook-aerith/theme.php:200
 msgid "Help or @NewHere ?"
 msgstr ""
 
-#: ../../view/theme/diabook-red/theme.php:201
-#: ../../view/theme/diabook-blue/theme.php:201
-#: ../../view/theme/diabook/theme.php:206
-#: ../../view/theme/diabook-aerith/theme.php:201
+#: ../../view/theme/diabook-red/theme.php:205
+#: ../../view/theme/diabook-blue/theme.php:205
+#: ../../view/theme/diabook/theme.php:209
+#: ../../view/theme/diabook-aerith/theme.php:206
 msgid "Connect Services"
 msgstr ""
 
-#: ../../view/theme/diabook-red/theme.php:207
-#: ../../view/theme/diabook-blue/theme.php:207
-#: ../../view/theme/diabook/theme.php:212
-#: ../../view/theme/diabook-aerith/theme.php:207
+#: ../../view/theme/diabook-red/theme.php:211
+#: ../../view/theme/diabook-blue/theme.php:211
+#: ../../view/theme/diabook/theme.php:215
+#: ../../view/theme/diabook-aerith/theme.php:212
 msgid "PostIt to Friendica"
 msgstr ""
 
-#: ../../view/theme/diabook-red/theme.php:207
-#: ../../view/theme/diabook-blue/theme.php:207
-#: ../../view/theme/diabook/theme.php:212
-#: ../../view/theme/diabook-aerith/theme.php:207
+#: ../../view/theme/diabook-red/theme.php:211
+#: ../../view/theme/diabook-blue/theme.php:211
+#: ../../view/theme/diabook/theme.php:215
+#: ../../view/theme/diabook-aerith/theme.php:212
 msgid "Post to Friendica"
 msgstr ""
 
-#: ../../view/theme/diabook-red/theme.php:208
-#: ../../view/theme/diabook-blue/theme.php:208
-#: ../../view/theme/diabook/theme.php:213
-#: ../../view/theme/diabook-aerith/theme.php:208
+#: ../../view/theme/diabook-red/theme.php:212
+#: ../../view/theme/diabook-blue/theme.php:212
+#: ../../view/theme/diabook/theme.php:216
+#: ../../view/theme/diabook-aerith/theme.php:213
 msgid " from anywhere by bookmarking this Link."
 msgstr ""
 
-#: ../../view/theme/diabook-red/theme.php:236
-#: ../../view/theme/diabook-blue/theme.php:236
-#: ../../view/theme/diabook/theme.php:244
-#: ../../view/theme/diabook-aerith/theme.php:236 ../../include/nav.php:49
+#: ../../view/theme/diabook-red/theme.php:240
+#: ../../view/theme/diabook-blue/theme.php:240
+#: ../../view/theme/diabook/theme.php:247
+#: ../../view/theme/diabook-aerith/theme.php:241 ../../include/nav.php:49
 #: ../../include/nav.php:115
 msgid "Your posts and conversations"
 msgstr ""
 
-#: ../../view/theme/diabook-red/theme.php:237
-#: ../../view/theme/diabook-blue/theme.php:237
-#: ../../view/theme/diabook/theme.php:245
-#: ../../view/theme/diabook-aerith/theme.php:237 ../../include/nav.php:50
+#: ../../view/theme/diabook-red/theme.php:241
+#: ../../view/theme/diabook-blue/theme.php:241
+#: ../../view/theme/diabook/theme.php:248
+#: ../../view/theme/diabook-aerith/theme.php:242 ../../include/nav.php:50
 msgid "Your profile page"
 msgstr ""
 
-#: ../../view/theme/diabook-red/theme.php:238
-#: ../../view/theme/diabook-blue/theme.php:238
-#: ../../view/theme/diabook/theme.php:246
-#: ../../view/theme/diabook-aerith/theme.php:238
+#: ../../view/theme/diabook-red/theme.php:242
+#: ../../view/theme/diabook-blue/theme.php:242
+#: ../../view/theme/diabook/theme.php:249
+#: ../../view/theme/diabook-aerith/theme.php:243
 msgid "Your contacts"
 msgstr ""
 
-#: ../../view/theme/diabook-red/theme.php:239
-#: ../../view/theme/diabook-blue/theme.php:239
-#: ../../view/theme/diabook/theme.php:247
-#: ../../view/theme/diabook-aerith/theme.php:239 ../../include/nav.php:51
-#: ../../boot.php:1413
+#: ../../view/theme/diabook-red/theme.php:243
+#: ../../view/theme/diabook-blue/theme.php:243
+#: ../../view/theme/diabook/theme.php:250
+#: ../../view/theme/diabook-aerith/theme.php:244 ../../include/nav.php:51
+#: ../../boot.php:1461
 msgid "Photos"
 msgstr ""
 
-#: ../../view/theme/diabook-red/theme.php:239
-#: ../../view/theme/diabook-blue/theme.php:239
-#: ../../view/theme/diabook/theme.php:247
-#: ../../view/theme/diabook-aerith/theme.php:239 ../../include/nav.php:51
+#: ../../view/theme/diabook-red/theme.php:243
+#: ../../view/theme/diabook-blue/theme.php:243
+#: ../../view/theme/diabook/theme.php:250
+#: ../../view/theme/diabook-aerith/theme.php:244 ../../include/nav.php:51
 msgid "Your photos"
 msgstr ""
 
-#: ../../view/theme/diabook-red/theme.php:240
-#: ../../view/theme/diabook-blue/theme.php:240
-#: ../../view/theme/diabook/theme.php:248
-#: ../../view/theme/diabook-aerith/theme.php:240 ../../include/nav.php:52
+#: ../../view/theme/diabook-red/theme.php:244
+#: ../../view/theme/diabook-blue/theme.php:244
+#: ../../view/theme/diabook/theme.php:251
+#: ../../view/theme/diabook-aerith/theme.php:245 ../../include/nav.php:52
 msgid "Your events"
 msgstr ""
 
-#: ../../view/theme/diabook-red/theme.php:241
-#: ../../view/theme/diabook-blue/theme.php:241
-#: ../../view/theme/diabook/theme.php:249
-#: ../../view/theme/diabook-aerith/theme.php:241 ../../include/nav.php:53
+#: ../../view/theme/diabook-red/theme.php:245
+#: ../../view/theme/diabook-blue/theme.php:245
+#: ../../view/theme/diabook/theme.php:252
+#: ../../view/theme/diabook-aerith/theme.php:246 ../../include/nav.php:53
 msgid "Personal notes"
 msgstr ""
 
-#: ../../view/theme/diabook-red/theme.php:241
-#: ../../view/theme/diabook-blue/theme.php:241
-#: ../../view/theme/diabook/theme.php:249
-#: ../../view/theme/diabook-aerith/theme.php:241 ../../include/nav.php:53
+#: ../../view/theme/diabook-red/theme.php:245
+#: ../../view/theme/diabook-blue/theme.php:245
+#: ../../view/theme/diabook/theme.php:252
+#: ../../view/theme/diabook-aerith/theme.php:246 ../../include/nav.php:53
 msgid "Your personal photos"
 msgstr ""
 
@@ -5305,7 +5365,7 @@ msgstr ""
 msgid "Color scheme"
 msgstr ""
 
-#: ../../include/profile_advanced.php:17 ../../boot.php:1044
+#: ../../include/profile_advanced.php:17 ../../boot.php:1083
 msgid "Gender:"
 msgstr ""
 
@@ -5317,7 +5377,7 @@ msgstr ""
 msgid "j F"
 msgstr ""
 
-#: ../../include/profile_advanced.php:30 ../../include/datetime.php:438
+#: ../../include/profile_advanced.php:30 ../../include/datetime.php:448
 #: ../../include/items.php:1392
 msgid "Birthday:"
 msgstr ""
@@ -5326,11 +5386,11 @@ msgstr ""
 msgid "Age:"
 msgstr ""
 
-#: ../../include/profile_advanced.php:37 ../../boot.php:1047
+#: ../../include/profile_advanced.php:37 ../../boot.php:1086
 msgid "Status:"
 msgstr ""
 
-#: ../../include/profile_advanced.php:45 ../../boot.php:1049
+#: ../../include/profile_advanced.php:45 ../../boot.php:1088
 msgid "Homepage:"
 msgstr ""
 
@@ -5890,7 +5950,7 @@ msgstr ""
 msgid "Create a new group"
 msgstr ""
 
-#: ../../include/nav.php:46 ../../boot.php:765
+#: ../../include/nav.php:46 ../../boot.php:794
 msgid "Logout"
 msgstr ""
 
@@ -5898,7 +5958,7 @@ msgstr ""
 msgid "End this session"
 msgstr ""
 
-#: ../../include/nav.php:49 ../../boot.php:1403
+#: ../../include/nav.php:49 ../../boot.php:1451
 msgid "Status"
 msgstr ""
 
@@ -5978,11 +6038,11 @@ msgstr ""
 msgid "Manage other pages"
 msgstr ""
 
-#: ../../include/nav.php:138 ../../boot.php:1002
+#: ../../include/nav.php:138 ../../boot.php:1041
 msgid "Profiles"
 msgstr ""
 
-#: ../../include/nav.php:138 ../../boot.php:1002
+#: ../../include/nav.php:138 ../../boot.php:1041
 msgid "Manage/edit profiles"
 msgstr ""
 
@@ -6075,76 +6135,76 @@ msgstr ""
 msgid "Miscellaneous"
 msgstr ""
 
-#: ../../include/datetime.php:121 ../../include/datetime.php:253
+#: ../../include/datetime.php:131 ../../include/datetime.php:263
 msgid "year"
 msgstr ""
 
-#: ../../include/datetime.php:126 ../../include/datetime.php:254
+#: ../../include/datetime.php:136 ../../include/datetime.php:264
 msgid "month"
 msgstr ""
 
-#: ../../include/datetime.php:131 ../../include/datetime.php:256
+#: ../../include/datetime.php:141 ../../include/datetime.php:266
 msgid "day"
 msgstr ""
 
-#: ../../include/datetime.php:244
+#: ../../include/datetime.php:254
 msgid "never"
 msgstr ""
 
-#: ../../include/datetime.php:250
+#: ../../include/datetime.php:260
 msgid "less than a second ago"
 msgstr ""
 
-#: ../../include/datetime.php:253
+#: ../../include/datetime.php:263
 msgid "years"
 msgstr ""
 
-#: ../../include/datetime.php:254
+#: ../../include/datetime.php:264
 msgid "months"
 msgstr ""
 
-#: ../../include/datetime.php:255
+#: ../../include/datetime.php:265
 msgid "week"
 msgstr ""
 
-#: ../../include/datetime.php:255
+#: ../../include/datetime.php:265
 msgid "weeks"
 msgstr ""
 
-#: ../../include/datetime.php:256
+#: ../../include/datetime.php:266
 msgid "days"
 msgstr ""
 
-#: ../../include/datetime.php:257
+#: ../../include/datetime.php:267
 msgid "hour"
 msgstr ""
 
-#: ../../include/datetime.php:257
+#: ../../include/datetime.php:267
 msgid "hours"
 msgstr ""
 
-#: ../../include/datetime.php:258
+#: ../../include/datetime.php:268
 msgid "minute"
 msgstr ""
 
-#: ../../include/datetime.php:258
+#: ../../include/datetime.php:268
 msgid "minutes"
 msgstr ""
 
-#: ../../include/datetime.php:259
+#: ../../include/datetime.php:269
 msgid "second"
 msgstr ""
 
-#: ../../include/datetime.php:259
+#: ../../include/datetime.php:269
 msgid "seconds"
 msgstr ""
 
-#: ../../include/datetime.php:267
+#: ../../include/datetime.php:277
 #, php-format
 msgid "%1$d %2$s ago"
 msgstr ""
 
-#: ../../include/poller.php:533
+#: ../../include/poller.php:543
 msgid "From: "
 msgstr ""
 
@@ -6152,15 +6212,31 @@ msgstr ""
 msgid "$1 wrote:"
 msgstr ""
 
-#: ../../include/bbcode.php:237 ../../include/bbcode.php:303
+#: ../../include/bbcode.php:238 ../../include/bbcode.php:304
 msgid "Image/photo"
 msgstr ""
 
 #: ../../include/dba.php:41
+msgid "Server name of user name are missing. "
+msgstr ""
+
+#: ../../include/dba.php:50
 #, php-format
 msgid "Cannot locate DNS info for database server '%s'"
 msgstr ""
 
+#: ../../include/dba.php:84
+msgid "There is no db connection. "
+msgstr ""
+
+#: ../../include/dba.php:107 ../../include/dba.php:109
+msgid " results"
+msgstr ""
+
+#: ../../include/dba.php:113
+msgid "SQL returned "
+msgstr ""
+
 #: ../../include/message.php:15 ../../include/message.php:171
 msgid "[no subject]"
 msgstr ""
@@ -6378,6 +6454,10 @@ msgstr ""
 msgid "image/photo"
 msgstr ""
 
+#: ../../include/bb2diaspora.php:102
+msgid "link"
+msgstr ""
+
 #: ../../include/security.php:21
 msgid "Welcome "
 msgstr ""
@@ -6616,62 +6696,67 @@ msgstr ""
 msgid "show fewer"
 msgstr ""
 
-#: ../../boot.php:744
+#: ../../boot.php:676
+#, php-format
+msgid "Update Error at %s"
+msgstr ""
+
+#: ../../boot.php:773
 msgid "Create a New Account"
 msgstr ""
 
-#: ../../boot.php:768
+#: ../../boot.php:797
 msgid "Nickname or Email address: "
 msgstr ""
 
-#: ../../boot.php:769
+#: ../../boot.php:798
 msgid "Password: "
 msgstr ""
 
-#: ../../boot.php:772
+#: ../../boot.php:801
 msgid "Or login using OpenID: "
 msgstr ""
 
-#: ../../boot.php:778
+#: ../../boot.php:807
 msgid "Forgot your password?"
 msgstr ""
 
-#: ../../boot.php:935
+#: ../../boot.php:973
 msgid "Edit profile"
 msgstr ""
 
-#: ../../boot.php:994
+#: ../../boot.php:1033
 msgid "Message"
 msgstr ""
 
-#: ../../boot.php:1109 ../../boot.php:1180
+#: ../../boot.php:1149 ../../boot.php:1221
 msgid "g A l F d"
 msgstr ""
 
-#: ../../boot.php:1110 ../../boot.php:1181
+#: ../../boot.php:1150 ../../boot.php:1222
 msgid "F d"
 msgstr ""
 
-#: ../../boot.php:1135
+#: ../../boot.php:1175
 msgid "Birthday Reminders"
 msgstr ""
 
-#: ../../boot.php:1136
+#: ../../boot.php:1176
 msgid "Birthdays this week:"
 msgstr ""
 
-#: ../../boot.php:1159 ../../boot.php:1223
+#: ../../boot.php:1199 ../../boot.php:1264
 msgid "[today]"
 msgstr ""
 
-#: ../../boot.php:1204
+#: ../../boot.php:1245
 msgid "Event Reminders"
 msgstr ""
 
-#: ../../boot.php:1205
+#: ../../boot.php:1246
 msgid "Events this week:"
 msgstr ""
 
-#: ../../boot.php:1217
+#: ../../boot.php:1258
 msgid "[No description]"
 msgstr ""
index 01fe893c6551b8966294391da86340b4757bc1f9..ec144fbba505dafcecb2102abc20fd803a580e3b 100644 (file)
@@ -17,7 +17,6 @@
        
        {{ inc field_checkbox.tpl with $field=$no_multi_reg }}{{ endinc }}
        {{ inc field_checkbox.tpl with $field=$no_openid }}{{ endinc }}
-       {{ inc field_checkbox.tpl with $field=$no_gravatar }}{{ endinc }}
        {{ inc field_checkbox.tpl with $field=$no_regfullname }}{{ endinc }}
        
        <div class="submit"><input type="submit" name="page_site" value="$submit" /></div>
index a76293a687fe939f5e59b1808832dc44fe733164..9cfd8171087753c572af3c5644e39aa59bb577ff 100644 (file)
@@ -2,10 +2,9 @@
           src="$baseurl/library/tinymce/jscripts/tiny_mce/tiny_mce_src.js"></script>
           <script language="javascript" type="text/javascript">
 
-
 tinyMCE.init({
        theme : "advanced",
-       mode : "exact",
+       mode : "$editselect",
        elements: "contact-edit-info",
        plugins : "bbcode",
        theme_advanced_buttons1 : "bold,italic,underline,undo,redo,link,unlink,image,forecolor",
index 1036e7b7506ac3dc3d5c6832d1b3b63d8b0d461b..87994b980143b788ab2c1bf2c7eacb4aa74ba76f 100644 (file)
@@ -16,9 +16,9 @@ msgid ""
 msgstr ""
 "Project-Id-Version: friendica\n"
 "Report-Msgid-Bugs-To: http://bugs.friendica.com/\n"
-"POT-Creation-Date: 2012-04-05 10:00-0700\n"
-"PO-Revision-Date: 2012-04-06 10:40+0000\n"
-"Last-Translator: bavatar <tobias.diekershoff@gmx.net>\n"
+"POT-Creation-Date: 2012-04-06 10:00-0700\n"
+"PO-Revision-Date: 2012-04-08 23:57+0000\n"
+"Last-Translator: zottel <transifex@zottel.net>\n"
 "Language-Team: German (http://www.transifex.net/projects/p/friendica/language/de/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -216,7 +216,7 @@ msgstr "l, F j"
 msgid "Edit event"
 msgstr "Veranstaltung bearbeiten"
 
-#: ../../mod/events.php:272 ../../include/text.php:1050
+#: ../../mod/events.php:272 ../../include/text.php:1053
 msgid "link to source"
 msgstr "Link zum Originalbeitrag"
 
@@ -410,7 +410,7 @@ msgstr "wurde getaggt in einem"
 #: ../../view/theme/diabook-red/theme.php:82
 #: ../../view/theme/diabook-blue/theme.php:82
 #: ../../view/theme/diabook/theme.php:86
-#: ../../view/theme/diabook-aerith/theme.php:82 ../../include/text.php:1294
+#: ../../view/theme/diabook-aerith/theme.php:82 ../../include/text.php:1297
 #: ../../include/diaspora.php:1654 ../../include/conversation.php:53
 #: ../../include/conversation.php:126
 msgid "photo"
@@ -2234,7 +2234,7 @@ msgstr "Markierte"
 msgid "Shared Links"
 msgstr "Geteilte Links"
 
-#: ../../mod/network.php:270
+#: ../../mod/network.php:274
 #, php-format
 msgid "Warning: This group contains %s member from an insecure network."
 msgid_plural ""
@@ -2242,31 +2242,31 @@ msgid_plural ""
 msgstr[0] "Warnung: Diese Gruppe beinhaltet %s Person aus einem unsicheren Netzwerk."
 msgstr[1] "Warnung: Diese Gruppe beinhaltet %s Personen aus unsicheren Netzwerken."
 
-#: ../../mod/network.php:273
+#: ../../mod/network.php:277
 msgid "Private messages to this group are at risk of public disclosure."
 msgstr "Private Nachrichten an diese Gruppe könnten an die Ã–ffentlichkeit geraten."
 
-#: ../../mod/network.php:318
+#: ../../mod/network.php:322
 msgid "No such group"
 msgstr "Es gibt keine solche Gruppe"
 
-#: ../../mod/network.php:329
+#: ../../mod/network.php:333
 msgid "Group is empty"
 msgstr "Gruppe ist leer"
 
-#: ../../mod/network.php:333
+#: ../../mod/network.php:337
 msgid "Group: "
 msgstr "Gruppe: "
 
-#: ../../mod/network.php:343
+#: ../../mod/network.php:347
 msgid "Contact: "
 msgstr "Kontakt: "
 
-#: ../../mod/network.php:345
+#: ../../mod/network.php:349
 msgid "Private messages to this person are at risk of public disclosure."
 msgstr "Private Nachrichten an diese Person könnten an die Ã–ffentlichkeit gelangen."
 
-#: ../../mod/network.php:350
+#: ../../mod/network.php:354
 msgid "Invalid contact."
 msgstr "Ungültiger Kontakt."
 
@@ -2275,7 +2275,7 @@ msgid "Personal Notes"
 msgstr "Persönliche Notizen"
 
 #: ../../mod/notes.php:63 ../../mod/filer.php:30
-#: ../../addon/facebook/facebook.php:673 ../../include/text.php:649
+#: ../../addon/facebook/facebook.php:673 ../../include/text.php:652
 msgid "Save"
 msgstr "Speichern"
 
@@ -2538,7 +2538,7 @@ msgstr "Alle Kontakte (mit gesichertem Profilzugriff)"
 msgid "No contacts."
 msgstr "Keine Kontakte."
 
-#: ../../mod/viewcontacts.php:76 ../../include/text.php:586
+#: ../../mod/viewcontacts.php:76 ../../include/text.php:589
 msgid "View Contacts"
 msgstr "Kontakte anzeigen"
 
@@ -4161,7 +4161,7 @@ msgstr "Fehler: der angegebene API Schlüssel scheint nicht korrekt zu sein (Zug
 
 #: ../../addon/facebook/facebook.php:665
 msgid "The given API Key seems to work correctly."
-msgstr "Der angegebene API Schlüssel scheint nicht korrekt zu funktionieren."
+msgstr "Der angegebene API Schlüssel scheint korrekt zu funktionieren."
 
 #: ../../addon/facebook/facebook.php:667
 msgid ""
@@ -4397,7 +4397,7 @@ msgstr "Neueste Favoriten"
 #: ../../view/theme/diabook-red/theme.php:74
 #: ../../view/theme/diabook-blue/theme.php:74
 #: ../../view/theme/diabook/theme.php:78
-#: ../../view/theme/diabook-aerith/theme.php:74 ../../include/text.php:1292
+#: ../../view/theme/diabook-aerith/theme.php:74 ../../include/text.php:1295
 #: ../../include/conversation.php:45 ../../include/conversation.php:118
 msgid "event"
 msgstr "Veranstaltung"
@@ -5223,21 +5223,21 @@ msgstr "Verbinde Dienste"
 #: ../../view/theme/diabook/theme.php:212
 #: ../../view/theme/diabook-aerith/theme.php:207
 msgid "PostIt to Friendica"
-msgstr "PostIt nach Friendica"
+msgstr "Bei Friendica posten"
 
 #: ../../view/theme/diabook-red/theme.php:207
 #: ../../view/theme/diabook-blue/theme.php:207
 #: ../../view/theme/diabook/theme.php:212
 #: ../../view/theme/diabook-aerith/theme.php:207
 msgid "Post to Friendica"
-msgstr "Bei Friendica veröffentlichen"
+msgstr "Wenn du diesen Link"
 
 #: ../../view/theme/diabook-red/theme.php:208
 #: ../../view/theme/diabook-blue/theme.php:208
 #: ../../view/theme/diabook/theme.php:213
 #: ../../view/theme/diabook-aerith/theme.php:208
 msgid " from anywhere by bookmarking this Link."
-msgstr " von Ã¼berall her indem du diesen Link zu deinen Lesezeichen hinzufügst."
+msgstr "zu deinen Lesezeichen hinzufügst, kannst du von Ã¼berallher Links bei Friendica veröffentlichen."
 
 #: ../../view/theme/diabook-red/theme.php:236
 #: ../../view/theme/diabook-blue/theme.php:236
@@ -5695,158 +5695,158 @@ msgstr "(kein Betreff)"
 msgid "noreply"
 msgstr "noreply"
 
-#: ../../include/text.php:240
+#: ../../include/text.php:243
 msgid "prev"
 msgstr "vorige"
 
-#: ../../include/text.php:242
+#: ../../include/text.php:245
 msgid "first"
 msgstr "erste"
 
-#: ../../include/text.php:271
+#: ../../include/text.php:274
 msgid "last"
 msgstr "letzte"
 
-#: ../../include/text.php:274
+#: ../../include/text.php:277
 msgid "next"
 msgstr "nächste"
 
-#: ../../include/text.php:565
+#: ../../include/text.php:568
 msgid "No contacts"
 msgstr "Keine Kontakte"
 
-#: ../../include/text.php:574
+#: ../../include/text.php:577
 #, php-format
 msgid "%d Contact"
 msgid_plural "%d Contacts"
 msgstr[0] "%d Kontakt"
 msgstr[1] "%d Kontakte"
 
-#: ../../include/text.php:647 ../../include/nav.php:91
+#: ../../include/text.php:650 ../../include/nav.php:91
 msgid "Search"
 msgstr "Suche"
 
-#: ../../include/text.php:828
+#: ../../include/text.php:831
 msgid "Monday"
 msgstr "Montag"
 
-#: ../../include/text.php:828
+#: ../../include/text.php:831
 msgid "Tuesday"
 msgstr "Dienstag"
 
-#: ../../include/text.php:828
+#: ../../include/text.php:831
 msgid "Wednesday"
 msgstr "Mittwoch"
 
-#: ../../include/text.php:828
+#: ../../include/text.php:831
 msgid "Thursday"
 msgstr "Donnerstag"
 
-#: ../../include/text.php:828
+#: ../../include/text.php:831
 msgid "Friday"
 msgstr "Freitag"
 
-#: ../../include/text.php:828
+#: ../../include/text.php:831
 msgid "Saturday"
 msgstr "Samstag"
 
-#: ../../include/text.php:828
+#: ../../include/text.php:831
 msgid "Sunday"
 msgstr "Sonntag"
 
-#: ../../include/text.php:832
+#: ../../include/text.php:835
 msgid "January"
 msgstr "Januar"
 
-#: ../../include/text.php:832
+#: ../../include/text.php:835
 msgid "February"
 msgstr "Februar"
 
-#: ../../include/text.php:832
+#: ../../include/text.php:835
 msgid "March"
 msgstr "März"
 
-#: ../../include/text.php:832
+#: ../../include/text.php:835
 msgid "April"
 msgstr "April"
 
-#: ../../include/text.php:832
+#: ../../include/text.php:835
 msgid "May"
 msgstr "Mai"
 
-#: ../../include/text.php:832
+#: ../../include/text.php:835
 msgid "June"
 msgstr "Juni"
 
-#: ../../include/text.php:832
+#: ../../include/text.php:835
 msgid "July"
 msgstr "Juli"
 
-#: ../../include/text.php:832
+#: ../../include/text.php:835
 msgid "August"
 msgstr "August"
 
-#: ../../include/text.php:832
+#: ../../include/text.php:835
 msgid "September"
 msgstr "September"
 
-#: ../../include/text.php:832
+#: ../../include/text.php:835
 msgid "October"
 msgstr "Oktober"
 
-#: ../../include/text.php:832
+#: ../../include/text.php:835
 msgid "November"
 msgstr "November"
 
-#: ../../include/text.php:832
+#: ../../include/text.php:835
 msgid "December"
 msgstr "Dezember"
 
-#: ../../include/text.php:916
+#: ../../include/text.php:919
 msgid "bytes"
 msgstr "Byte"
 
-#: ../../include/text.php:933
+#: ../../include/text.php:936
 msgid "Categories:"
 msgstr "Kategorien:"
 
-#: ../../include/text.php:945
+#: ../../include/text.php:948
 msgid "remove"
 msgstr "löschen"
 
-#: ../../include/text.php:945
+#: ../../include/text.php:948
 msgid "[remove]"
 msgstr "[löschen]"
 
-#: ../../include/text.php:948
+#: ../../include/text.php:951
 msgid "Filed under:"
 msgstr "Abgelegt unter:"
 
-#: ../../include/text.php:964 ../../include/text.php:976
+#: ../../include/text.php:967 ../../include/text.php:979
 msgid "Click to open/close"
 msgstr "Zum Ã¶ffnen/schließen klicken"
 
-#: ../../include/text.php:1068
+#: ../../include/text.php:1071
 msgid "Select an alternate language"
 msgstr "Alternative Sprache auswählen"
 
-#: ../../include/text.php:1080
+#: ../../include/text.php:1083
 msgid "default"
 msgstr "standard"
 
-#: ../../include/text.php:1296
+#: ../../include/text.php:1299
 msgid "activity"
 msgstr "Aktivität"
 
-#: ../../include/text.php:1298
+#: ../../include/text.php:1301
 msgid "comment"
 msgstr "Kommentar"
 
-#: ../../include/text.php:1299
+#: ../../include/text.php:1302
 msgid "post"
 msgstr "Beitrag"
 
-#: ../../include/text.php:1454
+#: ../../include/text.php:1457
 msgid "Item filed"
 msgstr "Beitrag abgelegt"
 
@@ -6220,7 +6220,7 @@ msgstr "%s hat dir eine neue private Nachricht auf %s geschrieben."
 #: ../../include/enotify.php:42
 #, php-format
 msgid "%s sent you %s."
-msgstr "%s hat Dir geschickt %s"
+msgstr "%s hat Dir %s geschickt"
 
 #: ../../include/enotify.php:42
 msgid "a private message"
@@ -6316,7 +6316,7 @@ msgstr "%s markierte %s"
 
 #: ../../include/enotify.php:121
 msgid "your post"
-msgstr "Dein Beitrag"
+msgstr "Deinen Beitrag"
 
 #: ../../include/enotify.php:130
 msgid "[Friendica:Notify] Introduction received"
index 28567396bb8496da92b755abf009259d53c54ad6..a68a77a75c2e9faecd626da1d310ca369f73fd6b 100644 (file)
@@ -777,7 +777,7 @@ $a->strings["{0} tagged %s's post with #%s"] = "{0} hat %ss Beitrag mit dem Schl
 $a->strings["{0} mentioned you in a post"] = "{0} hat dich in einem Beitrag erwähnt";
 $a->strings["OpenID protocol error. No ID returned."] = "OpenID Protokollfehler. Keine ID zurückgegeben.";
 $a->strings["Account not found and OpenID registration is not permitted on this site."] = "Account wurde nicht gefunden und OpenID Registrierung auf diesem Server nicht gestattet.";
-$a->strings["Login failed."] = "Annmeldung fehlgeschlagen.";
+$a->strings["Login failed."] = "Anmeldung fehlgeschlagen.";
 $a->strings["Connect URL missing."] = "Connect-URL fehlt";
 $a->strings["This site is not configured to allow communications with other networks."] = "Diese Seite ist so konfiguriert, dass keine Kommunikation mit anderen Netzwerken erfolgen kann.";
 $a->strings["No compatible communication protocols or feeds were discovered."] = "Es wurden keine kompatiblen Kommunikationsprotokolle oder Feeds gefunden.";
@@ -924,7 +924,7 @@ $a->strings["Facebook Connector Settings"] = "Facebook-Verbindungseinstellungen"
 $a->strings["Facebook API Key"] = "Facebook API Schlüssel";
 $a->strings["Error: it appears that you have specified the App-ID and -Secret in your .htconfig.php file. As long as they are specified there, they cannot be set using this form.<br><br>"] = "Fehler: du scheinst die App-ID und das App-Geheimnis in deiner .htconfig.php Datei angegeben zu haben. Solange sie dort festgelegt werden kannst du dieses Formular hier nicht verwenden.<br><br>";
 $a->strings["Error: the given API Key seems to be incorrect (the application access token could not be retrieved)."] = "Fehler: der angegebene API Schlüssel scheint nicht korrekt zu sein (Zugriffstoken konnte nicht empfangen werden).";
-$a->strings["The given API Key seems to work correctly."] = "Der angegebene API Schlüssel scheint nicht korrekt zu funktionieren.";
+$a->strings["The given API Key seems to work correctly."] = "Der angegebene API Schlüssel scheint korrekt zu funktionieren.";
 $a->strings["The correctness of the API Key could not be detected. Somthing strange's going on."] = "Die Echtheit des API Schlüssels konnte nicht Ã¼berprüft werden. Etwas Merkwürdiges ist hier im Gange.";
 $a->strings["App-ID / API-Key"] = "App-ID / API-Key";
 $a->strings["Application secret"] = "Anwendungs-Geheimnis";
@@ -1159,9 +1159,9 @@ $a->strings["Invite Friends"] = "Freunde einladen";
 $a->strings["Community Pages"] = "Foren";
 $a->strings["Help or @NewHere ?"] = "Hilfe oder @NewHere";
 $a->strings["Connect Services"] = "Verbinde Dienste";
-$a->strings["PostIt to Friendica"] = "PostIt nach Friendica";
-$a->strings["Post to Friendica"] = "Bei Friendica veröffentlichen";
-$a->strings[" from anywhere by bookmarking this Link."] = " von Ã¼berall her indem du diesen Link zu deinen Lesezeichen hinzufügst.";
+$a->strings["PostIt to Friendica"] = "Bei Friendica posten";
+$a->strings["Post to Friendica"] = "Wenn du diesen Link";
+$a->strings[" from anywhere by bookmarking this Link."] = "zu deinen Lesezeichen hinzufügst, kannst du von Ã¼berallher Links bei Friendica veröffentlichen.";
 $a->strings["Your posts and conversations"] = "Deine Beiträge und Unterhaltungen";
 $a->strings["Your profile page"] = "Deine Profilseite";
 $a->strings["Your contacts"] = "Deine Kontakte";
@@ -1401,7 +1401,7 @@ $a->strings["%s Administrator"] = "der Administrator von %s";
 $a->strings["%s <!item_type!>"] = "%s <!item_type!>";
 $a->strings["[Friendica:Notify] New mail received at %s"] = "[Friendica Meldung] Neue Nachricht erhalten von %s";
 $a->strings["%s sent you a new private message at %s."] = "%s hat dir eine neue private Nachricht auf %s geschrieben.";
-$a->strings["%s sent you %s."] = "%s hat Dir geschickt %s";
+$a->strings["%s sent you %s."] = "%s hat Dir %s geschickt";
 $a->strings["a private message"] = "eine private Nachricht";
 $a->strings["Please visit %s to view and/or reply to your private messages."] = "Bitte besuche %s, um deine privaten Nachrichten anzusehen und/oder zu beantworten.";
 $a->strings["%s's"] = "%s's";
@@ -1421,7 +1421,7 @@ $a->strings["tagged you"] = "erwähnte Dich";
 $a->strings["[Friendica:Notify] %s tagged your post"] = "[Friendica Meldung] %s markierte Deinen Beitrag";
 $a->strings["%s tagged your post at %s"] = "%s hat deinen Beitrag auf %s getaggt";
 $a->strings["%s tagged %s"] = "%s markierte %s";
-$a->strings["your post"] = "Dein Beitrag";
+$a->strings["your post"] = "Deinen Beitrag";
 $a->strings["[Friendica:Notify] Introduction received"] = "[Friendica Meldung] Kontaktanfrage erhalten";
 $a->strings["You've received an introduction from '%s' at %s"] = "Du hast eine Kontaktanfrage von '%s' auf %s erhalten";
 $a->strings["You've received %s from %s."] = "Du hast %s von %s erhalten.";
@@ -1511,3 +1511,4 @@ $a->strings["[today]"] = "[heute]";
 $a->strings["Event Reminders"] = "Veranstaltungserinnerungen";
 $a->strings["Events this week:"] = "Veranstaltungen diese Woche";
 $a->strings["[No description]"] = "[keine Beschreibung]";
+$a->strings['Update Error at %s'] = 'Fehler beim Updaten von %s'; 
diff --git a/view/de/update_fail_eml.tpl b/view/de/update_fail_eml.tpl
new file mode 100644 (file)
index 0000000..26be178
--- /dev/null
@@ -0,0 +1,12 @@
+Hey, \r
+Ich bin's,  $sitename.   \r
+Die Friendica-Entwickler haben gerade Update $update freigegeben, \r
+aber als ich es installieren wollte, ist irgendetwas schief gegangen.  \r
+Das sollte schnell repariert werden und alleine schaffe ich es nicht. \r
+Wende dich bitte an einen Friendica-Entwickler, wenn du mir nicht selbst helfen kannst. \r
+Meine Datenbank könnte ziemlich durcheinander sein. \r
+\r
+Die Fehlermeldung ist '$error'.   \r
+\r
+Tut mir leid, \r
+dein Friendica Server unter $siteurl
\ No newline at end of file
index eeae2a29af4ceee4d62df5a7e7cb6e53bdcb212a..3c2692d25e7a1c03b3c241bed5ba40c1f63c1cc3 100644 (file)
@@ -6,6 +6,7 @@
        </form>
        <div class="side-link" id="side-match-link"><a href="match" >$similar</a></div>
        <div class="side-link" id="side-suggest-link"><a href="suggest" >$suggest</a></div>
+       <div class="side-link" id="side-random-profile-link" ><a href="randprof" target="extlink" >$random</a></div>
        {{ if $inv }} 
        <div class="side-link" id="side-invite-link" ><a href="invite" >$inv</a></div>
        {{ endif }}
index a3267d591678023dc4610623c80a4f1948aea79d..2477654b39fcd79ba79b49feac69c0691565bdab 100644 (file)
@@ -5,7 +5,7 @@
 
 tinyMCE.init({
        theme : "advanced",
-       mode : "textareas",
+       mode : "$editselect",
        plugins : "bbcode,paste",
        theme_advanced_buttons1 : "bold,italic,underline,undo,redo,link,unlink,image,forecolor,formatselect,code",
        theme_advanced_buttons2 : "",
index e5c7162d03946f723c8f0620df6bb21e89338692..2139fcf13cb140321df62e457282dfad859e91f9 100644 (file)
@@ -159,7 +159,7 @@ $sexual
 $lbl_about
 </p>
 
-<textarea rows="10" cols="72" id="profile-jot-text" name="about" >$about</textarea>
+<textarea rows="10" cols="72" id="profile-about-text" name="about" >$about</textarea>
 
 </div>
 <div id="about-jot-end"></div>
index 2d3e4fd56e266219c637a50296adf730a90dc6e0..6c1aa7f125296f4681f916b53d00eae270b0be3d 100644 (file)
@@ -11,6 +11,7 @@ $a->theme_info = array(
   'extends' => 'duepuntozero',
 );
 
+function darkzero_NS_init(&$a) {
 $a->page['htmlhead'] .= <<< EOT
 <script>
 $(document).ready(function() {
@@ -57,3 +58,4 @@ $('.savedsearchterm').hover(
 
 </script>
 EOT;
+}
\ No newline at end of file
index 8c4d3e9ac34f729a417ab0a81887d66e2d0f0a13..bbba3ef740ccea9dbe5aae46fb48b21e18d6d9ee 100644 (file)
@@ -12,6 +12,7 @@ $a->theme_info = array(
   'extends' => 'duepuntozero',
 );
 
+function darkzero_init(&$a) {
 $a->page['htmlhead'] .= <<< EOT
 <script>
 $(document).ready(function() {
@@ -58,3 +59,4 @@ $('.savedsearchterm').hover(
 
 </script>
 EOT;
+}
\ No newline at end of file
diff --git a/view/theme/diabook-aerith/comment_item.tpl b/view/theme/diabook-aerith/comment_item.tpl
new file mode 100644 (file)
index 0000000..6e455b7
--- /dev/null
@@ -0,0 +1,41 @@
+               <div class="comment-wwedit-wrapper" id="comment-edit-wrapper-$id" style="display: block;">
+                       <form class="comment-edit-form" id="comment-edit-form-$id" action="item" method="post" onsubmit="post_comment($id); return false;">
+                               <input type="hidden" name="type" value="$type" />
+                               <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" />
+                               <input type="hidden" name="preview" id="comment-preview-inp-$id" value="0" />
+
+                               <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>
+                               </div>
+                               <div class="comment-edit-photo-end"></div>
+                               <textarea id="comment-edit-text-$id" class="comment-edit-text-empty" name="body" onFocus="commentOpen(this,$id);" onBlur="commentClose(this,$id);" >$comment</textarea>
+                               <a class="icon bb-video" onclick="insertFormatting('video',$id);">video</a>                                                                                                     
+                               <a class="icon bb-image" onclick="insertFormatting('img',$id);">img</a> 
+                               <a class="icon bb-url" onclick="insertFormatting('url',$id);">url</a>   
+                               <a class="icon quote" onclick="insertFormatting('quote',$id);">quote</a>                                                                                
+                               <a class="icon italic" onclick="insertFormatting('i',$id);">i</a>
+                               <a class="icon underline" onclick="insertFormatting('u',$id);">u</a>
+                               <a class="icon bold" onclick="insertFormatting('b',$id);">b</a>
+                               {{ if $qcomment }}
+                                       <select id="qcomment-select-$id" name="qcomment-$id" class="qcomment" onchange="qCommentInsert(this,$id);" >
+                                       <option value=""></option>
+                               {{ for $qcomment as $qc }}
+                                       <option value="$qc">$qc</option>                                
+                               {{ endfor }}
+                                       </select>
+                               {{ endif }}
+
+                               <div class="comment-edit-text-end"></div>
+                               <div class="comment-edit-submit-wrapper" id="comment-edit-submit-wrapper-$id" style="display: none;" >
+                                       <input type="submit" onclick="post_comment($id); return false;" id="comment-edit-submit-$id" class="comment-edit-submit" name="submit" value="$submit" />
+                                       <span onclick="preview_comment($id);" id="comment-edit-preview-link-$id" class="fakelink">$preview</span>
+                                       <div id="comment-edit-preview-$id" class="comment-edit-preview" style="display:none;"></div>
+                               </div>
+
+                               <div class="comment-edit-end"></div>
+                       </form>
+
+               </div>
diff --git a/view/theme/diabook-aerith/icons/bb-image.png b/view/theme/diabook-aerith/icons/bb-image.png
new file mode 100644 (file)
index 0000000..9a1b321
Binary files /dev/null and b/view/theme/diabook-aerith/icons/bb-image.png differ
diff --git a/view/theme/diabook-aerith/icons/bb-url.png b/view/theme/diabook-aerith/icons/bb-url.png
new file mode 100644 (file)
index 0000000..071fc18
Binary files /dev/null and b/view/theme/diabook-aerith/icons/bb-url.png differ
diff --git a/view/theme/diabook-aerith/icons/bb-video.png b/view/theme/diabook-aerith/icons/bb-video.png
new file mode 100644 (file)
index 0000000..bd32353
Binary files /dev/null and b/view/theme/diabook-aerith/icons/bb-video.png differ
diff --git a/view/theme/diabook-aerith/icons/bold.png b/view/theme/diabook-aerith/icons/bold.png
new file mode 100644 (file)
index 0000000..8fab2a1
Binary files /dev/null and b/view/theme/diabook-aerith/icons/bold.png differ
index cd0e289a772f5a6f90f1774e7ee77d300b72976f..79f6d497cbe50e41faabac3748eb1e9e45a8e0af 100644 (file)
Binary files a/view/theme/diabook-aerith/icons/contacts.png and b/view/theme/diabook-aerith/icons/contacts.png differ
diff --git a/view/theme/diabook-aerith/icons/contacts3.png b/view/theme/diabook-aerith/icons/contacts3.png
new file mode 100644 (file)
index 0000000..cd0e289
Binary files /dev/null and b/view/theme/diabook-aerith/icons/contacts3.png differ
diff --git a/view/theme/diabook-aerith/icons/italic.png b/view/theme/diabook-aerith/icons/italic.png
new file mode 100644 (file)
index 0000000..bf4b2b8
Binary files /dev/null and b/view/theme/diabook-aerith/icons/italic.png differ
index e2bf7d24d3c0fcdd4d97d46731194b0e24a6918f..c83ba186ab4a05587a8300866ce68050aee44e1c 100755 (executable)
Binary files a/view/theme/diabook-aerith/icons/messages.png and b/view/theme/diabook-aerith/icons/messages.png differ
diff --git a/view/theme/diabook-aerith/icons/messages3.png b/view/theme/diabook-aerith/icons/messages3.png
new file mode 100755 (executable)
index 0000000..e2bf7d2
Binary files /dev/null and b/view/theme/diabook-aerith/icons/messages3.png differ
index 2b4fbb818783399ef1b7697045f41fe73544760b..2bcd749275c49029f3f5afa3115005645c322878 100755 (executable)
Binary files a/view/theme/diabook-aerith/icons/notifications.png and b/view/theme/diabook-aerith/icons/notifications.png differ
diff --git a/view/theme/diabook-aerith/icons/notifications3.png b/view/theme/diabook-aerith/icons/notifications3.png
new file mode 100755 (executable)
index 0000000..2b4fbb8
Binary files /dev/null and b/view/theme/diabook-aerith/icons/notifications3.png differ
index 9765bfd53ec06190f61bcc0a6904b3f6566233ed..159cd2c59fcbb2aec1ce104f6f29f8e59de76bd1 100755 (executable)
Binary files a/view/theme/diabook-aerith/icons/notify.png and b/view/theme/diabook-aerith/icons/notify.png differ
diff --git a/view/theme/diabook-aerith/icons/notify3.png b/view/theme/diabook-aerith/icons/notify3.png
new file mode 100755 (executable)
index 0000000..9765bfd
Binary files /dev/null and b/view/theme/diabook-aerith/icons/notify3.png differ
diff --git a/view/theme/diabook-aerith/icons/quote.png b/view/theme/diabook-aerith/icons/quote.png
new file mode 100644 (file)
index 0000000..a464f28
Binary files /dev/null and b/view/theme/diabook-aerith/icons/quote.png differ
diff --git a/view/theme/diabook-aerith/icons/underline.png b/view/theme/diabook-aerith/icons/underline.png
new file mode 100644 (file)
index 0000000..b1b4d35
Binary files /dev/null and b/view/theme/diabook-aerith/icons/underline.png differ
diff --git a/view/theme/diabook-aerith/oembed_video.tpl b/view/theme/diabook-aerith/oembed_video.tpl
new file mode 100644 (file)
index 0000000..d6d29f7
--- /dev/null
@@ -0,0 +1,4 @@
+<a class="embed_yt" href='$embedurl' onclick='this.innerHTML=Base64.decode("$escapedhtml"); yt_iframe(); return false;' style='float:left; margin: 1em; position: relative;'>
+       <img width='$tw' height='$th' src='$turl' >
+       <div style='position: absolute; top: 0px; left: 0px; width: $twpx; height: $thpx; background: url(images/icons/48/play.png) no-repeat center center;'></div>
+</a>
index 3b461e6db032c4f894c67b3da28be27e95068b9a..385b58ac4aa995a2de97ace8af29da0db4d4b35b 100644 (file)
@@ -1298,6 +1298,7 @@ transition: all 0.2s ease-in-out;
   padding: 5px;
   margin-bottom: 0px;
   width: 575px;
+  padding-top: 10px;
 }
 .tread-wrapper a{
   color: #3465A4;
@@ -1447,7 +1448,7 @@ transition: all 0.2s ease-in-out;
 }
 
 .wall-item-comment-wrapper {
-  margin: 1px 0px 0px 80px;
+  margin: 1px 5px 17px 80px;
   background-color: #fff;
   width: 500px;
 }
@@ -2173,7 +2174,7 @@ blockquote {
         color: #777;
 }
 .oembed {
-       font-size: large;
+       
        font-weight: bold;
 }
 .aprofile dt{
index 73f46e9ee46a0fcda457d6570f4b94c0d8576297..078b6d01f6bee300b28820e6f0b0fa8785d2471a 100644 (file)
@@ -1291,6 +1291,7 @@ transition: all 0.2s ease-in-out;
   padding: 5px;
   margin-bottom: 0px;
   width: 575px;
+  padding-top: 10px;
 }
 .tread-wrapper a{
   color: #3465A4;
@@ -1439,7 +1440,7 @@ transition: all 0.2s ease-in-out;
   padding-left: 12px;
 }
 .wall-item-comment-wrapper {
-  margin: 1px 5px 1px 80px;
+  margin: 1px 5px 17px 80px;
 }
 .wall-item-comment-wrapper .comment-edit-photo {
   display: none;
@@ -2162,7 +2163,7 @@ blockquote {
         color: #777;
 }
 .oembed {
-       font-size: large;
+       
        font-weight: bold;
 }
 .aprofile dt{
index f826521542b01aa92c791e0f311cb2ab69ca94e5..d1611d326166479ffa26ed4f9a646bc4c67fff25 100644 (file)
 #adminpage .selectall { text-align: right; }
 /* icons */
 
+.icon.bb-url{
+  background-image: url("../../../view/theme/diabook-aerith/icons/bb-url.png");
+  float: right;
+  margin-top: 2px;}
+.icon.quote{
+  background-image: url("../../../view/theme/diabook-aerith/icons/quote.png");
+  float: right;
+  margin-top: 2px;}
+.icon.bold{
+  background-image: url("../../../view/theme/diabook-aerith/icons/bold.png");
+  float: right;
+  margin-top: 2px;}
+.icon.underline{
+  background-image: url("../../../view/theme/diabook-aerith/icons/underline.png");
+  float: right;
+  margin-top: 2px;}
+.icon.italic{
+  background-image: url("../../../view/theme/diabook-aerith/icons/italic.png");
+  float: right;
+  margin-top: 2px;}
+.icon.bb-image{
+  background-image: url("../../../view/theme/diabook-aerith/icons/bb-image.png");
+  float: right;
+  margin-top: 2px;}
+.icon.bb-video{
+  background-image: url("../../../view/theme/diabook-aerith/icons/bb-video.png");
+  float: right;
+  margin-top: 2px;}
+  
 .icon.contacts {
   background-image: url("../../../view/theme/diabook-aerith/icons/contacts.png");}
 .icon.notifications {
@@ -1276,7 +1305,7 @@ body .pageheader{
   font-size: 20px;
   margin-bottom: 20px;
   margin-top: 0px;
-  max-width: 575px;
+  max-width: 775px;
        }
 .qcomment{
   max-width: 122px;    
@@ -1331,6 +1360,7 @@ body .pageheader{
   padding: 5px;
   margin-bottom: 0px;
   width: 775px;
+  padding-top: 10px;
 }
 .tread-wrapper a{
   color: #3465A4;
@@ -1592,7 +1622,7 @@ body .pageheader{
   padding-left: 12px;
 }
 .wall-item-comment-wrapper {
-  margin: 1px 5px 1px 80px;
+  margin: 1px 5px 17px 80px;
 }
 .wall-item-comment-wrapper .comment-edit-photo {
   display: none;
@@ -2324,7 +2354,7 @@ blockquote {
     color: #777;
 }
 .oembed {
-       font-size: large;
+       
        font-weight: bold;
 }
 .aprofile dt{
index a1ea51e82f8f6e5d7b8544234ddccc3fdecf7f0d..c0537b010ce0b5167039ed256c72cd50bd5325fa 100755 (executable)
@@ -3,13 +3,13 @@
 /*
  * Name: Diabook-aerith
  * Description: Diabook-aerith : report bugs and request here: http://pad.toktan.org/p/diabook or contact me : thomas_bierey@friendica.eu
- * Version: (Version: 1.014)
+ * Version: (Version: 1.016)
  * Author: 
  */
 
 
 //print diabook-version for debugging
-$diabook_version = "Diabook-aerith (Version: 1.014)";
+$diabook_version = "Diabook-aerith (Version: 1.016)";
 $a->page['htmlhead'] .= sprintf('<script "%s" ></script>', $diabook_version);
 
 
@@ -366,6 +366,35 @@ $a->page['htmlhead'] .= '
   
  </script>';
 
+$a->page['htmlhead'] .= '
+ <script>
+$(document).ready(function() {
+    $("iframe").each(function(){
+        var ifr_source = $(this).attr("src");
+        var wmode = "wmode=transparent";
+        if(ifr_source.indexOf("?") != -1) {
+            var getQString = ifr_source.split("?");
+            var oldString = getQString[1];
+            var newString = getQString[0];
+            $(this).attr("src",newString+"?"+wmode+"&"+oldString);
+        }
+        else $(this).attr("src",ifr_source+"?"+wmode);
+    });
+      
+
+});
+
+function yt_iframe() {
+       
+       $("iframe").load(function() { 
+       var ifr_src = $(this).contents().find("body iframe").attr("src");
+       $("iframe").contents().find("body iframe").attr("src", ifr_src+"&wmode=transparent");
+    });
+
+       };
+  
+ </script>';
 
 if ($a->argv[0].$a->argv[1] === "profile".$a->user['nickname'] or $a->argv[0] === "network" && local_user()){
 $a->page['htmlhead'] .= '
@@ -374,7 +403,12 @@ $a->page['htmlhead'] .= '
  $(function() {
        $(".oembed.photo img").aeImageResize({height: 400, width: 400});
   });
+</script>';
+
 
+       if($ccCookie != "8") {
+$a->page['htmlhead'] .= '
+<script>
 $("right_aside").ready(function(){
        
        if($.cookie("close_pages") == "1") 
@@ -458,9 +492,10 @@ function close_lastlikes(){
  document.getElementById( "close_lastlikes" ).style.display = "none";
  $.cookie("close_lastlikes","1", { expires: 365, path: "/" });
  };
+</script>';}
 
+$a->page['htmlhead'] .= ' 
+<script>
 function restore_boxes(){
        $.cookie("close_pages","2", { expires: 365, path: "/" });
        $.cookie("close_helpers","2", { expires: 365, path: "/" });
@@ -471,5 +506,38 @@ function restore_boxes(){
        $.cookie("close_lastphotos","2", { expires: 365, path: "/" });
        $.cookie("close_lastlikes","2", { expires: 365, path: "/" });
        alert("Right-hand column was restored. Please refresh your browser");
-  };
-</script>';}
\ No newline at end of file
+  }
+</script>';}
+
+$a->page['htmlhead'] .= ' 
+
+<script type="text/javascript">
+function insertFormatting(BBcode,id) {
+       
+               var tmpStr = $("#comment-edit-text-" + id).val();
+               if(tmpStr == "Kommentar") {
+                       tmpStr = "";
+                       $("#comment-edit-text-" + id).addClass("comment-edit-text-full");
+                       $("#comment-edit-text-" + id).removeClass("comment-edit-text-empty");
+                       openMenu("comment-edit-submit-wrapper-" + id);
+                                                                                       }
+
+       textarea = document.getElementById("comment-edit-text-" +id);
+       if (document.selection) {
+               textarea.focus();
+               selected = document.selection.createRange();
+               if (BBcode == "url"){
+                       selected.text = "["+BBcode+"]" + "http://" +  selected.text + "[/"+BBcode+"]";
+                       } else                  
+               selected.text = "["+BBcode+"]" + selected.text + "[/"+BBcode+"]";
+       } else if (textarea.selectionStart || textarea.selectionStart == "0") {
+               var start = textarea.selectionStart;
+               var end = textarea.selectionEnd;
+               if (BBcode == "url"){
+                       textarea.value = textarea.value.substring(0, start) + "["+BBcode+"]" + "http://" + textarea.value.substring(start, end) + "[/"+BBcode+"]" + textarea.value.substring(end, textarea.value.length);
+                       } else
+               textarea.value = textarea.value.substring(0, start) + "["+BBcode+"]" + textarea.value.substring(start, end) + "[/"+BBcode+"]" + textarea.value.substring(end, textarea.value.length);
+       }
+       return true;
+}
+</script> ';
\ No newline at end of file
diff --git a/view/theme/diabook-blue/comment_item.tpl b/view/theme/diabook-blue/comment_item.tpl
new file mode 100644 (file)
index 0000000..6e455b7
--- /dev/null
@@ -0,0 +1,41 @@
+               <div class="comment-wwedit-wrapper" id="comment-edit-wrapper-$id" style="display: block;">
+                       <form class="comment-edit-form" id="comment-edit-form-$id" action="item" method="post" onsubmit="post_comment($id); return false;">
+                               <input type="hidden" name="type" value="$type" />
+                               <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" />
+                               <input type="hidden" name="preview" id="comment-preview-inp-$id" value="0" />
+
+                               <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>
+                               </div>
+                               <div class="comment-edit-photo-end"></div>
+                               <textarea id="comment-edit-text-$id" class="comment-edit-text-empty" name="body" onFocus="commentOpen(this,$id);" onBlur="commentClose(this,$id);" >$comment</textarea>
+                               <a class="icon bb-video" onclick="insertFormatting('video',$id);">video</a>                                                                                                     
+                               <a class="icon bb-image" onclick="insertFormatting('img',$id);">img</a> 
+                               <a class="icon bb-url" onclick="insertFormatting('url',$id);">url</a>   
+                               <a class="icon quote" onclick="insertFormatting('quote',$id);">quote</a>                                                                                
+                               <a class="icon italic" onclick="insertFormatting('i',$id);">i</a>
+                               <a class="icon underline" onclick="insertFormatting('u',$id);">u</a>
+                               <a class="icon bold" onclick="insertFormatting('b',$id);">b</a>
+                               {{ if $qcomment }}
+                                       <select id="qcomment-select-$id" name="qcomment-$id" class="qcomment" onchange="qCommentInsert(this,$id);" >
+                                       <option value=""></option>
+                               {{ for $qcomment as $qc }}
+                                       <option value="$qc">$qc</option>                                
+                               {{ endfor }}
+                                       </select>
+                               {{ endif }}
+
+                               <div class="comment-edit-text-end"></div>
+                               <div class="comment-edit-submit-wrapper" id="comment-edit-submit-wrapper-$id" style="display: none;" >
+                                       <input type="submit" onclick="post_comment($id); return false;" id="comment-edit-submit-$id" class="comment-edit-submit" name="submit" value="$submit" />
+                                       <span onclick="preview_comment($id);" id="comment-edit-preview-link-$id" class="fakelink">$preview</span>
+                                       <div id="comment-edit-preview-$id" class="comment-edit-preview" style="display:none;"></div>
+                               </div>
+
+                               <div class="comment-edit-end"></div>
+                       </form>
+
+               </div>
diff --git a/view/theme/diabook-blue/icons/bb-image.png b/view/theme/diabook-blue/icons/bb-image.png
new file mode 100644 (file)
index 0000000..9a1b321
Binary files /dev/null and b/view/theme/diabook-blue/icons/bb-image.png differ
diff --git a/view/theme/diabook-blue/icons/bb-url.png b/view/theme/diabook-blue/icons/bb-url.png
new file mode 100644 (file)
index 0000000..071fc18
Binary files /dev/null and b/view/theme/diabook-blue/icons/bb-url.png differ
diff --git a/view/theme/diabook-blue/icons/bb-video.png b/view/theme/diabook-blue/icons/bb-video.png
new file mode 100644 (file)
index 0000000..bd32353
Binary files /dev/null and b/view/theme/diabook-blue/icons/bb-video.png differ
diff --git a/view/theme/diabook-blue/icons/bold.png b/view/theme/diabook-blue/icons/bold.png
new file mode 100644 (file)
index 0000000..8fab2a1
Binary files /dev/null and b/view/theme/diabook-blue/icons/bold.png differ
diff --git a/view/theme/diabook-blue/icons/italic.png b/view/theme/diabook-blue/icons/italic.png
new file mode 100644 (file)
index 0000000..bf4b2b8
Binary files /dev/null and b/view/theme/diabook-blue/icons/italic.png differ
diff --git a/view/theme/diabook-blue/icons/quote.png b/view/theme/diabook-blue/icons/quote.png
new file mode 100644 (file)
index 0000000..a464f28
Binary files /dev/null and b/view/theme/diabook-blue/icons/quote.png differ
diff --git a/view/theme/diabook-blue/icons/underline.png b/view/theme/diabook-blue/icons/underline.png
new file mode 100644 (file)
index 0000000..b1b4d35
Binary files /dev/null and b/view/theme/diabook-blue/icons/underline.png differ
diff --git a/view/theme/diabook-blue/oembed_video.tpl b/view/theme/diabook-blue/oembed_video.tpl
new file mode 100644 (file)
index 0000000..d6d29f7
--- /dev/null
@@ -0,0 +1,4 @@
+<a class="embed_yt" href='$embedurl' onclick='this.innerHTML=Base64.decode("$escapedhtml"); yt_iframe(); return false;' style='float:left; margin: 1em; position: relative;'>
+       <img width='$tw' height='$th' src='$turl' >
+       <div style='position: absolute; top: 0px; left: 0px; width: $twpx; height: $thpx; background: url(images/icons/48/play.png) no-repeat center center;'></div>
+</a>
index bd1cb249cfe182161e0ee23716a2f96126527c3f..b37d8296871c6a64b1e71ca02628547810cef5f8 100644 (file)
@@ -1260,6 +1260,7 @@ transition: all 0.2s ease-in-out;
   padding: 5px;
   margin-bottom: 0px;
   width: 575px;
+  padding-top: 10px;
 }
 .tread-wrapper a{
   color: #1872A2;
@@ -1409,7 +1410,7 @@ transition: all 0.2s ease-in-out;
 }
 
 .wall-item-comment-wrapper {
-  margin: 1px 0px 0px 80px;
+  margin: 1px 5px 17px 80px;
   background-color: #fff;
   width: 500px;
 }
@@ -2134,7 +2135,7 @@ blockquote {
         color: #777;
 }
 .oembed {
-       font-size: large;
+       
        font-weight: bold;
 }
 .aprofile dt{
index da826d74c97878763de7334a2818c380107bbbc7..ae7fa8d1484c064fb53f1aabb02038401429b08c 100644 (file)
@@ -1258,6 +1258,7 @@ transition: all 0.2s ease-in-out;
   padding: 5px;
   margin-bottom: 0px;
   width: 575px;
+  padding-top: 10px;
 }
 .tread-wrapper a{
   color: #1872A2;
@@ -1406,7 +1407,7 @@ transition: all 0.2s ease-in-out;
   padding-left: 12px;
 }
 .wall-item-comment-wrapper {
-  margin: 1px 5px 1px 80px;
+  margin: 1px 5px 17px 80px;
 }
 .wall-item-comment-wrapper .comment-edit-photo {
   display: none;
@@ -2129,7 +2130,7 @@ blockquote {
         color: #777;
 }
 .oembed {
-       font-size: large;
+       
        font-weight: bold;
 }
 .aprofile dt{
index ebf6847083a87b4c414fb9e96534457957170432..f4eebe07274ecaf1b2acb5a147356b6abcff78fd 100644 (file)
 #adminpage table tr:hover { background-color: #eeeeee; }
 #adminpage .selectall { text-align: right; }
 /* icons */
-
+.icon.bb-url{
+  background-image: url("../../../view/theme/diabook-blue/icons/bb-url.png");
+  float: right;
+  margin-top: 2px;}
+.icon.quote{
+  background-image: url("../../../view/theme/diabook-blue/icons/quote.png");
+  float: right;
+  margin-top: 2px;}
+.icon.bold{
+  background-image: url("../../../view/theme/diabook-blue/icons/bold.png");
+  float: right;
+  margin-top: 2px;}
+.icon.underline{
+  background-image: url("../../../view/theme/diabook-blue/icons/underline.png");
+  float: right;
+  margin-top: 2px;}
+.icon.italic{
+  background-image: url("../../../view/theme/diabook-blue/icons/italic.png");
+  float: right;
+  margin-top: 2px;}
+.icon.bb-image{
+  background-image: url("../../../view/theme/diabook-blue/icons/bb-image.png");
+  float: right;
+  margin-top: 2px;}
+.icon.bb-video{
+  background-image: url("../../../view/theme/diabook-blue/icons/bb-video.png");
+  float: right;
+  margin-top: 2px;}
+  
 .icon.contacts {
   background-image: url("../../../view/theme/diabook-blue/icons/contacts.png");}
 .icon.notifications {
@@ -1236,7 +1264,7 @@ body .pageheader{
   font-size: 20px;
   margin-bottom: 20px;
   margin-top: 0px;
-  max-width: 575px;
+  max-width: 775px;
        }
 .qcomment{
   max-width: 122px;    
@@ -1287,6 +1315,7 @@ body .pageheader{
   padding: 5px;
   margin-bottom: 0px;
   width: 775px;
+  padding-top: 10px;
 }
 .tread-wrapper a{
   color: #1872A2;
@@ -1550,7 +1579,7 @@ body .pageheader{
   padding-left: 12px;
 }
 .wall-item-comment-wrapper {
-  margin: 1px 5px 1px 80px;
+  margin: 1px 5px 17px 80px;
 }
 .wall-item-comment-wrapper .comment-edit-photo {
   display: none;
@@ -2281,7 +2310,7 @@ blockquote {
         color: #777;
 }
 .oembed {
-       font-size: large;
+       
        font-weight: bold;
 }
 .aprofile dt{
index a8b4fcd6c9bee376dba115e7a0c88aa2b93c60fe..435ecaf92613f7d34e72f4e3471c3a0ffce2578f 100755 (executable)
@@ -3,13 +3,13 @@
 /*
  * Name: Diabook-blue
  * Description: Diabook-blue: report bugs and request here: http://pad.toktan.org/p/diabook or contact me : thomas_bierey@friendica.eu
- * Version: (Version: 1.014)
+ * Version: (Version: 1.016)
  * Author: 
  */
 
 
 //print diabook-version for debugging
-$diabook_version = "Diabook-blue (Version: 1.014)";
+$diabook_version = "Diabook-blue (Version: 1.016)";
 $a->page['htmlhead'] .= sprintf('<script "%s" ></script>', $diabook_version);
 
 //change css on network and profilepages
@@ -366,15 +366,50 @@ $a->page['htmlhead'] .= '
   
  </script>';
 
+$a->page['htmlhead'] .= '
+ <script>
+$(document).ready(function() {
+    $("iframe").each(function(){
+        var ifr_source = $(this).attr("src");
+        var wmode = "wmode=transparent";
+        if(ifr_source.indexOf("?") != -1) {
+            var getQString = ifr_source.split("?");
+            var oldString = getQString[1];
+            var newString = getQString[0];
+            $(this).attr("src",newString+"?"+wmode+"&"+oldString);
+        }
+        else $(this).attr("src",ifr_source+"?"+wmode);
+    });
+      
+
+});
+
+function yt_iframe() {
+       
+       $("iframe").load(function() { 
+       var ifr_src = $(this).contents().find("body iframe").attr("src");
+       $("iframe").contents().find("body iframe").attr("src", ifr_src+"&wmode=transparent");
+    });
+
+       };
+  
+ </script>';
+
 
 if ($a->argv[0].$a->argv[1] === "profile".$a->user['nickname'] or $a->argv[0] === "network" && local_user()){
 $a->page['htmlhead'] .= '
 <script>
 
-$(function() {
+ $(function() {
        $(".oembed.photo img").aeImageResize({height: 400, width: 400});
   });
+</script>';
 
+
+       if($ccCookie != "8") {
+$a->page['htmlhead'] .= '
+<script>
 $("right_aside").ready(function(){
        
        if($.cookie("close_pages") == "1") 
@@ -458,9 +493,10 @@ function close_lastlikes(){
  document.getElementById( "close_lastlikes" ).style.display = "none";
  $.cookie("close_lastlikes","1", { expires: 365, path: "/" });
  };
+</script>';}
 
+$a->page['htmlhead'] .= ' 
+<script>
 function restore_boxes(){
        $.cookie("close_pages","2", { expires: 365, path: "/" });
        $.cookie("close_helpers","2", { expires: 365, path: "/" });
@@ -471,5 +507,38 @@ function restore_boxes(){
        $.cookie("close_lastphotos","2", { expires: 365, path: "/" });
        $.cookie("close_lastlikes","2", { expires: 365, path: "/" });
        alert("Right-hand column was restored. Please refresh your browser");
-  };
+  }
 </script>';}
+
+$a->page['htmlhead'] .= ' 
+
+<script type="text/javascript">
+function insertFormatting(BBcode,id) {
+       
+               var tmpStr = $("#comment-edit-text-" + id).val();
+               if(tmpStr == "Kommentar") {
+                       tmpStr = "";
+                       $("#comment-edit-text-" + id).addClass("comment-edit-text-full");
+                       $("#comment-edit-text-" + id).removeClass("comment-edit-text-empty");
+                       openMenu("comment-edit-submit-wrapper-" + id);
+                                                                                       }
+
+       textarea = document.getElementById("comment-edit-text-" +id);
+       if (document.selection) {
+               textarea.focus();
+               selected = document.selection.createRange();
+               if (BBcode == "url"){
+                       selected.text = "["+BBcode+"]" + "http://" +  selected.text + "[/"+BBcode+"]";
+                       } else                  
+               selected.text = "["+BBcode+"]" + selected.text + "[/"+BBcode+"]";
+       } else if (textarea.selectionStart || textarea.selectionStart == "0") {
+               var start = textarea.selectionStart;
+               var end = textarea.selectionEnd;
+               if (BBcode == "url"){
+                       textarea.value = textarea.value.substring(0, start) + "["+BBcode+"]" + "http://" + textarea.value.substring(start, end) + "[/"+BBcode+"]" + textarea.value.substring(end, textarea.value.length);
+                       } else
+               textarea.value = textarea.value.substring(0, start) + "["+BBcode+"]" + textarea.value.substring(start, end) + "[/"+BBcode+"]" + textarea.value.substring(end, textarea.value.length);
+       }
+       return true;
+}
+</script> ';
diff --git a/view/theme/diabook-red/comment_item.tpl b/view/theme/diabook-red/comment_item.tpl
new file mode 100644 (file)
index 0000000..64e4fb8
--- /dev/null
@@ -0,0 +1,41 @@
+               <div class="comment-wwedit-wrapper" id="comment-edit-wrapper-$id" style="display: block;">
+                       <form class="comment-edit-form" id="comment-edit-form-$id" action="item" method="post" onsubmit="post_comment($id); return false;">
+                               <input type="hidden" name="type" value="$type" />
+                               <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" />
+                               <input type="hidden" name="preview" id="comment-preview-inp-$id" value="0" />
+
+                               <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>
+                               </div>
+                               <div class="comment-edit-photo-end"></div>
+                               <textarea id="comment-edit-text-$id" class="comment-edit-text-empty" name="body" onFocus="commentOpen(this,$id);" onBlur="commentClose(this,$id);" >$comment</textarea>
+                               <a class="icon bb-video" onclick="insertFormatting('video',$id);">video</a>                                                                                                     
+                               <a class="icon bb-image" onclick="insertFormatting('img',$id);">img</a>
+                               <a class="icon bb-url" onclick="insertFormatting('url',$id);">url</a>   
+                               <a class="icon quote" onclick="insertFormatting('quote',$id);">quote</a>                                                                                        
+                               <a class="icon italic" onclick="insertFormatting('i',$id);">i</a>
+                               <a class="icon underline" onclick="insertFormatting('u',$id);">u</a>
+                               <a class="icon bold" onclick="insertFormatting('b',$id);">b</a>
+                               {{ if $qcomment }}
+                                       <select id="qcomment-select-$id" name="qcomment-$id" class="qcomment" onchange="qCommentInsert(this,$id);" >
+                                       <option value=""></option>
+                               {{ for $qcomment as $qc }}
+                                       <option value="$qc">$qc</option>                                
+                               {{ endfor }}
+                                       </select>
+                               {{ endif }}
+
+                               <div class="comment-edit-text-end"></div>
+                               <div class="comment-edit-submit-wrapper" id="comment-edit-submit-wrapper-$id" style="display: none;" >
+                                       <input type="submit" onclick="post_comment($id); return false;" id="comment-edit-submit-$id" class="comment-edit-submit" name="submit" value="$submit" />
+                                       <span onclick="preview_comment($id);" id="comment-edit-preview-link-$id" class="fakelink">$preview</span>
+                                       <div id="comment-edit-preview-$id" class="comment-edit-preview" style="display:none;"></div>
+                               </div>
+
+                               <div class="comment-edit-end"></div>
+                       </form>
+
+               </div>
diff --git a/view/theme/diabook-red/icons/bb-image.png b/view/theme/diabook-red/icons/bb-image.png
new file mode 100644 (file)
index 0000000..9a1b321
Binary files /dev/null and b/view/theme/diabook-red/icons/bb-image.png differ
diff --git a/view/theme/diabook-red/icons/bb-url.png b/view/theme/diabook-red/icons/bb-url.png
new file mode 100644 (file)
index 0000000..071fc18
Binary files /dev/null and b/view/theme/diabook-red/icons/bb-url.png differ
diff --git a/view/theme/diabook-red/icons/bb-video.png b/view/theme/diabook-red/icons/bb-video.png
new file mode 100644 (file)
index 0000000..bd32353
Binary files /dev/null and b/view/theme/diabook-red/icons/bb-video.png differ
diff --git a/view/theme/diabook-red/icons/bold.png b/view/theme/diabook-red/icons/bold.png
new file mode 100644 (file)
index 0000000..8fab2a1
Binary files /dev/null and b/view/theme/diabook-red/icons/bold.png differ
diff --git a/view/theme/diabook-red/icons/italic.png b/view/theme/diabook-red/icons/italic.png
new file mode 100644 (file)
index 0000000..bf4b2b8
Binary files /dev/null and b/view/theme/diabook-red/icons/italic.png differ
diff --git a/view/theme/diabook-red/icons/quote.png b/view/theme/diabook-red/icons/quote.png
new file mode 100644 (file)
index 0000000..a464f28
Binary files /dev/null and b/view/theme/diabook-red/icons/quote.png differ
diff --git a/view/theme/diabook-red/icons/underline.png b/view/theme/diabook-red/icons/underline.png
new file mode 100644 (file)
index 0000000..b1b4d35
Binary files /dev/null and b/view/theme/diabook-red/icons/underline.png differ
diff --git a/view/theme/diabook-red/oembed_video.tpl b/view/theme/diabook-red/oembed_video.tpl
new file mode 100644 (file)
index 0000000..d6d29f7
--- /dev/null
@@ -0,0 +1,4 @@
+<a class="embed_yt" href='$embedurl' onclick='this.innerHTML=Base64.decode("$escapedhtml"); yt_iframe(); return false;' style='float:left; margin: 1em; position: relative;'>
+       <img width='$tw' height='$th' src='$turl' >
+       <div style='position: absolute; top: 0px; left: 0px; width: $twpx; height: $thpx; background: url(images/icons/48/play.png) no-repeat center center;'></div>
+</a>
index efbec090a7840123ceab2029cffcd9e2581f8bf6..8be39e3740048d10a8d698a72d3b349e592a3c5c 100644 (file)
@@ -1295,6 +1295,7 @@ transition: all 0.2s ease-in-out;
   padding: 5px;
   margin-bottom: 0px;
   width: 575px;
+  padding-top: 10px;
 }
 .tread-wrapper a{
   color: red;
@@ -1444,7 +1445,7 @@ transition: all 0.2s ease-in-out;
 }
 
 .wall-item-comment-wrapper {
-  margin: 1px 0px 0px 80px;
+  margin: 1px 5px 17px 80px;
   background-color: #fff;
   width: 500px;
 }
@@ -2171,7 +2172,7 @@ blockquote {
         color: #777;
 }
 .oembed {
-       font-size: large;
+       
        font-weight: bold;
 }
 .aprofile dt{
index ef6fd860162e5d87a515d268b8ff76290159c1fc..242c08c680fa1d00ce77a97cdd35008f9d22a807 100644 (file)
@@ -1271,6 +1271,7 @@ transition: all 0.2s ease-in-out;
   padding: 5px;
   margin-bottom: 0px;
   width: 575px;
+  padding-top: 10px;
 }
 .tread-wrapper a{
   color: red;
@@ -1419,7 +1420,7 @@ transition: all 0.2s ease-in-out;
   padding-left: 12px;
 }
 .wall-item-comment-wrapper {
-  margin: 1px 5px 1px 80px;
+  margin: 1px 5px 17px 80px;
 }
 .wall-item-comment-wrapper .comment-edit-photo {
   display: none;
@@ -2143,7 +2144,7 @@ blockquote {
         color: #777;
 }
 .oembed {
-       font-size: large;
+       
        font-weight: bold;
 }
 .aprofile dt{
index ef06ef5ca695514f170c5b6b87b2e35a2f002bed..0acc12dd38e34749b3097740a786ded754dd794d 100644 (file)
 #adminpage table tr:hover { background-color: #eeeeee; }
 #adminpage .selectall { text-align: right; }
 /* icons */
-
+.icon.bb-url{
+  background-image: url("../../../view/theme/diabook-red/icons/bb-url.png");
+  float: right;
+  margin-top: 2px;}
+.icon.quote{
+  background-image: url("../../../view/theme/diabook-red/icons/quote.png");
+  float: right;
+  margin-top: 2px;}
+.icon.bold{
+  background-image: url("../../../view/theme/diabook-red/icons/bold.png");
+  float: right;
+  margin-top: 2px;}
+.icon.underline{
+  background-image: url("../../../view/theme/diabook-red/icons/underline.png");
+  float: right;
+  margin-top: 2px;}
+.icon.italic{
+  background-image: url("../../../view/theme/diabook-red/icons/italic.png");
+  float: right;
+  margin-top: 2px;}
+.icon.bb-image{
+  background-image: url("../../../view/theme/diabook-red/icons/bb-image.png");
+  float: right;
+  margin-top: 2px;}
+.icon.bb-video{
+  background-image: url("../../../view/theme/diabook-red/icons/bb-video.png");
+  float: right;
+  margin-top: 2px;}
+  
 .icon.contacts {
   background-image: url("../../../view/theme/diabook-red/icons/contacts.png");}
 .icon.notifications {
@@ -1266,7 +1294,7 @@ body .pageheader{
   font-size: 20px;
   margin-bottom: 20px;
   margin-top: 0px;
-  max-width: 575px;
+  max-width: 775px;
        }
 .qcomment{
   max-width: 122px;    
@@ -1317,6 +1345,7 @@ body .pageheader{
   padding: 5px;
   margin-bottom: 0px;
   width: 775px;
+  padding-top: 10px;
 }
 .tread-wrapper a{
   color: red;
@@ -1579,7 +1608,7 @@ body .pageheader{
   padding-left: 12px;
 }
 .wall-item-comment-wrapper {
-  margin: 1px 5px 1px 80px;
+  margin: 1px 5px 17px 80px;
 }
 .wall-item-comment-wrapper .comment-edit-photo {
   display: none;
@@ -2310,7 +2339,7 @@ blockquote {
         color: #777;
 }
 .oembed {
-       font-size: large;
+       
        font-weight: bold;
 }
 .aprofile dt{
index fae26ae7014e03cf63c6d218b39dd60f7c42c2cc..d1b932f1cda0a76e33488d6963f27341c5a51ff8 100755 (executable)
@@ -3,13 +3,13 @@
 /*
  * Name: Diabook-red
  * Description: Diabook-red: report bugs and request here: http://pad.toktan.org/p/diabook or contact me : thomas_bierey@friendica.eu
- * Version: (Version: 1.014)
+ * Version: (Version: 1.016)
  * Author: 
  */
 
 
 //print diabook-version for debugging
-$diabook_version = "Diabook-red (Version: 1.014)";
+$diabook_version = "Diabook-red (Version: 1.016)";
 $a->page['htmlhead'] .= sprintf('<script "%s" ></script>', $diabook_version);
 
 //change css on network and profilepages
@@ -367,15 +367,50 @@ $a->page['htmlhead'] .= '
   
  </script>';
 
+$a->page['htmlhead'] .= '
+ <script>
+$(document).ready(function() {
+    $("iframe").each(function(){
+        var ifr_source = $(this).attr("src");
+        var wmode = "wmode=transparent";
+        if(ifr_source.indexOf("?") != -1) {
+            var getQString = ifr_source.split("?");
+            var oldString = getQString[1];
+            var newString = getQString[0];
+            $(this).attr("src",newString+"?"+wmode+"&"+oldString);
+        }
+        else $(this).attr("src",ifr_source+"?"+wmode);
+    });
+      
+
+});
+
+function yt_iframe() {
+       
+       $("iframe").load(function() { 
+       var ifr_src = $(this).contents().find("body iframe").attr("src");
+       $("iframe").contents().find("body iframe").attr("src", ifr_src+"&wmode=transparent");
+    });
+
+       };
+  
+ </script>';
+
 
 if ($a->argv[0].$a->argv[1] === "profile".$a->user['nickname'] or $a->argv[0] === "network" && local_user()){
 $a->page['htmlhead'] .= '
 <script>
 
-$(function() {
+ $(function() {
        $(".oembed.photo img").aeImageResize({height: 400, width: 400});
   });
+</script>';
 
+
+       if($ccCookie != "8") {
+$a->page['htmlhead'] .= '
+<script>
 $("right_aside").ready(function(){
        
        if($.cookie("close_pages") == "1") 
@@ -459,9 +494,10 @@ function close_lastlikes(){
  document.getElementById( "close_lastlikes" ).style.display = "none";
  $.cookie("close_lastlikes","1", { expires: 365, path: "/" });
  };
+</script>';}
 
+$a->page['htmlhead'] .= ' 
+<script>
 function restore_boxes(){
        $.cookie("close_pages","2", { expires: 365, path: "/" });
        $.cookie("close_helpers","2", { expires: 365, path: "/" });
@@ -472,5 +508,38 @@ function restore_boxes(){
        $.cookie("close_lastphotos","2", { expires: 365, path: "/" });
        $.cookie("close_lastlikes","2", { expires: 365, path: "/" });
        alert("Right-hand column was restored. Please refresh your browser");
-  };
+  }
 </script>';}
+
+$a->page['htmlhead'] .= ' 
+
+<script type="text/javascript">
+function insertFormatting(BBcode,id) {
+       
+               var tmpStr = $("#comment-edit-text-" + id).val();
+               if(tmpStr == "Kommentar") {
+                       tmpStr = "";
+                       $("#comment-edit-text-" + id).addClass("comment-edit-text-full");
+                       $("#comment-edit-text-" + id).removeClass("comment-edit-text-empty");
+                       openMenu("comment-edit-submit-wrapper-" + id);
+                                                                                       }
+
+       textarea = document.getElementById("comment-edit-text-" +id);
+       if (document.selection) {
+               textarea.focus();
+               selected = document.selection.createRange();
+               if (BBcode == "url"){
+                       selected.text = "["+BBcode+"]" + "http://" +  selected.text + "[/"+BBcode+"]";
+                       } else                  
+               selected.text = "["+BBcode+"]" + selected.text + "[/"+BBcode+"]";
+       } else if (textarea.selectionStart || textarea.selectionStart == "0") {
+               var start = textarea.selectionStart;
+               var end = textarea.selectionEnd;
+               if (BBcode == "url"){
+                       textarea.value = textarea.value.substring(0, start) + "["+BBcode+"]" + "http://" + textarea.value.substring(start, end) + "[/"+BBcode+"]" + textarea.value.substring(end, textarea.value.length);
+                       } else
+               textarea.value = textarea.value.substring(0, start) + "["+BBcode+"]" + textarea.value.substring(start, end) + "[/"+BBcode+"]" + textarea.value.substring(end, textarea.value.length);
+       }
+       return true;
+}
+</script> ';
\ No newline at end of file
diff --git a/view/theme/diabook/comment_item.tpl b/view/theme/diabook/comment_item.tpl
new file mode 100644 (file)
index 0000000..5351342
--- /dev/null
@@ -0,0 +1,41 @@
+               <div class="comment-wwedit-wrapper" id="comment-edit-wrapper-$id" style="display: block;">
+                       <form class="comment-edit-form" id="comment-edit-form-$id" action="item" method="post" onsubmit="post_comment($id); return false;">
+                               <input type="hidden" name="type" value="$type" />
+                               <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" />
+                               <input type="hidden" name="preview" id="comment-preview-inp-$id" value="0" />
+
+                               <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>
+                               </div>
+                               <div class="comment-edit-photo-end"></div>
+                               <textarea id="comment-edit-text-$id" class="comment-edit-text-empty" name="body" onFocus="commentOpen(this,$id);" onBlur="commentClose(this,$id);" >$comment</textarea>
+                               <a class="icon bb-video" onclick="insertFormatting('video',$id);">video</a>                                                                                                     
+                               <a class="icon bb-image" onclick="insertFormatting('img',$id);">img</a> 
+                               <a class="icon bb-url" onclick="insertFormatting('url',$id);">url</a>   
+                               <a class="icon quote" onclick="insertFormatting('quote',$id);">quote</a>                                                                                                                                                        
+                               <a class="icon italic" onclick="insertFormatting('i',$id);">i</a>
+                               <a class="icon underline" onclick="insertFormatting('u',$id);">u</a>
+                               <a class="icon bold" onclick="insertFormatting('b',$id);">b</a>
+                               {{ if $qcomment }}
+                                       <select id="qcomment-select-$id" name="qcomment-$id" class="qcomment" onchange="qCommentInsert(this,$id);" >
+                                       <option value=""></option>
+                               {{ for $qcomment as $qc }}
+                                       <option value="$qc">$qc</option>                                
+                               {{ endfor }}
+                                       </select>
+                               {{ endif }}
+
+                               <div class="comment-edit-text-end"></div>
+                               <div class="comment-edit-submit-wrapper" id="comment-edit-submit-wrapper-$id" style="display: none;" >
+                                       <input type="submit" onclick="post_comment($id); return false;" id="comment-edit-submit-$id" class="comment-edit-submit" name="submit" value="$submit" />
+                                       <span onclick="preview_comment($id);" id="comment-edit-preview-link-$id" class="fakelink">$preview</span>
+                                       <div id="comment-edit-preview-$id" class="comment-edit-preview" style="display:none;"></div>
+                               </div>
+
+                               <div class="comment-edit-end"></div>
+                       </form>
+
+               </div>
diff --git a/view/theme/diabook/icons/bb-image.png b/view/theme/diabook/icons/bb-image.png
new file mode 100644 (file)
index 0000000..9a1b321
Binary files /dev/null and b/view/theme/diabook/icons/bb-image.png differ
diff --git a/view/theme/diabook/icons/bb-url.png b/view/theme/diabook/icons/bb-url.png
new file mode 100644 (file)
index 0000000..071fc18
Binary files /dev/null and b/view/theme/diabook/icons/bb-url.png differ
diff --git a/view/theme/diabook/icons/bb-video.png b/view/theme/diabook/icons/bb-video.png
new file mode 100644 (file)
index 0000000..bd32353
Binary files /dev/null and b/view/theme/diabook/icons/bb-video.png differ
diff --git a/view/theme/diabook/icons/bold.png b/view/theme/diabook/icons/bold.png
new file mode 100644 (file)
index 0000000..8fab2a1
Binary files /dev/null and b/view/theme/diabook/icons/bold.png differ
index 8a3e69ec1f55d283e7e352b723e0b3ca66877b0e..1fb6d695b34d9ec545058dc305c825bf0bcc8d81 100644 (file)
Binary files a/view/theme/diabook/icons/contacts.png and b/view/theme/diabook/icons/contacts.png differ
diff --git a/view/theme/diabook/icons/contacts3.png b/view/theme/diabook/icons/contacts3.png
new file mode 100644 (file)
index 0000000..8a3e69e
Binary files /dev/null and b/view/theme/diabook/icons/contacts3.png differ
diff --git a/view/theme/diabook/icons/italic.png b/view/theme/diabook/icons/italic.png
new file mode 100644 (file)
index 0000000..bf4b2b8
Binary files /dev/null and b/view/theme/diabook/icons/italic.png differ
old mode 100755 (executable)
new mode 100644 (file)
index 38e11ef..ab7b0f4
Binary files a/view/theme/diabook/icons/messages.png and b/view/theme/diabook/icons/messages.png differ
diff --git a/view/theme/diabook/icons/messages3.png b/view/theme/diabook/icons/messages3.png
new file mode 100644 (file)
index 0000000..4f3ce36
Binary files /dev/null and b/view/theme/diabook/icons/messages3.png differ
index 2709977406afc940f8e7a3376db1c6828aa2b151..347f1519ef4c227164f487a3ac7066c64d891e8a 100755 (executable)
Binary files a/view/theme/diabook/icons/notifications.png and b/view/theme/diabook/icons/notifications.png differ
diff --git a/view/theme/diabook/icons/notifications3.png b/view/theme/diabook/icons/notifications3.png
new file mode 100755 (executable)
index 0000000..2c9c791
Binary files /dev/null and b/view/theme/diabook/icons/notifications3.png differ
index 9b852d05b2007ecb7508f9de807f8b5be8a9412c..355abb1ebb4bb76790a1f4fc056a2bc2f64906b5 100755 (executable)
Binary files a/view/theme/diabook/icons/notify.png and b/view/theme/diabook/icons/notify.png differ
diff --git a/view/theme/diabook/icons/notify3.png b/view/theme/diabook/icons/notify3.png
new file mode 100755 (executable)
index 0000000..9b852d0
Binary files /dev/null and b/view/theme/diabook/icons/notify3.png differ
diff --git a/view/theme/diabook/icons/quote.png b/view/theme/diabook/icons/quote.png
new file mode 100644 (file)
index 0000000..a464f28
Binary files /dev/null and b/view/theme/diabook/icons/quote.png differ
diff --git a/view/theme/diabook/icons/underline.png b/view/theme/diabook/icons/underline.png
new file mode 100644 (file)
index 0000000..b1b4d35
Binary files /dev/null and b/view/theme/diabook/icons/underline.png differ
index 026007271687b79a39ad70a4754f7a3e25549aae..d6d29f724498a1699761772bddf75a06db43d056 100644 (file)
@@ -1,4 +1,4 @@
-<a class="embed_yt" href='$embedurl' onclick='this.innerHTML=Base64.decode("$escapedhtml"); return false;' style='float:left; margin: 1em; position: relative;'>
+<a class="embed_yt" href='$embedurl' onclick='this.innerHTML=Base64.decode("$escapedhtml"); yt_iframe(); return false;' style='float:left; margin: 1em; position: relative;'>
        <img width='$tw' height='$th' src='$turl' >
        <div style='position: absolute; top: 0px; left: 0px; width: $twpx; height: $thpx; background: url(images/icons/48/play.png) no-repeat center center;'></div>
 </a>
index af6e4027a17e7c206e29edda17fd1dec3b0c7508..ed7c76cbe9db99cb6cbbd70d418c82163ccd1d07 100644 (file)
@@ -1241,6 +1241,7 @@ transition: all 0.2s ease-in-out;
   padding: 5px;
   margin-bottom: 0px;
   width: 575px;
+  padding-top: 10px;
 }
 .wall-item-decor {
   position: absolute;
@@ -1385,7 +1386,7 @@ transition: all 0.2s ease-in-out;
   padding-left: 12px;
 }
 .wall-item-comment-wrapper {
-  margin: 1px 5px 1px 80px;
+  margin: 1px 5px 17px 80px;
 }
 .wall-item-comment-wrapper .comment-edit-photo {
   display: none;
@@ -2103,7 +2104,6 @@ blockquote {
     color: #777;
 }
 .oembed {
-       font-size: large;
        font-weight: bold;
 }
 .aprofile dt{
@@ -2549,4 +2549,4 @@ list-style-type: disc;
 #photos-upload-newalbum-div {
         float: left;
         width: 175px;
-}
+}
\ No newline at end of file
index 6b05903d3827c9350bca5f98b46c5d4a7ff89ee6..51eb612533586813aacb7ed44601a906a457fcb4 100644 (file)
@@ -1235,6 +1235,7 @@ transition: all 0.2s ease-in-out;
   padding: 5px;
   margin-bottom: 0px;
   width: 575px;
+  padding-top: 10px;
 }
 .wall-item-decor {
   position: absolute;
@@ -1379,7 +1380,7 @@ transition: all 0.2s ease-in-out;
   padding-left: 12px;
 }
 .wall-item-comment-wrapper {
-  margin: 1px 5px 1px 80px;
+  margin: 1px 5px 17px 80px;
 }
 .wall-item-comment-wrapper .comment-edit-photo {
   display: none;
@@ -2100,7 +2101,6 @@ blockquote {
     color: #777;
 }
 .oembed {
-       font-size: large;
        font-weight: bold;
 }
 .aprofile dt{
@@ -2546,4 +2546,4 @@ list-style-type: disc;
 #photos-upload-newalbum-div {
         float: left;
         width: 175px;
-}
+}
\ No newline at end of file
index 60e2f336b2644815d8d3f5f8d2d80b0b770a9e0b..fdb4f24c74c44e131a3d68a1e21e3e7a6479442a 100644 (file)
@@ -2526,4 +2526,4 @@ list-style-type: disc;
 #photos-upload-newalbum-div {
         float: left;
         width: 175px;
-}
+}
\ No newline at end of file
index e99aa564460d845a9cf7003e6275fddc1d6af261..7105ad0e37ce7690d44077bb23a9fb870ce072b2 100644 (file)
 #adminpage .selectall { text-align: right; }
 /* icons */
 
+.icon.bb-url{
+  background-image: url("../../../view/theme/diabook/icons/bb-url.png");
+  float: right;
+  margin-top: 2px;}
+.icon.quote{
+  background-image: url("../../../view/theme/diabook/icons/quote.png");
+  float: right;
+  margin-top: 2px;}
+.icon.bold{
+  background-image: url("../../../view/theme/diabook/icons/bold.png");
+  float: right;
+  margin-top: 2px;}
+.icon.underline{
+  background-image: url("../../../view/theme/diabook/icons/underline.png");
+  float: right;
+  margin-top: 2px;}
+.icon.italic{
+  background-image: url("../../../view/theme/diabook/icons/italic.png");
+  float: right;
+  margin-top: 2px;}
+.icon.bb-image{
+  background-image: url("../../../view/theme/diabook/icons/bb-image.png");
+  float: right;
+  margin-top: 2px;}
+.icon.bb-video{
+  background-image: url("../../../view/theme/diabook/icons/bb-video.png");
+  float: right;
+  margin-top: 2px;}
+  
 .icon.contacts {
   background-image: url("../../../view/theme/diabook/icons/contacts.png");}
 .icon.notifications {
@@ -1219,7 +1248,7 @@ body .pageheader{
   font-size: 20px;
   margin-bottom: 20px;
   margin-top: 0px;
-  max-width: 575px;
+  max-width: 775px;
        }
 .qcomment{
   max-width: 122px;    
@@ -1269,6 +1298,7 @@ body .pageheader{
   padding: 5px;
   margin-bottom: 0px;
   width: 775px;
+  padding-top: 10px;
 }
 
 .wall-item-decor {
@@ -1516,7 +1546,7 @@ body .pageheader{
   padding-left: 12px;
 }
 .wall-item-comment-wrapper {
-  margin: 1px 5px 1px 80px;
+  margin: 1px 5px 17px 80px;
 }
 .wall-item-comment-wrapper .comment-edit-photo {
   display: none;
@@ -2246,7 +2276,6 @@ blockquote {
         color: #777;
 }
 .oembed {
-       font-size: large;
        font-weight: bold;
 }
 .aprofile dt{
@@ -2687,4 +2716,4 @@ list-style-type: disc;
 #photos-upload-newalbum-div {
         float: left;
         width: 175px;
-}
+}
\ No newline at end of file
index fbe42a304ac75431df3d47aba0a6d51d07a33ab8..4acb058e54113084396910ce5038c1c886b5ec88 100755 (executable)
@@ -3,13 +3,13 @@
 /*
  * Name: Diabook
  * Description: Diabook: report bugs and request here: http://pad.toktan.org/p/diabook or contact me : thomas_bierey@friendica.eu
- * Version: (Version: 1.014)
+ * Version: (Version: 1.016)
  * Author: 
  */
 
 
 //print diabook-version for debugging
-$diabook_version = "Diabook (Version: 1.014)";
+$diabook_version = "Diabook (Version: 1.016)";
 $a->page['htmlhead'] .= sprintf('<script "%s" ></script>', $diabook_version);
 
 //change css on network and profilepages
@@ -376,11 +376,12 @@ $a->page['htmlhead'] .= '
    
  </script>';
  
 $a->page['htmlhead'] .= '
  <script>
  
 $(document).ready(function() {
-    $(".embed_yt iframe").each(function(){
+    $("iframe").each(function(){
         var ifr_source = $(this).attr("src");
         var wmode = "wmode=transparent";
         if(ifr_source.indexOf("?") != -1) {
@@ -391,7 +392,18 @@ $(document).ready(function() {
         }
         else $(this).attr("src",ifr_source+"?"+wmode);
     });
+      
+
 });
+
+function yt_iframe() {
+       
+       $("iframe").load(function() { 
+       var ifr_src = $(this).contents().find("body iframe").attr("src");
+       $("iframe").contents().find("body iframe").attr("src", ifr_src+"&wmode=transparent");
+    });
+
+       };
   
  </script>';
  
@@ -403,7 +415,12 @@ $a->page['htmlhead'] .= '
  $(function() {
        $(".oembed.photo img").aeImageResize({height: 400, width: 400});
   });
+</script>';
+
 
+       if($ccCookie != "8") {
+$a->page['htmlhead'] .= '
+<script>
 $("right_aside").ready(function(){
        
        if($.cookie("close_pages") == "1") 
@@ -487,9 +504,10 @@ function close_lastlikes(){
  document.getElementById( "close_lastlikes" ).style.display = "none";
  $.cookie("close_lastlikes","1", { expires: 365, path: "/" });
  };
+</script>';}
 
+$a->page['htmlhead'] .= ' 
+<script>
 function restore_boxes(){
        $.cookie("close_pages","2", { expires: 365, path: "/" });
        $.cookie("close_helpers","2", { expires: 365, path: "/" });
@@ -500,5 +518,38 @@ function restore_boxes(){
        $.cookie("close_lastphotos","2", { expires: 365, path: "/" });
        $.cookie("close_lastlikes","2", { expires: 365, path: "/" });
        alert("Right-hand column was restored. Please refresh your browser");
-  };
-</script>';}
\ No newline at end of file
+  }
+</script>';}
+
+$a->page['htmlhead'] .= ' 
+
+<script type="text/javascript">
+function insertFormatting(BBcode,id) {
+       
+               var tmpStr = $("#comment-edit-text-" + id).val();
+               if(tmpStr == "Kommentar") {
+                       tmpStr = "";
+                       $("#comment-edit-text-" + id).addClass("comment-edit-text-full");
+                       $("#comment-edit-text-" + id).removeClass("comment-edit-text-empty");
+                       openMenu("comment-edit-submit-wrapper-" + id);
+                                                                                       }
+
+       textarea = document.getElementById("comment-edit-text-" +id);
+       if (document.selection) {
+               textarea.focus();
+               selected = document.selection.createRange();
+               if (BBcode == "url"){
+                       selected.text = "["+BBcode+"]" + "http://" +  selected.text + "[/"+BBcode+"]";
+                       } else                  
+               selected.text = "["+BBcode+"]" + selected.text + "[/"+BBcode+"]";
+       } else if (textarea.selectionStart || textarea.selectionStart == "0") {
+               var start = textarea.selectionStart;
+               var end = textarea.selectionEnd;
+               if (BBcode == "url"){
+                       textarea.value = textarea.value.substring(0, start) + "["+BBcode+"]" + "http://" + textarea.value.substring(start, end) + "[/"+BBcode+"]" + textarea.value.substring(end, textarea.value.length);
+                       } else
+               textarea.value = textarea.value.substring(0, start) + "["+BBcode+"]" + textarea.value.substring(start, end) + "[/"+BBcode+"]" + textarea.value.substring(end, textarea.value.length);
+       }
+       return true;
+}
+</script> ';
\ No newline at end of file
index 340b7216cfb57757546cedd2663b18242a3c6202..edabab6110015aa94047e28d46dfc2e46886eaaa 100644 (file)
 </div>
 {{ endif }}
 
-{{ if $lastusers_title }}
-<h3 id="postit-header">PostIt to Friendica</h3>
+<h3 id="postit-header">'PostIt' to Friendica</h3>
 <div id="postit">
 <a href="$fostitJS" title="PostIt">Post to Friendica</a> from anywhere by bookmarking this link.
 </div>
-{{ endif }}
 
index e74ec1a4f993f4813f128a9e55fd32419112b26d..32393f08d5ee80b7d7c09a3be9f9acd46f1ef1a6 100644 (file)
@@ -6,15 +6,31 @@
   <?php if(x($page,'htmlhead')) echo $page['htmlhead'] ?>
 </head>
 <body>
-       <?php if(x($page,'nav')) echo $page['nav']; ?>
-       <aside>
-               <?php if(x($page,'aside')) echo $page['aside']; ?>
-               <?php if(x($page,'aside_bottom')) echo $page['aside_bottom']; ?>
-       </aside>
-       <section><?php if(x($page,'content')) echo $page['content']; ?>
-               <div id="page-footer"></div>
-       </section>
-       <footer><?php if(x($page,'footer')) echo $page['footer']; ?></footer>
+       <header>
+       <!-- header stuff will go here -->
+       </header>
+       <article id="articlemain">
+               <?php if(x($page,'nav')) echo $page['nav']; ?>
+               <aside id="asideleft">
+                       <?php if(x($page,'aside_left')) echo $page['aside_left']; ?>
+                       <?php if(x($page,'aside_left_bottom')) echo $page['aside_left_bottom']; ?>
+               </aside>
+               <section id="sectionmain">
+                       <?php if(x($page,'content')) echo $page['content']; ?>
+                       <footer id="section-footer"></footer>
+               </section>
+               <aside id="asidemain">
+                       <?php if(x($page,'aside')) echo $page['aside']; ?>
+                       <?php if(x($page,'aside_bottom')) echo $page['aside_bottom']; ?>
+               </aside>
+               <aside id="asideright">
+                       <?php if(x($page,'aside_right')) echo $page['aside_right']; ?>
+                       <?php if(x($page,'aside_right_bottom')) echo $page['aside_right_bottom']; ?>
+               </aside>
+       </article>
+       <footer id="page-footer">
+               <?php if(x($page,'footer')) echo $page['footer']; ?>
+       </footer>
 </body>
 </html>
 
index a3248c13c2547fd6e4178fee1a7e1b6ed5e55d0e..1f776eed7289b442079eba530fab48a61f5c93e5 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * dispy-dark
  *
- * modernised, sort of, by simon <http://simon.kisikew.org/>
+ * author, maintainer: simon <http://simon.kisikew.org/>
  *
  */
 
@@ -210,12 +210,17 @@ input[type=submit] {
        margin: 5px 0;
        list-style: none;
 }
+#articlemain {
+       width: 100%;
+       height: 100%;
+       margin: 0 auto;
+}
 
 
 /**
  *     login
  */
-aside .field {
+#asidemain .field {
        overflow: hidden;
        width: 200px;
 }
@@ -247,7 +252,7 @@ aside .field {
 #login-submit-button {
     margin-left: 0px !important;
 }
-aside #login_openid {
+#asidemain #login_openid {
        position: relative !important;
        float: none !important;
        margin-left: 0px !important;
@@ -268,13 +273,10 @@ aside #login_openid {
  */
 nav {
        height: 60px;
-       display: block;
        background-color: #1d1f1d;
        color: #eeeeec;
        position: relative;
        padding: 20px 20px 10px 95px;
-    margin-left: auto;
-    margin-right: auto;
 }
 nav a {
        text-decoration: none;
@@ -707,12 +709,16 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify, nav #nav-notifications-link
 /**
 * aside
 **/
-aside {
-    position: absolute;
-    right: 15px;
-    width: 245px;
-       padding-top: 15px;
+#asidemain {
+       float: left;
     font-size: smaller;
+    margin: 20px 0 20px 35px;
+    width: 25%;
+       display: inline;
+}
+/* for now, disappear these */
+#asideright, #asideleft {
+       display: none;
 }
 .vcard .fn {
        font-size: 1.7em;
@@ -742,10 +748,10 @@ aside {
 .vcard #profile-photo-wrapper img {
        box-shadow: 3px 3px 10px 0 #000;
 }
-aside h4 {
+#asidemain h4 {
        font-size: 1.2em;
 }
-aside #viewcontacts {
+#asidemain #viewcontacts {
        text-align: right;
 }
 .aprofile dt {
@@ -1064,12 +1070,13 @@ aside #viewcontacts {
 /**
  * section
  */
-section {
-    margin: 20px 9% 0 4%;
+#sectionmain {
+    margin: 20px;
     font-size: 0.8em;
-    padding-right: 230px;
        min-width: 475px;
-       width: 65%;
+       width: 67%;
+       float: left;
+       display: inline;
 }
 
 /** tabs **/
@@ -1333,19 +1340,19 @@ section {
     width: 100%;
 }
 #connect-services-header {
-
+       margin: 5px 0 0 0;
 }
 #connect-services {
        margin: 5px 0 0 0;
 }
 #extra-help-header {
-
+       margin: 5px 0 0 0;
 }
 #extra-help {
        margin: 5px 0 0 0;
 }
 #postit-header {
-
+       margin: 5px 0 0 0;
 }
 #postit {
        margin: 5px 0 0 0;
@@ -2603,8 +2610,8 @@ div[id$="wrapper"] br {
 }
 .icon.drop,
 .icon.drophide, .icon.delete {
-    float: right;
-       margin: 5px;
+    float: left;
+       /*margin: 5px;*/
 }
 .icon.s22.delete {
        display: block;
@@ -2776,7 +2783,7 @@ div[id$="wrapper"] br {
 }
 footer {
     display: block;
-    margin: 50px 20%;
+       /*margin: 50px 20%;*/
     clear: both;
 }
 #profile-jot-text {
index e1dc8ba0c6531f8443d6318df216332ed208c813..c9028b9a9aeb822f382414c5592df62db1993bf0 100644 (file)
 /*
  * Name: Dispy Dark
  * Description: Dispy Dark, Friendica theme
- * Version: 1.0
+ * Version: 1.1
  * Author: Simon <http://simon.kisikew.org/>
  * Maintainer: Simon <http://simon.kisikew.org/>
  * Screenshot: <a href="screenshot.jpg">Screenshot</a>
  */
 
+$a = get_app();
 $a->theme_info = array(
-       'extends' => 'dispy-dark',
+       'name' => 'dispy-dark',
+       'version' => '1.1'
 );
 
-$a->page['htmlhead'] .= <<< EOT
-<script>
-$(document).ready(function() {
-    $('.group-edit-icon').hover(
-        function() {
-            $(this).addClass('icon');
-            $(this).removeClass('iconspacer'); },
-
-        function() {
-            $(this).removeClass('icon');
-            $(this).addClass('iconspacer'); }
-    );
-
-    $('.sidebar-group-element').hover(
-        function() {
-            id = $(this).attr('id');
-            $('#edit-' + id).addClass('icon');
-            $('#edit-' + id).removeClass('iconspacer'); },
-
-        function() {
-            id = $(this).attr('id');
-            $('#edit-' + id).removeClass('icon');
-            $('#edit-' + id).addClass('iconspacer'); }
-    );
-
-    $('.savedsearchdrop').hover(
-        function() {
-            $(this).addClass('drop');
-            $(this).addClass('icon');
-            $(this).removeClass('iconspacer'); },
-
-        function() {
-            $(this).removeClass('drop');
-            $(this).removeClass('icon');
-            $(this).addClass('iconspacer'); }
-    );
-
-    $('.savedsearchterm').hover(
-        function() {
-            id = $(this).attr('id');
-            $('#drop-' + id).addClass('icon');
-            $('#drop-' + id).addClass('drophide');
-            $('#drop-' + id).removeClass('iconspacer'); },
-
-        function() {
-            id = $(this).attr('id');
-            $('#drop-' + id).removeClass('icon');
-            $('#drop-' + id).removeClass('drophide');
-            $('#drop-' + id).addClass('iconspacer'); }
-        );
-
-       // click outside notifications menu closes it
-       $('html').click(function() {
-               $('#nav-notifications-linkmenu').removeClass('selected');
-               document.getElementById("nav-notifications-menu").style.display = "none";
-       });
-
-       $('#nav-notifications-linkmenu').click(function(event) {
-               event.stopPropagation();
-       });
-       // click outside profiles menu closes it
-       $('html').click(function() {
-               $('#profiles-menu-trigger').removeClass('selected');
-               document.getElementById("profiles-menu").style.display = "none";
-       });
-
-       $('#profiles-menu').click(function(event) {
-               event.stopPropagation();
-       });
+function dispy_dark_init(&$a) {
+
+       // aside on profile page
+       if (($a->argv[0] . $a->argv[1]) === ("profile" . $a->user['nickname'])) {
+               dispy_dark_community_info();
+       }
+
+       $a->page['htmlhead'] .= <<<EOT
+       <script type="text/javascript">
+       $(document).ready(function() {
+               $('.group-edit-icon').hover(
+                       function() {
+                               $(this).addClass('icon');
+                               $(this).removeClass('iconspacer'); },
+
+                       function() {
+                               $(this).removeClass('icon');
+                               $(this).addClass('iconspacer'); }
+               );
+
+               $('.sidebar-group-element').hover(
+                       function() {
+                               id = $(this).attr('id');
+                               $('#edit-' + id).addClass('icon');
+                               $('#edit-' + id).removeClass('iconspacer'); },
+
+                       function() {
+                               id = $(this).attr('id');
+                               $('#edit-' + id).removeClass('icon');
+                               $('#edit-' + id).addClass('iconspacer'); }
+               );
+
+               $('.savedsearchdrop').hover(
+                       function() {
+                               $(this).addClass('drop');
+                               $(this).addClass('icon');
+                               $(this).removeClass('iconspacer'); },
+
+                       function() {
+                               $(this).removeClass('drop');
+                               $(this).removeClass('icon');
+                               $(this).addClass('iconspacer'); }
+               );
+
+               $('.savedsearchterm').hover(
+                       function() {
+                               id = $(this).attr('id');
+                               $('#drop-' + id).addClass('icon');
+                               $('#drop-' + id).addClass('drophide');
+                               $('#drop-' + id).removeClass('iconspacer'); },
+
+                       function() {
+                               id = $(this).attr('id');
+                               $('#drop-' + id).removeClass('icon');
+                               $('#drop-' + id).removeClass('drophide');
+                               $('#drop-' + id).addClass('iconspacer'); }
+                       );
+
+               // click outside notifications menu closes it
+               $('html').click(function() {
+                       $('#nav-notifications-linkmenu').removeClass('selected');
+                       document.getElementById("nav-notifications-menu").style.display = "none";
+               });
+
+               $('#nav-notifications-linkmenu').click(function(event) {
+                       event.stopPropagation();
+               });
+               // click outside profiles menu closes it
+               $('html').click(function() {
+                       $('#profiles-menu-trigger').removeClass('selected');
+                       document.getElementById("profiles-menu").style.display = "none";
+               });
+
+               $('#profiles-menu').click(function(event) {
+                       event.stopPropagation();
+               });
+
+               // main function in toolbar functioning
+               function toggleToolbar() {
+                       if ( $('#nav-floater').is(':visible') ) {
+                               $('#nav-floater').slideUp('fast');
+                               $('.floaterflip').css({
+                                       backgroundPosition: '-210px -60px' 
+                               });
+                               $('.search-box').slideUp('fast');
+                       } else {
+                               $('#nav-floater').slideDown('fast');
+                               $('.floaterflip').css({
+                                       backgroundPosition: '-190px -60px'
+                               });
+                               $('.search-box').slideDown('fast');
+                       }
+               };
+               // our trigger for the toolbar button
+               $('.floaterflip').click(function() {
+                       toggleToolbar();
+                       return false;
+               });
+
+               // (attempt) to change the text colour in a top post
+               $('#profile-jot-text').focusin(function() {
+                       $(this).css({color: '#eec'});
+               });
 
-       // main function in toolbar functioning
-    function toggleToolbar() {
-        if ( $('#nav-floater').is(':visible') ) {
-            $('#nav-floater').slideUp('fast');
-            $('.floaterflip').css({
-                backgroundPosition: '-210px -60px' 
-            });
-                       $('.search-box').slideUp('fast');
-        } else {
-            $('#nav-floater').slideDown('fast');
-            $('.floaterflip').css({
-                backgroundPosition: '-190px -60px'
-            });
-                       $('.search-box').slideDown('fast');
-        }
-    };
-       // our trigger for the toolbar button
-    $('.floaterflip').click(function() {
-        toggleToolbar();
-        return false;
-    });
-
-       // (attempt) to change the text colour in a top post
-       $('#profile-jot-text').focusin(function() {
-               $(this).css({color: '#eec'});
        });
-
-});
-</script>
+       </script>
 EOT;
+}
 
-function dispydark_community_info() {
+function dispy_dark_community_info() {
        $a = get_app();
+       $url = $a->get_baseurl($ssl_state);
+       $aside['$url'] = $url;
 
-       $aside['$lastusers_title'] = t('Last users');
-    $aside['$lastusers_items'] = array();
-       $publish = (get_config('system','publish_all') ? '' : " AND `publish` = 1 " );
-
-       $fostitJS = "javascript: (function() {
-               the_url = '".$a->get_baseurl($ssl_state)."/view/theme/dispy-dark/fpostit/fpostit.php?url=' +
+       $fpostitJS = <<<FPI
+               javascript: (function() {
+               the_url = ' . $url . '/view/theme/' . $a->theme_info['name'] . '/fpostit/fpostit.php?url=' +
                encodeURIComponent(window.location.href) + '&title=' + encodeURIComponent(document.title) + '&text=' +
                encodeURIComponent(''+(window.getSelection ? window.getSelection() : document.getSelection ?
                document.getSelection() : document.selection.createRange().text));
@@ -135,18 +144,11 @@ function dispydark_community_info() {
                        } else {
                                a_funct();
                        }
-               })();";
+               })();
+FPI;
 
-       $aside['$fostitJS'] = $fostitJS;
-       $url = $a->get_baseurl($ssl_state);
-       $aside['$url'] = $url;
-
-    $tpl = file_get_contents(dirname(__file__).'/communityhome.tpl');
-       $a->page['aside_bottom'] = replace_macros($tpl, $aside);
+       $aside['$fpostitJS'] = $fpostitJS;
+       $tpl = file_get_contents(dirname(__file__) . '/communityhome.tpl');
+       return $a->page['aside_bottom'] = replace_macros($tpl, $aside);
 }
 
-// aside on profile page
-//if (($a->argv[0] . $a->argv[1]) === ("profile" . $a->user['nickname'])) {
-       dispydark_community_info();
-//}
-
index 340b7216cfb57757546cedd2663b18242a3c6202..edabab6110015aa94047e28d46dfc2e46886eaaa 100644 (file)
 </div>
 {{ endif }}
 
-{{ if $lastusers_title }}
-<h3 id="postit-header">PostIt to Friendica</h3>
+<h3 id="postit-header">'PostIt' to Friendica</h3>
 <div id="postit">
 <a href="$fostitJS" title="PostIt">Post to Friendica</a> from anywhere by bookmarking this link.
 </div>
-{{ endif }}
 
index e74ec1a4f993f4813f128a9e55fd32419112b26d..32393f08d5ee80b7d7c09a3be9f9acd46f1ef1a6 100644 (file)
@@ -6,15 +6,31 @@
   <?php if(x($page,'htmlhead')) echo $page['htmlhead'] ?>
 </head>
 <body>
-       <?php if(x($page,'nav')) echo $page['nav']; ?>
-       <aside>
-               <?php if(x($page,'aside')) echo $page['aside']; ?>
-               <?php if(x($page,'aside_bottom')) echo $page['aside_bottom']; ?>
-       </aside>
-       <section><?php if(x($page,'content')) echo $page['content']; ?>
-               <div id="page-footer"></div>
-       </section>
-       <footer><?php if(x($page,'footer')) echo $page['footer']; ?></footer>
+       <header>
+       <!-- header stuff will go here -->
+       </header>
+       <article id="articlemain">
+               <?php if(x($page,'nav')) echo $page['nav']; ?>
+               <aside id="asideleft">
+                       <?php if(x($page,'aside_left')) echo $page['aside_left']; ?>
+                       <?php if(x($page,'aside_left_bottom')) echo $page['aside_left_bottom']; ?>
+               </aside>
+               <section id="sectionmain">
+                       <?php if(x($page,'content')) echo $page['content']; ?>
+                       <footer id="section-footer"></footer>
+               </section>
+               <aside id="asidemain">
+                       <?php if(x($page,'aside')) echo $page['aside']; ?>
+                       <?php if(x($page,'aside_bottom')) echo $page['aside_bottom']; ?>
+               </aside>
+               <aside id="asideright">
+                       <?php if(x($page,'aside_right')) echo $page['aside_right']; ?>
+                       <?php if(x($page,'aside_right_bottom')) echo $page['aside_right_bottom']; ?>
+               </aside>
+       </article>
+       <footer id="page-footer">
+               <?php if(x($page,'footer')) echo $page['footer']; ?>
+       </footer>
 </body>
 </html>
 
index e38b2bbe2f19853e5bb4ab591fe7d8b7c269ba8a..34aba50de3c724ac0a9d2d74fb13d576f4c3014e 100644 (file)
@@ -56,7 +56,6 @@ works -->
         <a id="nav-register-link" class="nav-commlink $nav.register.2" href="$nav.register.0" title="$nav.register.1"></a>
         </li>
         {{ endif }}
-
         {{ if $nav.contacts }}
         <li><a id="nav-contacts-link" class="nav-commlink $nav.contacts.2" href="$nav.contacts.0" title="$nav.contacts.1">$nav.contacts.1</a></li>
         {{ endif }}
@@ -75,11 +74,9 @@ works -->
         {{ if $nav.admin }}
         <li><a id="nav-admin-link" class="nav-commlink $nav.admin.2" href="$nav.admin.0" title="$nav.admin.1">$nav.admin.1</a></li>
         {{ endif }}
-
         {{ if $nav.login }}
         <li><a id="nav-login-link" class="nav-commlink $nav.login.2" href="$nav.login.0" title="$nav.login.1">$nav.login.1</a></li>
         {{ endif }}
-
         {{ if $nav.logout }}
         <li><a id="nav-logout-link" class="nav-commlink $nav.logout.2" href="$nav.logout.0" title="$nav.logout.3" >$nav.logout.1</a></li>
         {{ endif }}
index 622cf57341642498ed60fe91ce831b82d1482a06..70d722e81843aea73b1bc9d33506e28a08e88877 100644 (file)
@@ -1,7 +1,8 @@
 /*
  * dispy
  *
- * modernised, sort of, by simon <http://simon.kisikew.org/>
+ * maintainer: simon <http://simon.kisikew.org/>
+ * author: unknown
  *
  */
 
@@ -210,12 +211,17 @@ input[type=submit] {
        margin: 5px 0;
        list-style: none;
 }
+#articlemain {
+       width: 100%;
+       height: 100%;
+       margin: 0 auto;
+}
 
 
 /**
  *     login
  */
-aside .field {
+#asidemain .field {
        overflow: hidden;
        width: 200px;
 }
@@ -247,7 +253,7 @@ aside .field {
 #login-submit-button {
     margin-left: 0px !important;
 }
-aside #login_openid {
+#asidemain #login_openid {
        position: relative !important;
        float: none !important;
        margin-left: 0px !important;
@@ -268,13 +274,10 @@ aside #login_openid {
  */
 nav {
        height: 60px;
-       display: block;
        background-color: #2e3436;
        color: #eeeeec;
        position: relative;
        padding: 20px 20px 10px 95px;
-    margin-left: auto;
-    margin-right: auto;
 }
 nav a {
        text-decoration: none;
@@ -707,12 +710,16 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify, nav #nav-notifications-link
 /**
 * aside
 **/
-aside {
-    position: absolute;
-    right: 15px;
-    width: 245px;
-       padding-top: 15px;
+#asidemain {
+       float: left;
     font-size: smaller;
+    margin: 20px 0 20px 35px;
+    width: 25%;
+       display: inline;
+}
+/* for now, disappear these */
+#asideright, #asideleft {
+       display: none;
 }
 .vcard .fn {
        font-size: 1.7em;
@@ -742,15 +749,15 @@ aside {
 .vcard #profile-photo-wrapper img {
        box-shadow: 3px 3px 10px 0 #000;
 }
-aside h4 {
+#asidemain h4 {
        font-size: 1.2em;
 }
-aside #viewcontacts {
+#asidemain #viewcontacts {
        text-align: right;
 }
 .aprofile dt {
-    color: #666666;
        background: transparent;
+       color: #666666;
        font-weight: bold;
     box-shadow: 1px 1px 5px 0 #000;
     margin: 15px 0 5px;
@@ -1064,12 +1071,13 @@ aside #viewcontacts {
 /**
  * section
  */
-section {
-    margin: 20px 9% 0 4%;
+#sectionmain {
+    margin: 20px;
     font-size: 0.8em;
-    padding-right: 230px;
        min-width: 475px;
-       width: 65%;
+       width: 67%;
+       float: left;
+       display: inline;
 }
 
 /** tabs **/
@@ -1333,19 +1341,19 @@ section {
     width: 100%;
 }
 #connect-services-header {
-
+       margin: 5px 0 0 0;
 }
 #connect-services {
        margin: 5px 0 0 0;
 }
 #extra-help-header {
-
+       margin: 5px 0 0 0;
 }
 #extra-help {
        margin: 5px 0 0 0;
 }
 #postit-header {
-
+       margin: 5px 0 0 0;
 }
 #postit {
        margin: 5px 0 0 0;
@@ -2603,8 +2611,8 @@ div[id$="wrapper"] br {
 }
 .icon.drop,
 .icon.drophide, .icon.delete {
-    float: right;
-       margin: 5px;
+    float: left;
+       /*margin: 5px;*/
 }
 .icon.s22.delete {
        display: block;
@@ -2776,7 +2784,7 @@ div[id$="wrapper"] br {
 }
 footer {
     display: block;
-    margin: 50px 20%;
+       /*margin: 50px 20%;*/
     clear: both;
 }
 #profile-jot-text {
index d0f6797cbaa92c617dfc1f55f4b2c02a768b750c..5df193aa60984bef99f0a0a61fbec85c3dc6736b 100644 (file)
 /*
  * Name: Dispy
  * Description: Dispy, Friendica theme
- * Version: 1.0
+ * Version: 1.1
  * Author: unknown
  * Maintainer: Simon <http://simon.kisikew.org/>
  * Screenshot: <a href="screenshot.jpg">Screenshot</a>
  */
 
+$a = get_app();
 $a->theme_info = array(
-       'extends' => 'dispy',
+       'name' => 'dispy',
+       'version' => '1.1'
 );
 
-$a->page['htmlhead'] .= <<< EOT
-<script>
-$(document).ready(function() {
-    $('.group-edit-icon').hover(
-        function() {
-            $(this).addClass('icon');
-            $(this).removeClass('iconspacer'); },
-
-        function() {
-            $(this).removeClass('icon');
-            $(this).addClass('iconspacer'); }
-    );
-
-    $('.sidebar-group-element').hover(
-        function() {
-            id = $(this).attr('id');
-            $('#edit-' + id).addClass('icon');
-            $('#edit-' + id).removeClass('iconspacer'); },
-
-        function() {
-            id = $(this).attr('id');
-            $('#edit-' + id).removeClass('icon');
-            $('#edit-' + id).addClass('iconspacer'); }
-    );
-
-    $('.savedsearchdrop').hover(
-        function() {
-            $(this).addClass('drop');
-            $(this).addClass('icon');
-            $(this).removeClass('iconspacer'); },
-
-        function() {
-            $(this).removeClass('drop');
-            $(this).removeClass('icon');
-            $(this).addClass('iconspacer'); }
-    );
-
-    $('.savedsearchterm').hover(
-        function() {
-            id = $(this).attr('id');
-            $('#drop-' + id).addClass('icon');
-            $('#drop-' + id).addClass('drophide');
-            $('#drop-' + id).removeClass('iconspacer'); },
-
-        function() {
-            id = $(this).attr('id');
-            $('#drop-' + id).removeClass('icon');
-            $('#drop-' + id).removeClass('drophide');
-            $('#drop-' + id).addClass('iconspacer'); }
-        );
-
-       // click outside notifications menu closes it
-       $('html').click(function() {
-               $('#nav-notifications-linkmenu').removeClass('selected');
-               document.getElementById("nav-notifications-menu").style.display = "none";
-       });
-
-       $('#nav-notifications-linkmenu').click(function(event) {
-               event.stopPropagation();
-       });
-       // click outside profiles menu closes it
-       $('html').click(function() {
-               $('#profiles-menu-trigger').removeClass('selected');
-               document.getElementById("profiles-menu").style.display = "none";
-       });
-
-       $('#profiles-menu').click(function(event) {
-               event.stopPropagation();
-       });
+function dispy_init(&$a) {
+
+       // aside on profile page
+       if (($a->argv[0] . $a->argv[1]) === ("profile" . $a->user['nickname'])) {
+               dispy_community_info();
+       }
+
+       $a->page['htmlhead'] .= <<<EOT
+       <script type="text/javascript">
+       $(document).ready(function() {
+               $('.group-edit-icon').hover(
+                       function() {
+                               $(this).addClass('icon');
+                               $(this).removeClass('iconspacer'); },
+
+                       function() {
+                               $(this).removeClass('icon');
+                               $(this).addClass('iconspacer'); }
+               );
+
+               $('.sidebar-group-element').hover(
+                       function() {
+                               id = $(this).attr('id');
+                               $('#edit-' + id).addClass('icon');
+                               $('#edit-' + id).removeClass('iconspacer'); },
+
+                       function() {
+                               id = $(this).attr('id');
+                               $('#edit-' + id).removeClass('icon');
+                               $('#edit-' + id).addClass('iconspacer'); }
+               );
+
+               $('.savedsearchdrop').hover(
+                       function() {
+                               $(this).addClass('drop');
+                               $(this).addClass('icon');
+                               $(this).removeClass('iconspacer'); },
+
+                       function() {
+                               $(this).removeClass('drop');
+                               $(this).removeClass('icon');
+                               $(this).addClass('iconspacer'); }
+               );
+
+               $('.savedsearchterm').hover(
+                       function() {
+                               id = $(this).attr('id');
+                               $('#drop-' + id).addClass('icon');
+                               $('#drop-' + id).addClass('drophide');
+                               $('#drop-' + id).removeClass('iconspacer'); },
+
+                       function() {
+                               id = $(this).attr('id');
+                               $('#drop-' + id).removeClass('icon');
+                               $('#drop-' + id).removeClass('drophide');
+                               $('#drop-' + id).addClass('iconspacer'); }
+                       );
+
+               // click outside notifications menu closes it
+               $('html').click(function() {
+                       $('#nav-notifications-linkmenu').removeClass('selected');
+                       document.getElementById("nav-notifications-menu").style.display = "none";
+               });
+
+               $('#nav-notifications-linkmenu').click(function(event) {
+                       event.stopPropagation();
+               });
+               // click outside profiles menu closes it
+               $('html').click(function() {
+                       $('#profiles-menu-trigger').removeClass('selected');
+                       document.getElementById("profiles-menu").style.display = "none";
+               });
+
+               $('#profiles-menu').click(function(event) {
+                       event.stopPropagation();
+               });
+
+               // main function in toolbar functioning
+               function toggleToolbar() {
+                       if ( $('#nav-floater').is(':visible') ) {
+                               $('#nav-floater').slideUp('fast');
+                               $('.floaterflip').css({
+                                       backgroundPosition: '-210px -60px' 
+                               });
+                               $('.search-box').slideUp('fast');
+                       } else {
+                               $('#nav-floater').slideDown('fast');
+                               $('.floaterflip').css({
+                                       backgroundPosition: '-190px -60px'
+                               });
+                               $('.search-box').slideDown('fast');
+                       }
+               };
+               // our trigger for the toolbar button
+               $('.floaterflip').click(function() {
+                       toggleToolbar();
+                       return false;
+               });
+
+               // (attempt) to change the text colour in a top post
+               $('#profile-jot-text').focusin(function() {
+                       $(this).css({color: '#eec'});
+               });
 
-       // main function in toolbar functioning
-    function toggleToolbar() {
-        if ( $('#nav-floater').is(':visible') ) {
-            $('#nav-floater').slideUp('fast');
-            $('.floaterflip').css({
-                backgroundPosition: '-210px -60px' 
-            });
-                       $('.search-box').slideUp('fast');
-        } else {
-            $('#nav-floater').slideDown('fast');
-            $('.floaterflip').css({
-                backgroundPosition: '-190px -60px'
-            });
-                       $('.search-box').slideDown('fast');
-        }
-    };
-       // our trigger for the toolbar button
-    $('.floaterflip').click(function() {
-        toggleToolbar();
-        return false;
-    });
-
-       // (attempt) to change the text colour in a top post
-       $('#profile-jot-text').focusin(function() {
-               $(this).css({color: '#eec'});
        });
-
-});
-</script>
+       </script>
 EOT;
+}
 
 function dispy_community_info() {
        $a = get_app();
+       $url = $a->get_baseurl($ssl_state);
+       $aside['$url'] = $url;
 
-       $fostitJS = "javascript: (function() {
-               the_url = '".$a->get_baseurl($ssl_state)."/view/theme/dispy-dark/fpostit/fpostit.php?url=' +
+       $fpostitJS = <<<FPI
+               javascript: (function() {
+               the_url = ' . $url . '/view/theme/' . $a->theme_info['name'] . '/fpostit/fpostit.php?url=' +
                encodeURIComponent(window.location.href) + '&title=' + encodeURIComponent(document.title) + '&text=' +
                encodeURIComponent(''+(window.getSelection ? window.getSelection() : document.getSelection ?
                document.getSelection() : document.selection.createRange().text));
@@ -131,17 +144,11 @@ function dispy_community_info() {
                        } else {
                                a_funct();
                        }
-               })();";
+               })();
+FPI;
 
-       $aside['$fostitJS'] = $fostitJS;
-       $url = $a->get_baseurl($ssl_state);
-       $aside['$url'] = $url;
-
-    $tpl = file_get_contents(dirname(__file__).'/communityhome.tpl');
-       $a->page['aside_bottom'] = replace_macros($tpl, $aside);
+       $aside['$fpostitJS'] = $fpostitJS;
+       $tpl = file_get_contents(dirname(__file__) . '/communityhome.tpl');
+       return $a->page['aside_bottom'] = replace_macros($tpl, $aside);
 }
 
-// aside on profile page
-if (($a->argv[0] . $a->argv[1]) === ("profile" . $a->user['nickname'])) {
-       dispy_community_info();
-}
index 8acaeaf02767505b85ee82f520be93621e69801f..52af07532b7edf9fb2a0581b953371087de203ac 100644 (file)
@@ -4,9 +4,7 @@
                        <div class="wall-item-photo-wrapper" id="wall-item-photo-wrapper-$item.id" 
                                 onmouseover="if (typeof t$item.id != 'undefined') clearTimeout(t$item.id); openMenu('wall-item-photo-menu-button-$item.id')" 
                                 onmouseout="t$item.id=setTimeout('closeMenu(\'wall-item-photo-menu-button-$item.id\'); closeMenu(\'wall-item-photo-menu-$item.id\');',200)">
-                               <a href="$item.profile_url" target="redir" title="$item.linktitle" class="wall-item-photo-link" id="wall-item-photo-link-$item.id">
-                                       <img src="$item.thumb" class="wall-item-photo$item.sparkle" id="wall-item-photo-$item.id" style="height: 80px; width: 80px;" alt="$item.name" />
-                               </a>
+                               <a href="$item.profile_url" target="redir" title="$item.linktitle" class="wall-item-photo-link" id="wall-item-photo-link-$item.id"><img src="$item.thumb" class="wall-item-photo$item.sparkle" id="wall-item-photo-$item.id" style="height: 80px; width: 80px;" alt="$item.name" /></a>
                                <span onclick="openClose('wall-item-photo-menu-$item.id');" class="fakelink wall-item-photo-menu-button" id="wall-item-photo-menu-button-$item.id">menu</span>
                                <div class="wall-item-photo-menu" id="wall-item-photo-menu-$item.id">
                                        <ul>
                        </ul>
                        <div class="wall-item-delete-end"></div>
                </div>
-               <div class="wall-item-content" id="wall-item-content-$item.id" >
+               <div class="wall-item-content" id="wall-item-content-$item.id">
                        <div class="wall-item-title" id="wall-item-title-$item.id">$item.title</div>
                        <div class="wall-item-title-end"></div>
-                       <div class="wall-item-body" id="wall-item-body-$item.id" >$item.body
-                                       <div class="body-tag">
-                                               {{ for $item.tags as $tag }}
-                                                       <span class='tag'>$tag</span>
-                                               {{ endfor }}
-                                       </div>
+                       <div class="wall-item-body" id="wall-item-body-$item.id">
+                               $item.body
+                               <div class="body-tag">
+                                       {{ for $item.tags as $tag }}
+                                               <span class='tag'>$tag</span>
+                                       {{ endfor }}
+                               </div>
                        </div>
                </div>
                <div class="wall-item-author">
index 421cddadfc0fbe80c9747fb3d32b3f34f278c400..e8cbc2cd40314c59c6fe2e4d89c2b169ece2ce06 100644 (file)
@@ -2,15 +2,13 @@
        <div class="wall-item-content-wrapper$item.indent" id="wall-item-content-wrapper-$item.id" >
                <div class="wall-item-info wallwall" id="wall-item-info-$item.id">
                        <div class="wall-item-photo-wrapper wwto" id="wall-item-ownerphoto-wrapper-$item.id" >
-                               <a href="$item.owner_url" title="$item.olinktitle" class="wall-item-photo-link" id="wall-item-ownerphoto-link-$item.id">
-                               <img src="$item.owner_photo" class="wall-item-photo$item.osparkle" id="wall-item-ownerphoto-$item.id" style="height: 80px; width: 80px;" alt="$item.owner_name" /></a>
+                               <a href="$item.owner_url" title="$item.olinktitle" class="wall-item-photo-link" id="wall-item-ownerphoto-link-$item.id"><img src="$item.owner_photo" class="wall-item-photo$item.osparkle" id="wall-item-ownerphoto-$item.id" style="height: 80px; width: 80px;" alt="$item.owner_name" /></a>
                        </div>
                        <div class="wall-item-arrowphoto-wrapper" ><img src="images/larrow.gif" alt="$item.wall" /></div>
                        <div class="wall-item-photo-wrapper wwfrom" id="wall-item-photo-wrapper-$item.id" 
                                onmouseover="if (typeof t$item.id != 'undefined') clearTimeout(t$item.id); openMenu('wall-item-photo-menu-button-$item.id')"
                 onmouseout="t$item.id=setTimeout('closeMenu(\'wall-item-photo-menu-button-$item.id\'); closeMenu(\'wall-item-photo-menu-$item.id\');',200)">
-                               <a href="$item.profile_url" title="$item.linktitle" class="wall-item-photo-link" id="wall-item-photo-link-$item.id">
-                               <img src="$item.thumb" class="wall-item-photo$item.sparkle" id="wall-item-photo-$item.id" style="height: 80px; width: 80px;" alt="$item.name" /></a>
+                               <a href="$item.profile_url" title="$item.linktitle" class="wall-item-photo-link" id="wall-item-photo-link-$item.id"><img src="$item.thumb" class="wall-item-photo$item.sparkle" id="wall-item-photo-$item.id" style="height: 80px; width: 80px;" alt="$item.name" /></a>
                                <span onclick="openClose('wall-item-photo-menu-$item.id');" class="fakelink wall-item-photo-menu-button" id="wall-item-photo-menu-button-$item.id">menu</span>
                 <div class="wall-item-photo-menu" id="wall-item-photo-menu-$item.id">
                     <ul>
@@ -63,15 +61,16 @@ class="icon recycle wall-item-share-buttons"  title="$item.vote.share.0" onclick
                        </ul>
                        <div class="wall-item-delete-end"></div>
                </div>
-               <div class="wall-item-content" id="wall-item-content-$item.id" >
+               <div class="wall-item-content" id="wall-item-content-$item.id">
                        <div class="wall-item-title" id="wall-item-title-$item.id">$item.title</div>
                        <div class="wall-item-title-end"></div>
-                       <div class="wall-item-body" id="wall-item-body-$item.id" >$item.body
-                                       <div class="body-tag">
-                                               {{ for $item.tags as $tag }}
-                                                       <span class="tag">$tag</span>
-                                               {{ endfor }}
-                                       </div>                  
+                       <div class="wall-item-body" id="wall-item-body-$item.id">
+                               $item.body
+                               <div class="body-tag">
+                                       {{ for $item.tags as $tag }}
+                                               <span class="tag">$tag</span>
+                                       {{ endfor }}
+                               </div>                  
                        </div>
                </div>
                <div class="wall-item-author">
index 701fb134918df80fb101b77e7a2c648131a16863..7b42088e1cc17762b7a12e6e90a5432ef43af527 100644 (file)
@@ -1,6 +1,7 @@
 <?php
 $a->theme_info = array();
 
+function duepuntozero_init(&$a) {
 $a->page['htmlhead'] .= <<< EOT
 <script>
 $(document).ready(function() {
@@ -47,3 +48,4 @@ $('.savedsearchterm').hover(
 
 </script>
 EOT;
+}
index ceec4dd97640c3a5b4f1224f4df94ce63a9bfeee..c802024754918ab7a9f795ed83a36e4af05635b3 100644 (file)
@@ -3,6 +3,7 @@ $a->theme_info = array(
   'extends' => 'duepuntozero',
 );
 
+function greenzero_init(&$a) {
 $a->page['htmlhead'] .= <<< EOT
 <script>
 $(document).ready(function() {
@@ -49,3 +50,4 @@ $('.savedsearchterm').hover(
 
 </script>
 EOT;
+}
\ No newline at end of file
index ceec4dd97640c3a5b4f1224f4df94ce63a9bfeee..b9613027c5f6201374f8579db22d34b4d5595db2 100644 (file)
@@ -3,6 +3,7 @@ $a->theme_info = array(
   'extends' => 'duepuntozero',
 );
 
+function purplezero_init(&$a) {
 $a->page['htmlhead'] .= <<< EOT
 <script>
 $(document).ready(function() {
@@ -49,3 +50,4 @@ $('.savedsearchterm').hover(
 
 </script>
 EOT;
+}
\ No newline at end of file
index ceec4dd97640c3a5b4f1224f4df94ce63a9bfeee..a8934d03b20435a60bc0205062e10068122bcb65 100644 (file)
@@ -3,6 +3,7 @@ $a->theme_info = array(
   'extends' => 'duepuntozero',
 );
 
+function slack_NS_init(&$a) {
 $a->page['htmlhead'] .= <<< EOT
 <script>
 $(document).ready(function() {
@@ -49,3 +50,4 @@ $('.savedsearchterm').hover(
 
 </script>
 EOT;
+}
\ No newline at end of file
index ceec4dd97640c3a5b4f1224f4df94ce63a9bfeee..78f5d40f05b59a33b4b08fc6451939a8fe65189c 100644 (file)
@@ -3,6 +3,7 @@ $a->theme_info = array(
   'extends' => 'duepuntozero',
 );
 
+function slackr_init(&$a) {
 $a->page['htmlhead'] .= <<< EOT
 <script>
 $(document).ready(function() {
@@ -49,3 +50,4 @@ $('.savedsearchterm').hover(
 
 </script>
 EOT;
+}
\ No newline at end of file
diff --git a/view/update_fail_eml.tpl b/view/update_fail_eml.tpl
new file mode 100644 (file)
index 0000000..f68a3de
--- /dev/null
@@ -0,0 +1,11 @@
+Hey, \r
+I'm $sitename.   \r
+The friendica developers released update $update recently, \r
+but when I tried to install it, something went terribly wrong.  \r
+This needs to be fixed soon and I can't do it alone. Please contact a \r
+friendica developer if you can not help me on your own. My database might be invalid. \r
+\r
+The error message is '$error'.   \r
+\r
+I'm sorry, \r
+your friendica server at $siteurl
\ No newline at end of file