]> git.mxchange.org Git - friendica.git/commitdiff
bug #85
authorFriendika <info@friendika.com>
Tue, 24 May 2011 03:30:37 +0000 (20:30 -0700)
committerFriendika <info@friendika.com>
Tue, 24 May 2011 03:30:37 +0000 (20:30 -0700)
boot.php
database.sql
include/pgettext.php
mod/dfrn_confirm.php
mod/dfrn_notify.php
mod/invite.php
mod/item.php
mod/register.php
mod/regmod.php
update.php

index 12fd96e7771569ab0b0557ff103676a2bafc6dfb..f72f4dd7fc11488e76a91a05b2c1399d5ee0bb0e 100644 (file)
--- a/boot.php
+++ b/boot.php
@@ -6,7 +6,7 @@ ini_set('pcre.backtrack_limit', 250000);
 
 define ( 'FRIENDIKA_VERSION',      '2.2.989' );
 define ( 'DFRN_PROTOCOL_VERSION',  '2.21'    );
-define ( 'DB_UPDATE_VERSION',      1054      );
+define ( 'DB_UPDATE_VERSION',      1055      );
 
 define ( 'EOL',                    "<br />\r\n"     );
 define ( 'ATOM_TIME',              'Y-m-d\TH:i:s\Z' );
index c15a9ad9cb3aadca222e702aca8320f2182da366..fdc08b7c833675b42b8b7cc6720466fd3192eb77 100644 (file)
@@ -406,6 +406,7 @@ CREATE TABLE IF NOT EXISTS `register` (
   `created` DATETIME NOT NULL ,
   `uid` INT(11) UNSIGNED NOT NULL,
   `password` CHAR(255) NOT NULL,
+  `language` CHAR(16) NOT NULL,
   PRIMARY KEY (`id`)
 ) ENGINE = MYISAM DEFAULT CHARSET=utf8;
 
index 37e09b54dacf2d7b5c9c35e247f65644862f8c99..47242f7ba981289afc102acff5a7aeff5b90e43a 100644 (file)
@@ -53,6 +53,29 @@ function get_language() {
 }}
 
 
+function push_lang($language) {
+       global $lang, $a;
+
+       $a->langsave = $lang;
+
+       if(isset($a->strings) && count($a->strings)) {
+               $a->stringsave = $a->strings;
+       }
+       $a->strings = array();
+       load_translation_table($language);
+       $lang = $language;
+}
+
+function pop_lang() {
+       global $lang, $a;
+       if(isset($a->stringsave))
+               $a->strings = $a->stringsave;
+       else
+               $a->strings = array();
+
+       $lang = $a->langsave;
+}
+
 
 // load string translation table for alternate language
 
index 4e2a70e048f8978e94df92aa6d367ed370d2a539..7c11b78d5947a3b6ead51679e1bce148800e6ed7 100644 (file)
@@ -632,12 +632,13 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
 
                logger('dfrn_confirm: request: info updated');
 
