]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - lib/common.php
Added option to add disable attr to common_checkbox()
[quix0rs-gnu-social.git] / lib / common.php
index 2625d08ef4652328320af618126ed99f563e2530..60c820ee6e7586da25bd67591aeba740db70cd88 100644 (file)
 <?php
-/* 
+/*
  * Laconica - a distributed open-source microblogging tool
  * Copyright (C) 2008, Controlez-Vous, Inc.
- * 
+ *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU Affero General Public License as published by
  * the Free Software Foundation, either version 3 of the License, or
  * (at your option) any later version.
- * 
+ *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Affero General Public License for more details.
- * 
+ *
  * You should have received a copy of the GNU Affero General Public License
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-/* XXX: break up into separate modules (HTTP, HTML, user, files) */
+if (!defined('LACONICA')) { exit(1); }
 
-
-if (!defined('LACONICA')) { exit(1) }
+define('LACONICA_VERSION', '0.6.0');
 
 define('AVATAR_PROFILE_SIZE', 96);
 define('AVATAR_STREAM_SIZE', 48);
 define('AVATAR_MINI_SIZE', 24);
 define('MAX_AVATAR_SIZE', 256 * 1024);
 
-# global configuration object
-
-// default configuration, overwritten in config.php
-
-$config =
-  array('site' =>
-               array('name' => 'Just another µB'),
-               'avatar' =>
-               array('directory' => INSTALLDIR . 'files',
-                         'path' => '/files'),
-               'dsn' =>
-               array('phptype' => 'mysql',
-                         'username' => 'stoica',
-                         'password' => 'apasswd',
-                         'hostspec' => 'localhost',
-                         'database' => 'thedb')
-               'dboptions' =>
-               array('debug' => 2,
-                         'portability' => DB_PORTABILITY_ALL));
-
-require_once(INSTALLDIR . '/config.php');
-require_once('DB.php');
-
-# Show a server error
-
-function common_server_error($msg) {
-       header('Status: 500 Server Error');
-       header('Content-type: text/plain');
-
-       print $msg;
-       exit();
-}
-
-# Show a user error
-function common_user_error($msg, $code=200) {
-       common_show_header('Error');
-       common_element('div', array('class' => 'error'), $msg);
-       common_show_footer();
-}
+define('NOTICES_PER_PAGE', 20);
 
-# Start an HTML element
-function common_element_start($tag, $attrs=NULL) {
-       print "<$tag";
-       if (is_array($attrs)) {
-               foreach ($attrs as $name => $value) {
-                       print " $name='$value'";
-               }
-       } else if (is_string($attrs)) {
-               print " class='$attrs'";
-       }
-       print '>';
-}
+define_syslog_variables();
 
-function common_element_end($tag) {
-       print "</$tag>";
-}
-
-function common_element($tag, $attrs=NULL, $content=NULL) {
-    common_element_start($tag, $attrs);
-       if ($content) print htmlspecialchars($content);
-       common_element_end($tag);
-}
-
-function common_show_header($pagetitle) {
-       global $config;
-       common_element_start('html');
-       common_element_start('head');
-       common_element('title', NULL, 
-                                  $pagetitle . " - " . $config['site']['name']);
-       common_element_end('head');
-       common_element_start('body');
-       common_head_menu();
-}
-
-function common_show_footer() {
-       common_foot_menu();
-       common_element_end('body');
-       common_element_end('html');
-}
-
-function common_head_menu() {
-       $user = common_current_user();
-       common_element_start('ul', 'headmenu');
-       common_menu_item(common_local_url('doc', array('title' => 'help')),
-                                        _t('Help'));
-       if ($user) {
-               common_menu_item(common_local_url('all', array('nickname' => 
-                                                                                                          $user->nickname)),
-                                                _t('Home'));
-               common_menu_item(common_local_url('showstream', array('nickname' =>
-                                                                                                                         $user->nickname)),
-                                                _t('Profile'),  $user->fullname || $user->nickname);
-               common_menu_item(common_local_url('profilesettings'),
-                                                _t('Settings'));
-               common_menu_item(common_local_url('logout'),
-                                                _t('Logout'));
-       } else {
-               common_menu_item(common_local_url('login'),
-                                                _t('Login'));
-               common_menu_item(common_local_url('register'),
-                                                _t('Register'));
-       }
-       common_element_end('ul');
-}
-
-function common_foot_menu() {
-       common_element_start('ul', 'footmenu');
-       common_menu_item(common_local_url('doc', array('title' => 'about')),
-                                        _t('About'));
-       common_menu_item(common_local_url('doc', array('title' => 'help')),
-                                        _t('Help'));
-       common_menu_item(common_local_url('doc', array('title' => 'privacy')),
-                                        _t('Privacy'));
-}
-
-function common_menu_item($url, $text, $title=NULL) {
-       $attrs['href'] = $url;
-       if ($title) {
-               $attrs['title'] = $title;
-       }
-       common_element_start('li', 'menuitem');
-       common_element('a', $attrs, $text);
-       common_element_end('li');
-}
-
-function common_input($id, $label) {
-       common_element('label', array('for' => $id), $label);
-       common_element('input', array('name' => $id,
-                                                                 'type' => 'text',
-                                                                 'id' => $id));
-}
+# append our extlib dir as the last-resort place to find libs
 
