aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--boot.php15
-rw-r--r--include/Contact.php21
-rw-r--r--index.php6
-rw-r--r--util/README15
4 files changed, 52 insertions, 5 deletions
diff --git a/boot.php b/boot.php
index 7bf3e75a6..194ee6a01 100644
--- a/boot.php
+++ b/boot.php
@@ -169,6 +169,15 @@ class App {
}}
+// 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;
+}};
+
// Multi-purpose function to check variable state.
// Usage: x($var) or $x($array,'key')
@@ -269,19 +278,21 @@ function replace_macros($s,$r) {
// load string tranlsation table for alternate language
-// not yet implemented
if(! function_exists('load_translation_table')) {
function load_translation_table($lang) {
global $a;
+ if(file_exists("view/$lang/strings.php"))
+ include("view/$lang/strings.php");
}}
// translate string if translation exists
if(! function_exists('t')) {
function t($s) {
- global $a;
+
+ $a = get_app();
if($a->strings[$s])
return $a->strings[$s];
diff --git a/include/Contact.php b/include/Contact.php
index c59038e5d..a915ae0b4 100644
--- a/include/Contact.php
+++ b/include/Contact.php
@@ -1,6 +1,27 @@
<?php
+// Included here for completeness, but this is a very dangerous operation.
+// It is the caller's responsibility to confirm the requestor's intent and
+// authorisation to do this.
+
+function user_remove($uid) {
+ q("DELETE FROM `contact` WHERE `uid` = %d", intval($uid));
+ q("DELETE FROM `group` WHERE `uid` = %d", intval($uid));
+ q("DELETE FROM `group_member` WHERE `uid` = %d", intval($uid));
+ q("DELETE FROM `intro` WHERE `uid` = %d", intval($uid));
+ q("DELETE FROM `item` WHERE `uid` = %d", intval($uid));
+ q("DELETE FROM `mail` WHERE `uid` = %d", intval($uid));
+ q("DELETE FROM `photo` WHERE `uid` = %d", intval($uid));
+ q("DELETE FROM `profile` WHERE `uid` = %d", intval($uid));
+ q("DELETE FROM `profile_check` WHERE `uid` = %d", intval($uid));
+ q("DELETE FROM `user` WHERE `uid` = %d", intval($uid));
+ if($uid == get_uid()) {
+ unset($_SESSION['authenticated']);
+ unset($_SESSION['uid']);
+ killme();
+ }
+}
function contact_remove($id) {
diff --git a/index.php b/index.php
index f86fbe138..ce2d32316 100644
--- a/index.php
+++ b/index.php
@@ -6,11 +6,15 @@ $a = new App;
$debug_text = ''; // Debugging functions should never be used on production systems.
-// Setup the database.
+// Setup the language and database.
$install = ((file_exists('.htconfig.php')) ? false : true);
@include(".htconfig.php");
+
+if(x($lang))
+ 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);
diff --git a/util/README b/util/README
index ee164d103..5dca64265 100644
--- a/util/README
+++ b/util/README
@@ -10,7 +10,11 @@ tinymce, simplepie, and the HTML parsers.
In order for extract to do its job, every use of the t() translation function
must be preceded by one space. The string also can not contain parentheses. If
-parens are required in a string, please use hex escapes.
+parens are required in a string which requires translation, please use hex escapes.
+
+\x28 = (
+\x29 = )
+
strings.php - a recent run of the strings program. This provides output that
is suitable for direct inclusion in the program once the app has been
@@ -19,7 +23,14 @@ initialised.
There are also translatable strings in the various files in the view
directory. By setting $lang = 'something' in .htconfig.php, the application
will search for view/something/filename prior to the English version in
-view/filename when loading templates and view files.
+view/filename when loading templates and view files. The translated string table
+should be placed in view/$lang/strings.php for automatic inclusion.
+
+You are not restricted to using known languages. You may also use this to
+translate the software into "pirate", "surfer" or merely to replace certain
+text which you don't care for.
+
+