-               $r = q("SELECT * FROM `contact` LEFT JOIN `user` ON `contact`.`uid` = `user`.`uid`
+               $r = q("SELECT `contact`.*, `user`.* FROM `contact` LEFT JOIN `user` ON `contact`.`uid` = `user`.`uid`
                        WHERE `contact`.`id` = %d LIMIT 1",
                        intval($dfrn_record)
                );
                if((count($r)) && ($r[0]['notify-flags'] & NOTIFY_CONFIRM)) {
 
+                       push_lang($r[0]['language']);
                        $tpl = (($new_relation == REL_BUD) 
                                ? get_intltext_template('friend_complete_eml.tpl')
                                : get_intltext_template('intro_complete_eml.tpl'));
@@ -661,6 +662,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
                        if(!$res) {
                                // pointless throwing an error here and confusing the person at the other end of the wire.
                        }
+                       pop_lang();
                }
                xml_status(0); // Success
                return; // NOTREACHED
index 30e95be210ac651fc814016591a99ea90af7afbd..65fd29eb3ceac711a5b554d1edadf1189c4df9fb 100644 (file)
@@ -185,6 +185,8 @@ function dfrn_notify_post(&$a) {
                require_once('bbcode.php');
                if($importer['notify-flags'] & NOTIFY_MAIL) {
 
+                       push_lang($importer['language']);
+
                        // name of the automated email sender
                        $msg['notificationfromname']    = t('Administrator');
                        // noreply address to send from
@@ -250,6 +252,8 @@ function dfrn_notify_post(&$a) {
                                $email_html_body_tpl,
                                $email_text_body_tpl
                        );
+
+                       pop_lang();
                }
                xml_status(0);
                // NOTREACHED
@@ -387,6 +391,7 @@ function dfrn_notify_post(&$a) {
                                                proc_run('php',"include/notifier.php","comment-import","$posted_id");
                                        
                                                if((! $is_like) && ($importer['notify-flags'] & NOTIFY_COMMENT) && (! $importer['self'])) {
+                                                       push_lang($importer['language']);
                                                        require_once('bbcode.php');
                                                        $from = stripslashes($datarray['author-name']);
 
@@ -442,7 +447,7 @@ function dfrn_notify_post(&$a) {
                                                                $email_html_body_tpl,
                                                                $email_text_body_tpl
                                                        );
-
+                                                       pop_lang();
                                                }
                                        }
                                        xml_status(0);
@@ -514,6 +519,8 @@ function dfrn_notify_post(&$a) {
                                                foreach($myconv as $conv) {
                                                        if(! link_compare($conv['author-link'],$importer_url))
                                                                continue;
+
+                                                       push_lang($importer['language']);
                                                        require_once('bbcode.php');
                                                        $from = stripslashes($datarray['author-name']);
                                                        
@@ -567,7 +574,7 @@ function dfrn_notify_post(&$a) {
                                                                $email_html_body_tpl,
                                                                $email_text_body_tpl
                                                        );
-
+                                                       pop_lang();
                                                        break;
                                                }
                                        }
index b34bb7d74e0ed12e636b79edab355577e244d6f5..b52aa19f6130a6469127226dd211cef45a1947d8 100644 (file)
@@ -29,7 +29,7 @@ function invite_post(&$a) {
                        continue;
                }
 
-               $res = mail($recip, sprintf(t('Please join my network on %s'), $a->config['sitename']), 
+               $res = mail($recip, sprintf( t('Please join my network on %s'), $a->config['sitename']), 
                        $message, 
                        "From: " . $a->user['email'] . "\n"
                        . 'Content-type: text/plain; charset=UTF-8' . "\n"
index 15dca37509d1fa74b3040ffc8c254295c11dacbd..1a7acadf3a753091b4984064e162924d25dd8b1f 100644 (file)
@@ -462,6 +462,7 @@ function item_post(&$a) {
 
                        // Send a notification email to the conversation owner, unless the owner is me and I wrote this item
                        if(($user['notify-flags'] & NOTIFY_COMMENT) && ($contact_record != $author)) {
+                               push_lang($user['language']);
                                require_once('bbcode.php');
                                $from = $author['name'];
 
@@ -517,6 +518,8 @@ function item_post(&$a) {
                                        $email_html_body_tpl,
                                        $email_text_body_tpl
                                );
+
+                               pop_lang();
                        }
                }
                else {
@@ -525,6 +528,7 @@ function item_post(&$a) {
                        // let me know if somebody did a wall-to-wall post on my profile
 
                        if(($user['notify-flags'] & NOTIFY_WALL) && ($contact_record != $author)) {
+                               push_lang($user['language']);
                                require_once('bbcode.php');
                                $from = $author['name'];
                                                        
@@ -578,6 +582,7 @@ function item_post(&$a) {
                                        $email_html_body_tpl,
                                        $email_text_body_tpl
                                );
+                               pop_lang();
                        }
                }
 
index 95bf60e3240a3fff7bc91de0c577ab330d382af1..78dc75f77d815cd50f74d9f4b37d498e36c7dec8 100644 (file)
@@ -3,6 +3,8 @@
 if(! function_exists('register_post')) {
 function register_post(&$a) {
 
+       global $lang;
+
        $verified = 0;
        $blocked  = 1;
 
@@ -350,12 +352,22 @@ function register_post(&$a) {
                }
 
                $hash = random_string();
-               $r = q("INSERT INTO `register` ( `hash`, `created`, `uid`, `password` ) VALUES ( '%s', '%s', %d, '%s' ) ",
+               $r = q("INSERT INTO `register` ( `hash`, `created`, `uid`, `password`, `language` ) VALUES ( '%s', '%s', %d, '%s', '%s' ) ",
                        dbesc($hash),
                        dbesc(datetime_convert()),
                        intval($newuid),
-                       dbesc($new_password)
+                       dbesc($new_password),
+                       dbesc($lang)
+               );
+
+               $r = q("SELECT `language` FROM `user` WHERE `email` = '%s' LIMIT 1",
+                       dbesc($a->config['admin_email'])
                );
+               if(count($r))
+                       push_lang($r[0]['language']);
+               else
+                       push_lang('en');
+
 
                $email_tpl = get_intltext_template("register_verify_eml.tpl");
                $email_tpl = replace_macros($email_tpl, array(
@@ -373,6 +385,9 @@ function register_post(&$a) {
                                'From: ' . t('Administrator') . '@' . $_SERVER['SERVER_NAME'] . "\n"
                                . 'Content-type: text/plain; charset=UTF-8' . "\n"
                                . 'Content-transfer-encoding: 8bit' );
+
+               pop_lang();
+
                if($res) {
                        info( t('Your registration is pending approval by the site owner.') . EOL ) ;
                        goaway($a->get_baseurl());
index 2563a58d146071ce8dc5e7510ffeda06267df306..9873f1094c743b0399098b26d7199b32b40bbca2 100644 (file)
@@ -4,6 +4,8 @@
 
 function regmod_content(&$a) {
 
+       global $lang;
+
        $_SESSION['return_url'] = $a->cmd;
 
        if(! local_user()) {
@@ -79,6 +81,8 @@ function regmod_content(&$a) {
                                proc_run('php',"include/directory.php","$url");
                }
 
+               push_lang($register[0]['language']);
+
                $email_tpl = get_intltext_template("register_open_eml.tpl");
                $email_tpl = replace_macros($email_tpl, array(
                                '$sitename' => $a->config['sitename'],
@@ -95,6 +99,8 @@ function regmod_content(&$a) {
                                . 'Content-type: text/plain; charset=UTF-8' . "\n"
                                . 'Content-transfer-encoding: 8bit' );
 
+               pop_lang();
+
                if($res) {
                        info( t('Account approved.') . EOL );
                        return;
index 541d599461b39c4cccc0f5e3ba7bddd2b6416e4d..488648791262a8e45d49748f79efaa1c62918ea7 100644 (file)
@@ -480,3 +480,6 @@ function update_1053() {
        q("ALTER TABLE `item` ADD `extid` CHAR( 255 ) NOT NULL AFTER `parent-uri` , ADD INDEX ( `extid` ) ");
 }
 
+function update_1054() {
+       q("ALTER TABLE `register` ADD `language` CHAR( 16 ) NOT NULL AFTER `password` ");
+}