-# salted, hashed passwords are stored in the DB
-
-function common_munge_password($id, $password) {
-       return md5($id . $password);
-}
-
-# check if a username exists and has matching password
-function common_check_user($nickname, $password) {
-       $user = User::staticGet('nickname', $nickname);
-       if (is_null($user)) {
-               return false;
-       } else {
-               return (0 == strcmp(common_munge_password($password, $user->id), 
-                                                       $user->password));
-       }
-}
-
-# is the current user logged in?
-function common_logged_in() {
-       return (!is_null(common_current_user()));
-}
-
-function common_have_session() {
-       return (0 != strcmp(session_id(), ''));
-}
-
-function common_ensure_session() {
-       if (!common_have_session()) {
-               @session_start();
-       }
-}
-
-function common_set_user($nickname) {
-       if (is_null($nickname) && common_have_session()) {
-               unset($_SESSION['userid']);
-               return true;
-       } else {
-               $user = User::staticGet('nickname', $nickname);
-               if ($user) {
-                       common_ensure_session();
-                       $_SESSION['userid'] = $user->id;
-                       return true;
-               } else {
-                       return false;
-               }
-       }
-       return false;
-}
-
-# who is the current user?
-function common_current_user() {
-       static $user = NULL; # FIXME: global memcached
-       if (is_null($user)) {
-               if (common_have_session()) {
-                       $id = $_SESSION['userid'];
-                       if ($id) {
-                               $user = User::staticGet($id);
-                       }
-               }
-       }
-       return $user;
-}
-
-# get canonical version of nickname for comparison
-function common_canonical_nickname($nickname) {
-       # XXX: UTF-8 canonicalization (like combining chars)
-       return strtolower($nickname);
-}
-
-function common_render_content($text) {
-       # XXX: @ messages
-       # XXX: # tags
-       # XXX: machine tags
-       return htmlspecialchars($text);
-}
-
-// where should the avatar go for this user?
-
-function common_avatar_filename($user, $extension, $size=NULL) {
-       global $config;
+set_include_path(get_include_path() . PATH_SEPARATOR . INSTALLDIR . '/extlib/');
+                                
+# global configuration object
 
-       if ($size) {
-               return $user->id . '-' . $size . $extension;
-       } else {
-               return $user->id . '-original' . $extension;
-       }
-}
+require_once('PEAR.php');
+require_once('DB/DataObject.php');
+require_once('DB/DataObject/Cast.php'); # for dates
 
-function common_avatar_path($filename) {
-       global $config;
-       return $config['avatar']['directory'] . '/' . $filename;
-}
+require_once(INSTALLDIR.'/lib/language.php');
 
-function common_avatar_url($filename) {
-       global $config;
-       return $config['avatar']['path'] . '/' . $filename;
-}
+// default configuration, overwritten in config.php
 
-function common_local_url($action, $args) {
-       /* XXX: pretty URLs */
-       $extra = '';
-       foreach ($args as $key => $value) {
-               $extra .= "&${key}=${value}";
-       }
-       /* XXX: correct path */
-       return "/index.php?action=${action}${extra}";
+$config =
+  array('site' =>
+               array('name' => 'Just another Laconica microblog',
+                         'server' => 'localhost',
+                         'theme' => 'default',
+                         'path' => '/',
+                         'logfile' => NULL,
+                         'fancy' => false,
+                         'locale_path' => INSTALLDIR.'/locale',
+                         'language' => 'en_US',
+                         'languages' => get_all_languages(),
+                     'email' =>
+                     array_key_exists('SERVER_ADMIN', $_SERVER) ? $_SERVER['SERVER_ADMIN'] : NULL,
+                         'broughtby' => NULL,
+                         'timezone' => 'UTC',
+                         'broughtbyurl' => NULL,
+                         'closed' => false),
+               'syslog' =>
+               array('appname' => 'laconica', # for syslog
+                         'priority' => 'debug'), # XXX: currently ignored
+               'queue' =>
+               array('enabled' => false),
+               'license' =>
+               array('url' => 'http://creativecommons.org/licenses/by/3.0/',
+                         'title' => 'Creative Commons Attribution 3.0',
+                         'image' => 'http://i.creativecommons.org/l/by/3.0/88x31.png'),
+               'mail' =>
+               array('backend' => 'mail',
+                         'params' => NULL),
+               'nickname' =>
+               array('blacklist' => array()),
+               'avatar' =>
+               array('server' => NULL),
+               'public' =>
+               array('localonly' => true),
+               'theme' =>
+               array('server' => NULL),
+               'xmpp' =>
+               array('enabled' => false,
+                         'server' => 'INVALID SERVER',
+                         'port' => 5222,
+                         'user' => 'update',
+                         'encryption' => true,
+                         'resource' => 'uniquename',
+                         'password' => 'blahblahblah',
+                         'host' => NULL, # only set if != server
+                         'debug' => false, # print extra debug info
+                         'public' => array()), # JIDs of users who want to receive the public stream
+               'tag' =>
+               array('dropoff' => 864000.0),
+               'daemon' =>
+               array('piddir' => '/var/run',
+                         'user' => false,
+                         'group' => false),
+               'integration' =>
+               array('source' => 'Laconica'), # source attribute for Twitter
+               'memcached' => 
+               array('enabled' => false,
+                         'server' => 'localhost',
+                         'port' => 11211)
+               );
+
+$config['db'] = &PEAR::getStaticProperty('DB_DataObject','options');
+
+$config['db'] =
+  array('database' => 'YOU HAVE TO SET THIS IN config.php',
+           'schema_location' => INSTALLDIR . '/classes',
+               'class_location' => INSTALLDIR . '/classes',
+               'require_prefix' => 'classes/',
+               'class_prefix' => '',
+               'mirror' => NULL,
+        'db_driver' => 'DB', # XXX: JanRain libs only work with DB
+               'quote_identifiers' => false,
+               'type' => 'mysql' );
+
+if (function_exists('date_default_timezone_set')) {
+       /* Work internally in UTC */
+       date_default_timezone_set('UTC');
+}
+
+require_once(INSTALLDIR.'/config.php');
+
+require_once('Validate.php');
+require_once('markdown.php');
+
+require_once(INSTALLDIR.'/lib/util.php');
+require_once(INSTALLDIR.'/lib/action.php');
+require_once(INSTALLDIR.'/lib/theme.php');
+require_once(INSTALLDIR.'/lib/mail.php');
+require_once(INSTALLDIR.'/lib/subs.php');
+
+function __autoload($class) {
+       if ($class == 'OAuthRequest') {
+               require_once('OAuth.php');
+       } else if (file_exists(INSTALLDIR.'/classes/' . $class . '.php')) {
+        require_once(INSTALLDIR.'/classes/' . $class . '.php');
+    }
 }
-
-// XXX: set up gettext
-
-function _t($str) { $str }