diff --git a/boot.php b/boot.php
index abc7494931..09aabf5d87 100644
--- a/boot.php
+++ b/boot.php
@@ -9,9 +9,9 @@ require_once('include/nav.php');
require_once('include/cache.php');
define ( 'FRIENDICA_PLATFORM', 'Friendica');
-define ( 'FRIENDICA_VERSION', '2.3.1308' );
+define ( 'FRIENDICA_VERSION', '2.3.1309' );
define ( 'DFRN_PROTOCOL_VERSION', '2.23' );
-define ( 'DB_UPDATE_VERSION', 1137 );
+define ( 'DB_UPDATE_VERSION', 1138 );
define ( 'EOL', "
\r\n" );
define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' );
@@ -657,32 +657,32 @@ if(! function_exists('check_config')) {
// call the specific update
- global $db;
- $db->excep(TRUE);
- try {
- $db->beginTransaction();
+// 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());
+// $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);
+// 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);
diff --git a/database.sql b/database.sql
index 010c63bb24..eadb53cc64 100644
--- a/database.sql
+++ b/database.sql
@@ -1,19 +1,77 @@
-- phpMyAdmin SQL Dump
--- version 2.11.9.4
+-- version 3.3.10.4
-- http://www.phpmyadmin.net
--
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
-
-/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
-/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
-/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
-/*!40101 SET NAMES utf8 */;
+-- --------------------------------------------------------
--
+-- Table structure for table `addon`
--
+CREATE TABLE IF NOT EXISTS `addon` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `name` char(255) NOT NULL,
+ `version` char(255) NOT NULL,
+ `installed` tinyint(1) NOT NULL DEFAULT '0',
+ `timestamp` bigint(20) NOT NULL DEFAULT '0',
+ `plugin_admin` tinyint(1) NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `attach`
+--
+
+CREATE TABLE IF NOT EXISTS `attach` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `uid` int(11) NOT NULL,
+ `hash` char(64) NOT NULL,
+ `filename` char(255) NOT NULL,
+ `filetype` char(64) NOT NULL,
+ `filesize` int(11) NOT NULL,
+ `data` longblob NOT NULL,
+ `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ `edited` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ `allow_cid` mediumtext NOT NULL,
+ `allow_gid` mediumtext NOT NULL,
+ `deny_cid` mediumtext NOT NULL,
+ `deny_gid` mediumtext NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `auth_codes`
+--
+
+CREATE TABLE IF NOT EXISTS `auth_codes` (
+ `id` varchar(40) NOT NULL,
+ `client_id` varchar(20) NOT NULL,
+ `redirect_uri` varchar(200) NOT NULL,
+ `expires` int(11) NOT NULL,
+ `scope` varchar(250) NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `cache`
+--
+
+CREATE TABLE IF NOT EXISTS `cache` (
+ `k` char(255) NOT NULL,
+ `v` text NOT NULL,
+ `updated` datetime NOT NULL,
+ PRIMARY KEY (`k`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
-- --------------------------------------------------------
--
@@ -32,17 +90,36 @@ CREATE TABLE IF NOT EXISTS `challenge` (
-- --------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `config` (
- `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
- `cat` char(255) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL,
- `k` char(255) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL,
- `v` text NOT NULL,
- PRIMARY KEY (`id`),
- UNIQUE KEY `access`(`cat`,`k`)
+--
+-- Table structure for table `clients`
+--
+
+CREATE TABLE IF NOT EXISTS `clients` (
+ `client_id` varchar(20) NOT NULL,
+ `pw` varchar(20) NOT NULL,
+ `redirect_uri` varchar(200) NOT NULL,
+ `name` text,
+ `icon` text,
+ `uid` int(11) NOT NULL DEFAULT '0',
+ PRIMARY KEY (`client_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
+--
+-- Table structure for table `config`
+--
+CREATE TABLE IF NOT EXISTS `config` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `cat` char(255) CHARACTER SET ascii NOT NULL,
+ `k` char(255) CHARACTER SET ascii NOT NULL,
+ `v` text NOT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `access` (`cat`,`k`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
--
-- Table structure for table `contact`
@@ -52,7 +129,7 @@ CREATE TABLE IF NOT EXISTS `contact` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`uid` int(11) NOT NULL COMMENT 'owner uid',
`created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
- `self` tinyint(1) NOT NULL DEFAULT '0',
+ `self` tinyint(1) NOT NULL DEFAULT '0' COMMENT 'boolean 1 == info for local UID, primarily name and photo to use in item displays.',
`remote_self` tinyint(1) NOT NULL DEFAULT '0',
`rel` tinyint(1) NOT NULL DEFAULT '0',
`duplex` tinyint(1) NOT NULL DEFAULT '0',
@@ -60,7 +137,7 @@ CREATE TABLE IF NOT EXISTS `contact` (
`name` char(255) NOT NULL,
`nick` char(255) NOT NULL,
`attag` char(255) NOT NULL,
- `photo` text NOT NULL,
+ `photo` text NOT NULL COMMENT 'remote photo URL initially until approved',
`thumb` text NOT NULL,
`micro` text NOT NULL,
`site-pubkey` text NOT NULL,
@@ -96,32 +173,219 @@ CREATE TABLE IF NOT EXISTS `contact` (
`forum` tinyint(1) NOT NULL DEFAULT '0',
`hidden` tinyint(1) NOT NULL DEFAULT '0',
`pending` tinyint(1) NOT NULL DEFAULT '1',
- `rating` tinyint(1) NOT NULL DEFAULT '0',
- `reason` text NOT NULL,
+ `rating` tinyint(1) NOT NULL DEFAULT '0' COMMENT '0-5 reputation, 0 unknown, 1 call police, 5 inscrutable',
+ `reason` text NOT NULL COMMENT 'why a rating was given - will help friends decide to make friends or not',
`closeness` tinyint(2) NOT NULL DEFAULT '99',
`info` mediumtext NOT NULL,
- `profile-id` int(11) NOT NULL DEFAULT '0',
- `bdyear` CHAR( 4 ) NOT NULL COMMENT 'birthday notify flag',
+ `profile-id` int(11) NOT NULL DEFAULT '0' COMMENT 'which profile to display - 0 is public default',
+ `bdyear` char(4) NOT NULL COMMENT 'birthday notify flag',
`bd` date NOT NULL,
PRIMARY KEY (`id`),
KEY `uid` (`uid`),
KEY `self` (`self`),
- KEY `network` (`network`),
- KEY `name` (`name`),
- KEY `nick` (`nick`),
- KEY `attag` (`attag`),
- KEY `url` (`url`),
- KEY `nurl` (`nurl`),
- KEY `addr` (`addr`),
- KEY `batch` (`batch`),
KEY `issued-id` (`issued-id`),
KEY `dfrn-id` (`dfrn-id`),
KEY `blocked` (`blocked`),
KEY `readonly` (`readonly`),
- KEY `forum` (`forum`),
- KEY `hidden` (`hidden`),
+ KEY `network` (`network`),
+ KEY `name` (`name`),
+ KEY `nick` (`nick`),
+ KEY `attag` (`attag`),
+ KEY `addr` (`addr`),
+ KEY `url` (`url`),
+ KEY `batch` (`batch`),
+ KEY `nurl` (`nurl`),
KEY `pending` (`pending`),
- KEY `closeness` (`closeness`)
+ KEY `hidden` (`hidden`),
+ KEY `forum` (`forum`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `conv`
+--
+
+CREATE TABLE IF NOT EXISTS `conv` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `guid` char(64) NOT NULL,
+ `recips` mediumtext NOT NULL,
+ `uid` int(11) NOT NULL,
+ `creator` char(255) NOT NULL,
+ `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ `updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ `subject` mediumtext NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `created` (`created`),
+ KEY `updated` (`updated`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `deliverq`
+--
+
+CREATE TABLE IF NOT EXISTS `deliverq` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `cmd` char(32) NOT NULL,
+ `item` int(11) NOT NULL,
+ `contact` int(11) NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `event`
+--
+
+CREATE TABLE IF NOT EXISTS `event` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `uid` int(11) NOT NULL,
+ `cid` int(11) NOT NULL,
+ `uri` char(255) NOT NULL,
+ `created` datetime NOT NULL,
+ `edited` datetime NOT NULL,
+ `start` datetime NOT NULL,
+ `finish` datetime NOT NULL,
+ `desc` text NOT NULL,
+ `location` text NOT NULL,
+ `type` char(255) NOT NULL,
+ `nofinish` tinyint(1) NOT NULL DEFAULT '0',
+ `adjust` tinyint(1) NOT NULL DEFAULT '1',
+ `allow_cid` mediumtext NOT NULL,
+ `allow_gid` mediumtext NOT NULL,
+ `deny_cid` mediumtext NOT NULL,
+ `deny_gid` mediumtext NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `fcontact`
+--
+
+CREATE TABLE IF NOT EXISTS `fcontact` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `url` char(255) NOT NULL,
+ `name` char(255) NOT NULL,
+ `photo` char(255) NOT NULL,
+ `request` char(255) NOT NULL,
+ `nick` char(255) NOT NULL,
+ `addr` char(255) NOT NULL,
+ `batch` char(255) NOT NULL,
+ `notify` char(255) NOT NULL,
+ `poll` char(255) NOT NULL,
+ `confirm` char(255) NOT NULL,
+ `priority` tinyint(1) NOT NULL,
+ `network` char(32) NOT NULL,
+ `alias` char(255) NOT NULL,
+ `pubkey` text NOT NULL,
+ `updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ PRIMARY KEY (`id`),
+ KEY `addr` (`addr`),
+ KEY `network` (`network`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `ffinder`
+--
+
+CREATE TABLE IF NOT EXISTS `ffinder` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `uid` int(10) unsigned NOT NULL,
+ `cid` int(10) unsigned NOT NULL,
+ `fid` int(10) unsigned NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `fserver`
+--
+
+CREATE TABLE IF NOT EXISTS `fserver` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `server` char(255) NOT NULL,
+ `posturl` char(255) NOT NULL,
+ `key` text NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `server` (`server`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `fsuggest`
+--
+
+CREATE TABLE IF NOT EXISTS `fsuggest` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `uid` int(11) NOT NULL,
+ `cid` int(11) NOT NULL,
+ `name` char(255) NOT NULL,
+ `url` char(255) NOT NULL,
+ `request` char(255) NOT NULL,
+ `photo` char(255) NOT NULL,
+ `note` text NOT NULL,
+ `created` datetime NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `gcign`
+--
+
+CREATE TABLE IF NOT EXISTS `gcign` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `uid` int(11) NOT NULL,
+ `gcid` int(11) NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `uid` (`uid`),
+ KEY `gcid` (`gcid`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `gcontact`
+--
+
+CREATE TABLE IF NOT EXISTS `gcontact` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `name` char(255) NOT NULL,
+ `url` char(255) NOT NULL,
+ `nurl` char(255) NOT NULL,
+ `photo` char(255) NOT NULL,
+ `connect` char(255) NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `nurl` (`nurl`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `glink`
+--
+
+CREATE TABLE IF NOT EXISTS `glink` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `cid` int(11) NOT NULL,
+ `uid` int(11) NOT NULL,
+ `gcid` int(11) NOT NULL,
+ `updated` datetime NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `cid` (`cid`),
+ KEY `uid` (`uid`),
+ KEY `gcid` (`gcid`),
+ KEY `updated` (`updated`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
@@ -155,6 +419,33 @@ CREATE TABLE IF NOT EXISTS `group_member` (
-- --------------------------------------------------------
+--
+-- Table structure for table `guid`
+--
+
+CREATE TABLE IF NOT EXISTS `guid` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `guid` char(64) NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `guid` (`guid`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `hook`
+--
+
+CREATE TABLE IF NOT EXISTS `hook` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `hook` char(255) NOT NULL,
+ `file` char(255) NOT NULL,
+ `function` char(255) NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
--
-- Table structure for table `intro`
--
@@ -183,18 +474,18 @@ CREATE TABLE IF NOT EXISTS `intro` (
CREATE TABLE IF NOT EXISTS `item` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`guid` char(64) NOT NULL,
- `uri` char(255) NOT NULL,
+ `uri` char(255) CHARACTER SET ascii NOT NULL,
`uid` int(10) unsigned NOT NULL DEFAULT '0',
`contact-id` int(10) unsigned NOT NULL DEFAULT '0',
`type` char(255) NOT NULL,
`wall` tinyint(1) NOT NULL DEFAULT '0',
`gravity` tinyint(1) NOT NULL DEFAULT '0',
`parent` int(10) unsigned NOT NULL DEFAULT '0',
- `parent-uri` char(255) NOT NULL,
+ `parent-uri` char(255) CHARACTER SET ascii NOT NULL,
`extid` char(255) NOT NULL,
`thr-parent` char(255) NOT NULL,
- `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
- `edited` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ `created` datetime NOT NULL,
+ `edited` datetime NOT NULL,
`commented` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`received` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`changed` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
@@ -213,9 +504,9 @@ CREATE TABLE IF NOT EXISTS `item` (
`target-type` char(255) NOT NULL,
`target` text NOT NULL,
`postopts` text NOT NULL,
- `plink` char(255) NOT NULL,
+ `plink` char(255) NOT NULL,
`resource-id` char(255) NOT NULL,
- `event-id` int(10) unsigned NOT NULL,
+ `event-id` int(11) NOT NULL,
`tag` mediumtext NOT NULL,
`attach` mediumtext NOT NULL,
`inform` mediumtext NOT NULL,
@@ -239,42 +530,59 @@ CREATE TABLE IF NOT EXISTS `item` (
`forum_mode` tinyint(1) NOT NULL DEFAULT '0',
`last-child` tinyint(1) unsigned NOT NULL DEFAULT '1',
PRIMARY KEY (`id`),
- KEY `guid` (`guid`),
KEY `uri` (`uri`),
KEY `uid` (`uid`),
KEY `contact-id` (`contact-id`),
KEY `type` (`type`),
KEY `parent` (`parent`),
KEY `parent-uri` (`parent-uri`),
- KEY `extid` (`extid`),
KEY `created` (`created`),
KEY `edited` (`edited`),
- KEY `received` (`received`),
- KEY `moderated` (`moderated`),
KEY `visible` (`visible`),
- KEY `spam` (`spam`),
- KEY `starred` (`starred`),
- KEY `bookmark` (`bookmark`),
KEY `deleted` (`deleted`),
- KEY `origin` (`origin`),
- KEY `forum_mode` (`forum_mode`),
KEY `last-child` (`last-child`),
KEY `unseen` (`unseen`),
+ KEY `extid` (`extid`),
+ KEY `received` (`received`),
+ KEY `starred` (`starred`),
+ KEY `guid` (`guid`),
+ KEY `origin` (`origin`),
KEY `wall` (`wall`),
- KEY `author-name` (`author-name`),
+ KEY `forum_mode` (`forum_mode`),
KEY `author-link` (`author-link`),
+ KEY `bookmark` (`bookmark`),
+ KEY `moderated` (`moderated`),
+ KEY `spam` (`spam`),
+ KEY `author-name` (`author-name`),
FULLTEXT KEY `title` (`title`),
FULLTEXT KEY `body` (`body`),
- FULLTEXT KEY `tag` (`tag`),
- FULLTEXT KEY `file` (`file`),
FULLTEXT KEY `allow_cid` (`allow_cid`),
FULLTEXT KEY `allow_gid` (`allow_gid`),
FULLTEXT KEY `deny_cid` (`deny_cid`),
- FULLTEXT KEY `deny_gid` (`deny_gid`)
+ FULLTEXT KEY `deny_gid` (`deny_gid`),
+ FULLTEXT KEY `tag` (`tag`),
+ FULLTEXT KEY `file` (`file`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
+--
+-- Table structure for table `item_id`
+--
+
+CREATE TABLE IF NOT EXISTS `item_id` (
+ `iid` int(11) NOT NULL,
+ `uid` int(11) NOT NULL,
+ `sid` char(255) NOT NULL,
+ `service` char(255) NOT NULL,
+ PRIMARY KEY (`iid`),
+ KEY `uid` (`uid`),
+ KEY `sid` (`sid`),
+ KEY `service` (`service`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
--
-- Table structure for table `mail`
--
@@ -287,26 +595,130 @@ CREATE TABLE IF NOT EXISTS `mail` (
`from-photo` char(255) NOT NULL,
`from-url` char(255) NOT NULL,
`contact-id` char(255) NOT NULL,
- `convid` int(10) unsigned NOT NULL,
+ `convid` int(11) NOT NULL,
`title` char(255) NOT NULL,
`body` mediumtext NOT NULL,
- `seen` tinyint(1) NOT NULL DEFAULT '0',
+ `seen` tinyint(1) NOT NULL,
`reply` tinyint(1) NOT NULL DEFAULT '0',
- `replied` tinyint(1) NOT NULL DEFAULT '0',
+ `replied` tinyint(1) NOT NULL,
`unknown` tinyint(1) NOT NULL DEFAULT '0',
`uri` char(255) NOT NULL,
`parent-uri` char(255) NOT NULL,
`created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`id`),
+ KEY `reply` (`reply`),
KEY `uid` (`uid`),
KEY `guid` (`guid`),
- KEY `convid` (`convid`),
- KEY `reply` (`reply`),
- KEY `unknown` (`unknown`),
+ KEY `seen` (`seen`),
KEY `uri` (`uri`),
KEY `parent-uri` (`parent-uri`),
- KEY `created` (`created`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+ KEY `created` (`created`),
+ KEY `convid` (`convid`),
+ KEY `unknown` (`unknown`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `mailacct`
+--
+
+CREATE TABLE IF NOT EXISTS `mailacct` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `uid` int(11) NOT NULL,
+ `server` char(255) NOT NULL,
+ `port` int(11) NOT NULL,
+ `ssltype` char(16) NOT NULL,
+ `mailbox` char(255) NOT NULL,
+ `user` char(255) NOT NULL,
+ `pass` text NOT NULL,
+ `action` int(11) NOT NULL,
+ `movetofolder` char(255) NOT NULL,
+ `reply_to` char(255) NOT NULL,
+ `pubmail` tinyint(1) NOT NULL DEFAULT '0',
+ `last_check` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `manage`
+--
+
+CREATE TABLE IF NOT EXISTS `manage` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `uid` int(11) NOT NULL,
+ `mid` int(11) NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `uid` (`uid`),
+ KEY `mid` (`mid`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `notify`
+--
+
+CREATE TABLE IF NOT EXISTS `notify` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `hash` char(64) NOT NULL,
+ `name` char(255) NOT NULL,
+ `url` char(255) NOT NULL,
+ `photo` char(255) NOT NULL,
+ `date` datetime NOT NULL,
+ `msg` mediumtext NOT NULL,
+ `uid` int(11) NOT NULL,
+ `link` char(255) NOT NULL,
+ `parent` int(11) NOT NULL,
+ `seen` tinyint(1) NOT NULL DEFAULT '0',
+ `type` int(11) NOT NULL,
+ `verb` char(255) NOT NULL,
+ `otype` char(16) NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `type` (`type`),
+ KEY `seen` (`seen`),
+ KEY `uid` (`uid`),
+ KEY `date` (`date`),
+ KEY `hash` (`hash`),
+ KEY `parent` (`parent`),
+ KEY `link` (`link`),
+ KEY `otype` (`otype`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `notify-threads`
+--
+
+CREATE TABLE IF NOT EXISTS `notify-threads` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `notify-id` int(11) NOT NULL,
+ `master-parent-item` int(10) unsigned NOT NULL DEFAULT '0',
+ `parent-item` int(10) unsigned NOT NULL DEFAULT '0',
+ `receiver-uid` int(11) NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `master-parent-item` (`master-parent-item`),
+ KEY `receiver-uid` (`receiver-uid`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `pconfig`
+--
+
+CREATE TABLE IF NOT EXISTS `pconfig` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `uid` int(11) NOT NULL DEFAULT '0',
+ `cat` char(255) CHARACTER SET ascii NOT NULL,
+ `k` char(255) CHARACTER SET ascii NOT NULL,
+ `v` mediumtext NOT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `access` (`uid`,`cat`,`k`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
@@ -317,8 +729,8 @@ CREATE TABLE IF NOT EXISTS `mail` (
CREATE TABLE IF NOT EXISTS `photo` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`uid` int(10) unsigned NOT NULL,
- `contact-id` int(10) unsigned NOT NULL,
- `guid` char(64) NOT NULL,
+ `contact-id` int(10) unsigned NOT NULL DEFAULT '0',
+ `guid` char(64) NOT NULL,
`resource-id` char(255) NOT NULL,
`created` datetime NOT NULL,
`edited` datetime NOT NULL,
@@ -340,12 +752,49 @@ CREATE TABLE IF NOT EXISTS `photo` (
KEY `resource-id` (`resource-id`),
KEY `album` (`album`),
KEY `scale` (`scale`),
- KEY `profile` (`profile`),
- KEY `guid` (`guid`)
+ KEY `profile` (`profile`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
+--
+-- Table structure for table `poll`
+--
+
+CREATE TABLE IF NOT EXISTS `poll` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `uid` int(11) NOT NULL,
+ `q0` mediumtext NOT NULL,
+ `q1` mediumtext NOT NULL,
+ `q2` mediumtext NOT NULL,
+ `q3` mediumtext NOT NULL,
+ `q4` mediumtext NOT NULL,
+ `q5` mediumtext NOT NULL,
+ `q6` mediumtext NOT NULL,
+ `q7` mediumtext NOT NULL,
+ `q8` mediumtext NOT NULL,
+ `q9` mediumtext NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `uid` (`uid`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `poll_result`
+--
+
+CREATE TABLE IF NOT EXISTS `poll_result` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `poll_id` int(11) NOT NULL,
+ `choice` int(11) NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `poll_id` (`poll_id`),
+ KEY `choice` (`choice`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
--
-- Table structure for table `profile`
--
@@ -366,7 +815,6 @@ CREATE TABLE IF NOT EXISTS `profile` (
`country-name` char(255) NOT NULL,
`gender` char(32) NOT NULL,
`marital` char(255) NOT NULL,
- `showwith` tinyint(1) NOT NULL DEFAULT '0',
`with` text NOT NULL,
`sexual` char(255) NOT NULL,
`politic` char(255) NOT NULL,
@@ -403,7 +851,7 @@ CREATE TABLE IF NOT EXISTS `profile` (
CREATE TABLE IF NOT EXISTS `profile_check` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`uid` int(10) unsigned NOT NULL,
- `cid` int(10) unsigned NOT NULL,
+ `cid` int(10) unsigned NOT NULL DEFAULT '0',
`dfrn_id` char(255) NOT NULL,
`sec` char(255) NOT NULL,
`expire` int(11) NOT NULL,
@@ -412,6 +860,59 @@ CREATE TABLE IF NOT EXISTS `profile_check` (
-- --------------------------------------------------------
+--
+-- Table structure for table `queue`
+--
+
+CREATE TABLE IF NOT EXISTS `queue` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `cid` int(11) NOT NULL,
+ `network` char(32) NOT NULL,
+ `created` datetime NOT NULL,
+ `last` datetime NOT NULL,
+ `content` mediumtext NOT NULL,
+ `batch` tinyint(1) NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`),
+ KEY `cid` (`cid`),
+ KEY `network` (`network`),
+ KEY `created` (`created`),
+ KEY `last` (`last`),
+ KEY `batch` (`batch`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `register`
+--
+
+CREATE TABLE IF NOT EXISTS `register` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `hash` char(255) NOT NULL,
+ `created` datetime NOT NULL,
+ `uid` int(10) unsigned NOT NULL,
+ `password` char(255) NOT NULL,
+ `language` char(16) NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `search`
+--
+
+CREATE TABLE IF NOT EXISTS `search` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `uid` int(11) NOT NULL,
+ `term` char(255) NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `uid` (`uid`),
+ KEY `term` (`term`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
--
-- Table structure for table `session`
--
@@ -428,6 +929,58 @@ CREATE TABLE IF NOT EXISTS `session` (
-- --------------------------------------------------------
+--
+-- Table structure for table `sign`
+--
+
+CREATE TABLE IF NOT EXISTS `sign` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `iid` int(10) unsigned NOT NULL,
+ `signed_text` mediumtext NOT NULL,
+ `signature` text NOT NULL,
+ `signer` char(255) NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `iid` (`iid`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `spam`
+--
+
+CREATE TABLE IF NOT EXISTS `spam` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `uid` int(11) NOT NULL,
+ `spam` int(11) NOT NULL DEFAULT '0',
+ `ham` int(11) NOT NULL DEFAULT '0',
+ `term` char(255) NOT NULL,
+ `date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ PRIMARY KEY (`id`),
+ KEY `uid` (`uid`),
+ KEY `spam` (`spam`),
+ KEY `ham` (`ham`),
+ KEY `term` (`term`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `tokens`
+--
+
+CREATE TABLE IF NOT EXISTS `tokens` (
+ `id` varchar(40) NOT NULL,
+ `secret` text NOT NULL,
+ `client_id` varchar(20) NOT NULL,
+ `expires` int(11) NOT NULL,
+ `scope` varchar(200) NOT NULL,
+ `uid` int(11) NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
--
-- Table structure for table `user`
--
@@ -441,7 +994,7 @@ CREATE TABLE IF NOT EXISTS `user` (
`email` char(255) NOT NULL,
`openid` char(255) NOT NULL,
`timezone` char(128) NOT NULL,
- `language` char(32) NOT NULL DEFAULT 'en',
+ `language` char(16) NOT NULL DEFAULT 'en',
`register_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`login_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`default-location` char(255) NOT NULL,
@@ -451,427 +1004,47 @@ CREATE TABLE IF NOT EXISTS `user` (
`prvkey` text NOT NULL,
`spubkey` text NOT NULL,
`sprvkey` text NOT NULL,
- `verified` tinyint(1) unsigned NOT NULL DEFAULT '0',
- `blocked` tinyint(1) unsigned NOT NULL DEFAULT '0',
- `blockwall` tinyint(1) unsigned NOT NULL DEFAULT '0',
- `hidewall` tinyint(1) unsigned NOT NULL DEFAULT '0',
- `blocktags` tinyint(1) unsigned NOT NULL DEFAULT '0',
- `unkmail` tinyint(1) unsigned NOT NULL DEFAULT '0',
- `cntunkmail` int(11) unsigned NOT NULL DEFAULT '10',
- `notify-flags` int(11) unsigned NOT NULL DEFAULT '65535',
- `page-flags` int(11) unsigned NOT NULL DEFAULT '0',
+ `verified` tinyint(1) unsigned NOT NULL DEFAULT '0',
+ `blocked` tinyint(1) unsigned NOT NULL DEFAULT '0',
+ `blockwall` tinyint(1) NOT NULL DEFAULT '0',
+ `hidewall` tinyint(1) NOT NULL DEFAULT '0',
+ `blocktags` tinyint(1) NOT NULL DEFAULT '0',
+ `unkmail` tinyint(1) NOT NULL DEFAULT '0',
+ `cntunkmail` int(11) NOT NULL DEFAULT '10',
+ `notify-flags` int(11) unsigned NOT NULL DEFAULT '65535',
+ `page-flags` int(11) NOT NULL DEFAULT '0',
`prvnets` tinyint(1) NOT NULL DEFAULT '0',
`pwdreset` char(255) NOT NULL,
`maxreq` int(11) NOT NULL DEFAULT '10',
- `expire` int(11) unsigned NOT NULL DEFAULT '0',
- `account_expired` tinyint( 1 ) NOT NULL DEFAULT '0',
+ `expire` int(10) unsigned NOT NULL DEFAULT '0',
+ `account_expired` tinyint(1) NOT NULL DEFAULT '0',
`account_expires_on` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`expire_notification_sent` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
- `allow_cid` mediumtext NOT NULL,
+ `allow_cid` mediumtext NOT NULL,
`allow_gid` mediumtext NOT NULL,
- `deny_cid` mediumtext NOT NULL,
+ `deny_cid` mediumtext NOT NULL,
`deny_gid` mediumtext NOT NULL,
`openidserver` text NOT NULL,
- PRIMARY KEY (`uid`),
+ PRIMARY KEY (`uid`),
KEY `nickname` (`nickname`),
+ KEY `login_date` (`login_date`),
KEY `account_expired` (`account_expired`),
KEY `hidewall` (`hidewall`),
KEY `blockwall` (`blockwall`),
- KEY `unkmail` (`unkmail`),
- KEY `cntunkmail` (`cntunkmail`),
KEY `blocked` (`blocked`),
KEY `verified` (`verified`),
- KEY `login_date` (`login_date`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
-
-CREATE TABLE IF NOT EXISTS `register` (
- `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
- `hash` CHAR( 255 ) NOT NULL ,
- `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;
-
-
-CREATE TABLE IF NOT EXISTS `clients` (
-`client_id` VARCHAR( 20 ) NOT NULL ,
-`pw` VARCHAR( 20 ) NOT NULL ,
-`redirect_uri` VARCHAR( 200 ) NOT NULL ,
-`name` VARCHAR( 128 ) NULL DEFAULT NULL,
-`icon` VARCHAR( 255 ) NULL DEFAULT NULL,
-`uid` INT NOT NULL DEFAULT 0,
-PRIMARY KEY ( `client_id` )
-) ENGINE = MyISAM DEFAULT CHARSET=utf8;
-
-CREATE TABLE IF NOT EXISTS `tokens` (
-`id` VARCHAR( 40 ) NOT NULL ,
-`secret` VARCHAR( 40 ) NOT NULL ,
-`client_id` VARCHAR( 20 ) NOT NULL ,
-`expires` INT NOT NULL ,
-`scope` VARCHAR( 200 ) NOT NULL ,
-`uid` INT NOT NULL ,
-PRIMARY KEY ( `id` )
-) ENGINE = MyISAM DEFAULT CHARSET=utf8;
-
-CREATE TABLE IF NOT EXISTS `auth_codes` (
-`id` VARCHAR( 40 ) NOT NULL ,
-`client_id` VARCHAR( 20 ) NOT NULL ,
-`redirect_uri` VARCHAR( 200 ) NOT NULL ,
-`expires` INT NOT NULL ,
-`scope` VARCHAR( 250 ) NOT NULL ,
-PRIMARY KEY ( `id` )
-) ENGINE = MyISAM DEFAULT CHARSET=utf8;
-
-CREATE TABLE IF NOT EXISTS `queue` (
-`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
-`cid` INT NOT NULL ,
-`network` CHAR( 32 ) NOT NULL,
-`created` DATETIME NOT NULL ,
-`last` DATETIME NOT NULL ,
-`content` MEDIUMTEXT NOT NULL,
-`batch` TINYINT( 1 ) NOT NULL DEFAULT '0',
-INDEX ( `cid` ),
-INDEX ( `created` ),
-INDEX ( `last` ),
-INDEX ( `network` ),
-INDEX ( `batch` )
-) ENGINE = MyISAM DEFAULT CHARSET=utf8;
-
-CREATE TABLE IF NOT EXISTS `pconfig` (
-`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
-`uid` INT NOT NULL DEFAULT '0',
-`cat` CHAR( 255 ) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL ,
-`k` CHAR( 255 ) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL ,
-`v` MEDIUMTEXT NOT NULL,
-UNIQUE KEY `access`(`cat`, `k`)
-) ENGINE = MyISAM DEFAULT CHARSET=utf8;
-
-
-CREATE TABLE IF NOT EXISTS `hook` (
-`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
-`hook` CHAR( 255 ) NOT NULL ,
-`file` CHAR( 255 ) NOT NULL ,
-`function` CHAR( 255 ) NOT NULL
-) ENGINE = MyISAM DEFAULT CHARSET=utf8;
-
-
-CREATE TABLE IF NOT EXISTS `addon` (
-`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
-`name` CHAR( 255 ) NOT NULL ,
-`version` CHAR( 255 ) NOT NULL ,
-`installed` TINYINT( 1 ) NOT NULL DEFAULT '0' ,
-`timestamp` BIGINT NOT NULL DEFAULT '0' ,
-`plugin_admin` TINYINT( 1 ) NOT NULL DEFAULT '0'
-) ENGINE = MyISAM DEFAULT CHARSET=utf8;
-
-
-CREATE TABLE IF NOT EXISTS `event` (
-`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
-`uid` INT NOT NULL ,
-`cid` INT NOT NULL ,
-`uri` CHAR( 255 ) NOT NULL,
-`created` DATETIME NOT NULL ,
-`edited` DATETIME NOT NULL ,
-`start` DATETIME NOT NULL ,
-`finish` DATETIME NOT NULL ,
-`desc` TEXT NOT NULL ,
-`location` TEXT NOT NULL ,
-`type` CHAR( 255 ) NOT NULL ,
-`nofinish` TINYINT( 1 ) NOT NULL DEFAULT '0',
-`adjust` TINYINT( 1 ) NOT NULL DEFAULT '1',
-`allow_cid` MEDIUMTEXT NOT NULL ,
-`allow_gid` MEDIUMTEXT NOT NULL ,
-`deny_cid` MEDIUMTEXT NOT NULL ,
-`deny_gid` MEDIUMTEXT NOT NULL
-) ENGINE = MyISAM DEFAULT CHARSET=utf8;
-
-CREATE TABLE IF NOT EXISTS `cache` (
- `k` CHAR( 255 ) NOT NULL PRIMARY KEY ,
- `v` TEXT NOT NULL,
- `updated` DATETIME NOT NULL
-) ENGINE = MyISAM DEFAULT CHARSET=utf8;
-
-
-CREATE TABLE IF NOT EXISTS `fcontact` (
-`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
-`url` CHAR( 255 ) NOT NULL ,
-`name` CHAR( 255 ) NOT NULL ,
-`photo` CHAR( 255 ) NOT NULL ,
-`request` CHAR( 255 ) NOT NULL,
-`nick` CHAR( 255 ) NOT NULL ,
-`addr` CHAR( 255 ) NOT NULL ,
-`batch` CHAR( 255) NOT NULL,
-`notify` CHAR( 255 ) NOT NULL ,
-`poll` CHAR( 255 ) NOT NULL ,
-`confirm` CHAR( 255 ) NOT NULL ,
-`priority` TINYINT( 1 ) NOT NULL ,
-`network` CHAR( 32 ) NOT NULL ,
-`alias` CHAR( 255 ) NOT NULL ,
-`pubkey` TEXT NOT NULL ,
-`updated` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
-INDEX ( `addr` ),
-INDEX ( `network` )
-) ENGINE = MyISAM DEFAULT CHARSET=utf8;
-
-CREATE TABLE IF NOT EXISTS `ffinder` (
-`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
-`uid` INT UNSIGNED NOT NULL ,
-`cid` INT UNSIGNED NOT NULL ,
-`fid` INT UNSIGNED NOT NULL
-) ENGINE = MyISAM DEFAULT CHARSET=utf8;
-
-
-CREATE TABLE IF NOT EXISTS `fsuggest` (
-`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
-`uid` INT NOT NULL ,
-`cid` INT NOT NULL ,
-`name` CHAR( 255 ) NOT NULL ,
-`url` CHAR( 255 ) NOT NULL ,
-`request` CHAR( 255 ) NOT NULL,
-`photo` CHAR( 255 ) NOT NULL ,
-`note` TEXT NOT NULL ,
-`created` DATETIME NOT NULL
-) ENGINE = MyISAM DEFAULT CHARSET=utf8;
-
-
-CREATE TABLE IF NOT EXISTS `mailacct` (
-`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
-`uid` INT NOT NULL,
-`server` CHAR( 255 ) NOT NULL ,
-`port` INT NOT NULL,
-`ssltype` CHAR( 16 ) NOT NULL,
-`mailbox` CHAR( 255 ) NOT NULL,
-`user` CHAR( 255 ) NOT NULL ,
-`pass` TEXT NOT NULL ,
-`reply_to` CHAR( 255 ) NOT NULL ,
-`action` INT NOT NULL ,
-`movetofolder` CHAR(255) NOT NULL ,
-`pubmail` TINYINT(1) NOT NULL DEFAULT '0',
-`last_check` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00'
-) ENGINE = MyISAM DEFAULT CHARSET=utf8;
-
-CREATE TABLE IF NOT EXISTS `attach` (
-`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
-`uid` INT NOT NULL ,
-`hash` CHAR(64) NOT NULL,
-`filename` CHAR(255) NOT NULL,
-`filetype` CHAR( 64 ) NOT NULL ,
-`filesize` INT NOT NULL ,
-`data` LONGBLOB NOT NULL ,
-`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
-`edited` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
-`allow_cid` MEDIUMTEXT NOT NULL ,
-`allow_gid` MEDIUMTEXT NOT NULL ,
-`deny_cid` MEDIUMTEXT NOT NULL ,
-`deny_gid` MEDIUMTEXT NOT NULL
-) ENGINE = MyISAM DEFAULT CHARSET=utf8;
-
-CREATE TABLE IF NOT EXISTS `guid` (
-`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
-`guid` CHAR( 64 ) NOT NULL ,
-INDEX ( `guid` )
-) ENGINE = MyISAM DEFAULT CHARSET=utf8;
-
-
-CREATE TABLE IF NOT EXISTS `sign` (
-`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
-`iid` INT UNSIGNED NOT NULL ,
-`signed_text` MEDIUMTEXT NOT NULL ,
-`signature` TEXT NOT NULL ,
-`signer` CHAR( 255 ) NOT NULL ,
-INDEX ( `iid` )
-) ENGINE = MyISAM DEFAULT CHARSET=utf8;
-
-
-CREATE TABLE IF NOT EXISTS `deliverq` (
-`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
-`cmd` CHAR( 32 ) NOT NULL ,
-`item` INT NOT NULL ,
-`contact` INT NOT NULL
-) ENGINE = MyISAM DEFAULT CHARSET=utf8;
-
-CREATE TABLE IF NOT EXISTS `search` (
-`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
-`uid` INT NOT NULL ,
-`term` CHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
-INDEX ( `uid` ),
-INDEX ( `term` )
-) ENGINE = MyISAM DEFAULT CHARSET=utf8;
-
-CREATE TABLE IF NOT EXISTS `fserver` (
-`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
-`server` CHAR( 255 ) NOT NULL ,
-`posturl` CHAR( 255 ) NOT NULL ,
-`key` TEXT NOT NULL,
-INDEX ( `server` )
-) ENGINE = MyISAM DEFAULT CHARSET=utf8;
-
-CREATE TABLE IF NOT EXISTS `gcontact` (
-`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
-`name` CHAR( 255 ) NOT NULL ,
-`url` CHAR( 255 ) NOT NULL ,
-`nurl` CHAR( 255 ) NOT NULL ,
-`photo` CHAR( 255 ) NOT NULL,
-`connect` CHAR( 255 ) NOT NULL,
-INDEX ( `nurl` )
-) ENGINE = MyISAM DEFAULT CHARSET=utf8;
-
-CREATE TABLE IF NOT EXISTS `glink` (
-`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
-`cid` INT NOT NULL ,
-`uid` INT NOT NULL ,
-`gcid` INT NOT NULL,
-`updated` DATETIME NOT NULL,
-INDEX ( `cid` ),
-INDEX ( `uid` ),
-INDEX ( `gcid` ),
-INDEX ( `updated` )
-) ENGINE = MyISAM DEFAULT CHARSET=utf8;
-
-CREATE TABLE IF NOT EXISTS `gcign` (
-`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
-`uid` INT NOT NULL ,
-`gcid` INT NOT NULL,
-INDEX ( `uid` ),
-INDEX ( `gcid` )
-) ENGINE = MyISAM DEFAULT CHARSET=utf8;
-
-
-CREATE TABLE IF NOT EXISTS `conv` (
- `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
- `guid` CHAR( 64 ) NOT NULL ,
- `recips` MEDIUMTEXT NOT NULL ,
- `uid` INT NOT NULL,
- `creator` CHAR( 255 ) NOT NULL ,
- `created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
- `updated` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
- `subject` MEDIUMTEXT NOT NULL,
- INDEX ( `created` ),
- INDEX ( `updated` )
-) ENGINE = MyISAM DEFAULT CHARSET=utf8;
-
-
-CREATE TABLE IF NOT EXISTS `notify` (
-`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
-`hash` CHAR( 64 ) NOT NULL,
-`type` INT( 11 ) NOT NULL ,
-`name` CHAR( 255 ) NOT NULL ,
-`url` CHAR( 255 ) NOT NULL ,
-`photo` CHAR( 255 ) NOT NULL ,
-`date` DATETIME NOT NULL ,
-`msg` MEDIUMTEXT NOT NULL ,
-`uid` INT NOT NULL ,
-`link` CHAR( 255 ) NOT NULL ,
-`parent` INT( 11 ) NOT NULL,
-`seen` TINYINT( 1 ) NOT NULL DEFAULT '0',
-`verb` CHAR( 255 ) NOT NULL,
-`otype` CHAR( 16 ) NOT NULL,
-INDEX ( `hash` ),
-INDEX ( `type` ),
-INDEX ( `uid` ),
-INDEX ( `link` ),
-INDEX ( `parent` ),
-INDEX ( `seen` ),
-INDEX ( `date` ),
-INDEX ( `otype` )
-) ENGINE = MyISAM DEFAULT CHARSET=utf8;
-
-CREATE TABLE IF NOT EXISTS `item_id` (
-`iid` INT NOT NULL ,
-`uid` INT NOT NULL ,
-`face` CHAR( 255 ) NOT NULL ,
-`dspr` CHAR( 255 ) NOT NULL ,
-`twit` CHAR( 255 ) NOT NULL ,
-`stat` CHAR( 255 ) NOT NULL ,
-PRIMARY KEY ( `iid` ),
-INDEX ( `uid` ),
-INDEX ( `face` ),
-INDEX ( `dspr` ),
-INDEX ( `twit` ),
-INDEX ( `stat` )
-) ENGINE = MyISAM DEFAULT CHARSET=utf8;
-
-CREATE TABLE IF NOT EXISTS `manage` (
-`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
-`uid` INT NOT NULL ,
-`mid` INT NOT NULL,
-INDEX ( `uid` ),
-INDEX ( `mid` )
-) ENGINE = MyISAM DEFAULT CHARSET=utf8;
-
-CREATE TABLE IF NOT EXISTS `poll_result` (
-`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
-`poll_id` INT NOT NULL ,
-`choice` INT NOT NULL ,
-INDEX ( `poll_id` ),
-INDEX ( `choice` )
-) ENGINE = MyISAM DEFAULT CHARSET=utf8;
-
-
-CREATE TABLE IF NOT EXISTS `poll` (
-`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
-`uid` INT NOT NULL ,
-`q0` MEDIUMTEXT NOT NULL ,
-`q1` MEDIUMTEXT NOT NULL ,
-`q2` MEDIUMTEXT NOT NULL ,
-`q3` MEDIUMTEXT NOT NULL ,
-`q4` MEDIUMTEXT NOT NULL ,
-`q5` MEDIUMTEXT NOT NULL ,
-`q6` MEDIUMTEXT NOT NULL ,
-`q7` MEDIUMTEXT NOT NULL ,
-`q8` MEDIUMTEXT NOT NULL ,
-`q9` MEDIUMTEXT NOT NULL ,
-INDEX ( `uid` )
-) ENGINE = MyISAM DEFAULT CHARSET=utf8;
+ KEY `unkmail` (`unkmail`),
+ KEY `cntunkmail` (`cntunkmail`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+-- --------------------------------------------------------
--
--- Table structure for table `notify-threads`
+-- Table structure for table `userd`
--
--- notify-id: notify.id of the first notification of this thread
--- master-parent-item: item.id of the parent item
--- parent-item: item.id of the imediate parent (only for multi-thread)
--- not used yet.
--- receiver-uid: user.uid of the receiver of this notification.
---
--- If we query for a master-parent-item and receiver-uid...
--- * Returns 1 item: this is not the parent notification,
--- so just "follow" the thread (references to this notification)
--- * Returns no item: this is the first notification related to
--- this parent item. So, create the record and use the message-id
--- header.
-
-
-CREATE TABLE IF NOT EXISTS `notify-threads` (
-`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
-`notify-id` INT NOT NULL,
-`master-parent-item` INT( 10 ) unsigned NOT NULL DEFAULT '0',
-`parent-item` INT( 10 ) unsigned NOT NULL DEFAULT '0',
-`receiver-uid` INT NOT NULL,
-INDEX ( `master-parent-item` ),
-INDEX ( `receiver-uid` )
-) ENGINE = MyISAM DEFAULT CHARSET=utf8;
-
-CREATE TABLE IF NOT EXISTS `spam` (
-`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
-`uid` INT NOT NULL,
-`spam` INT NOT NULL DEFAULT '0',
-`ham` INT NOT NULL DEFAULT '0',
-`term` CHAR(255) NOT NULL,
-`date` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
-INDEX ( `uid` ),
-INDEX ( `spam` ),
-INDEX ( `ham` ),
-INDEX ( `term` )
-) ENGINE = MyISAM DEFAULT CHARSET=utf8;
-
CREATE TABLE IF NOT EXISTS `userd` (
-`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
-`username` CHAR( 255 ) NOT NULL,
-INDEX ( `username` )
-) ENGINE = MyISAM DEFAULT CHARSET=utf8;
-
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `username` char(255) NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
diff --git a/include/Contact.php b/include/Contact.php
index 532ea2f957..8d893cf70e 100644
--- a/include/Contact.php
+++ b/include/Contact.php
@@ -23,16 +23,24 @@ function user_remove($uid) {
);
q("DELETE FROM `contact` WHERE `uid` = %d", intval($uid));
+ q("DELETE FROM `gcign` 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 `event` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `item` WHERE `uid` = %d", intval($uid));
+ q("DELETE FROM `item_id` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `mail` WHERE `uid` = %d", intval($uid));
+ q("DELETE FROM `mailacct` WHERE `uid` = %d", intval($uid));
+ q("DELETE FROM `manage` WHERE `uid` = %d", intval($uid));
+ q("DELETE FROM `notify` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `photo` WHERE `uid` = %d", intval($uid));
+ q("DELETE FROM `attach` 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 `pconfig` WHERE `uid` = %d", intval($uid));
+ q("DELETE FROM `search` WHERE `uid` = %d", intval($uid));
+ q("DELETE FROM `spam` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `user` WHERE `uid` = %d", intval($uid));
if($uid == local_user()) {
unset($_SESSION['authenticated']);
@@ -165,4 +173,15 @@ function random_profile() {
if(count($r))
return dirname($r[0]['url']);
return '';
-}
\ No newline at end of file
+}
+
+
+function contacts_not_grouped($uid) {
+ $r = q("select * from contact where uid = %d and self = 0 and id not in (select distinct(`contact-id`) from group_member where uid = %d) ",
+ intval($uid),
+ intval($uid)
+ );
+
+ return $r;
+}
+
diff --git a/include/dba.php b/include/dba.php
old mode 100644
new mode 100755
index 1421a703dc..76cc0bc7b9
--- a/include/dba.php
+++ b/include/dba.php
@@ -8,273 +8,189 @@ 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 {
-if(! class_exists('dba')) {
+ private $debug = 0;
+ private $db;
+ public $mysqli = true;
+ public $connected = false;
+ public $error = false;
- class dba {
+ function __construct($server,$user,$pass,$db,$install = false) {
- private $debug = 0;
- private $db;
- private $exceptions;
-
- public $mysqli = true;
- public $connected = false;
- public $error = false;
+ $server = trim($server);
+ $user = trim($user);
+ $pass = trim($pass);
+ $db = trim($db);
- 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(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());
- }
- }
- }
-
- public function excep($excep) {
- $this->exceptions=$excep;
+ if (!(strlen($server) && strlen($user))){
+ $this->connected = false;
+ $this->db = null;
+ return;
}
- public function getdb() {
- return $this->db;
- }
-
- public function q($sql) {
-
- 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);
- }
-
- //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;
- }
- }
-
- $str = 'SQL = ' . printable($sql) . EOL . t('SQL returned ') . $mesg . EOL;
-
-
- // 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')) {
- 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;
- }
- }
-
-
- if($result === true) {
- return $result;
- }
-
- $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($this->debug) {
- logger('dba: ' . printable(print_r($r, true)));
- }
- return($r);
- }
-
- 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());
- }
- }
-
- /**
- * 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() {
- if($this->mysqli) {
- return $this->db->autocommit(false);
- } else {
- //no transaction support in mysql module...
- mysql_query('SET AUTOCOMMIT = 0;', $db);
- }
- }
-
- /**
- * rollback a transaction. So, rollback anything that was done since the last call
- * to beginTransaction().
- */
- public function rollback() {
- if($this->mysqli) {
- return $this->db->rollback();
- } else {
- //no transaction support in mysql module...
- mysql_query('ROLLBACK;', $db);
- }
- $this->stopTransaction();
- }
-
- /**
- * commit a transaction. So, write any query to the database.
- */
- public function commit() {
- if($this->mysqli) {
- return $this->db->commit();
- } else {
- //no transaction support in mysql module...
- mysql_query('COMMIT;', $db);
- }
- $this->stopTransaction();
- }
-
- private function stopTransaction() {
- if($this->mysqli) {
- return $this->db->autocommit(true);
- } else {
- //no transaction support in mysql module...
- mysql_query('SET AUTOCOMMIT = 1;', $db);
- }
- }
-
- 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);
+ 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;
}
}
}
- function __destruct() {
- if ($this->db) {
- if($this->mysqli) {
- $this->db->close();
- }
- } else {
- mysql_close($this->db);
+ if(class_exists('mysqli')) {
+ $this->db = @new mysqli($server,$user,$pass,$db);
+ if(! mysqli_connect_errno()) {
+ $this->connected = true;
}
}
+ else {
+ $this->mysqli = false;
+ $this->db = mysql_connect($server,$user,$pass);
+ if($this->db && mysql_select_db($db,$this->db)) {
+ $this->connected = true;
+ }
+ }
+ if(! $this->connected) {
+ $this->db = null;
+ if(! $install)
+ system_unavailable();
+ }
}
-}
+
+ public function getdb() {
+ return $this->db;
+ }
+
+ 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->debug) {
+
+ $mesg = '';
+
+ if($this->mysqli) {
+ if($this->db->errno)
+ logger('dba: ' . $this->db->error);
+ }
+ 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;
+ }
+
+ $str = 'SQL = ' . printable($sql) . EOL . 'SQL returned ' . $mesg . EOL;
+
+ logger('dba: ' . $str );
+ }
+
+ /**
+ * 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(($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();
+ }
+ }
+ else {
+ if(mysql_num_rows($result)) {
+ while($x = mysql_fetch_array($result, MYSQL_ASSOC))
+ $r[] = $x;
+ mysql_free_result($result);
+ }
+ }
+
+
+ if($this->debug)
+ logger('dba: ' . printable(print_r($r, true)));
+ return($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);
+ }
+ }
+
+ 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));
+}}
@@ -283,31 +199,30 @@ if(! function_exists('dbesc')) {
// 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]);
-
- 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;
+ 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);
}
-}
+
+ /**
+ *
+ * This will happen occasionally trying to store the
+ * session data after abnormal program termination
+ *
+ */
+ logger('dba: no database: ' . print_r($args,true));
+ return false;
+
+}}
/**
*
@@ -315,39 +230,36 @@ if(! function_exists('q')) {
*
*/
-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');
}
-}
+}}
diff --git a/include/items.php b/include/items.php
index 3a931b68c0..05c0d50169 100644
--- a/include/items.php
+++ b/include/items.php
@@ -2974,12 +2974,23 @@ function item_expire($uid,$days) {
if($expire_items==0 && $item['type']!='note')
continue;
+
$r = q("UPDATE `item` SET `deleted` = 1, `edited` = '%s', `changed` = '%s' WHERE `id` = %d LIMIT 1",
dbesc(datetime_convert()),
dbesc(datetime_convert()),
intval($item['id'])
);
+ $r = q("DELETE FROM item_id where iid in (select id from item where parent = %d) and uid = %d",
+ intval($item['id']),
+ intval($uid)
+ );
+
+ $r = q("DELETE FROM sign where iid in (select id from item where parent = %d) and uid = %d",
+ intval($item['id']),
+ intval($uid)
+ );
+
// kill the kids
$r = q("UPDATE `item` SET `deleted` = 1, `edited` = '%s', `changed` = '%s' WHERE `parent-uri` = '%s' AND `uid` = %d ",
diff --git a/js/main.js b/js/main.js
index 7f0428b5b5..7a90fa9106 100755
--- a/js/main.js
+++ b/js/main.js
@@ -137,13 +137,12 @@
$('#mail-update-li').html(mail);
var eNotif = $(data).find('notif')
- notif = eNotif.attr('count');
- if (notif>=0){
- $("#nav-notifications-linkmenu").addClass("on");
+
+ if (eNotif.children("note").length==0){
+ $("#nav-notifications-menu").html(notifications_empty);
+ } else {
nnm = $("#nav-notifications-menu");
-
nnm.html(notifications_all + notifications_mark);
-
//nnm.attr('popup','true');
eNotif.children("note").each(function(){
e = $(this);
@@ -151,10 +150,12 @@
html = notifications_tpl.format(e.attr('href'),e.attr('photo'), text, e.attr('date'), e.attr('seen'));
nnm.append(html);
});
-
+ }
+ notif = eNotif.attr('count');
+ if (notif>0){
+ $("#nav-notifications-linkmenu").addClass("on");
} else {
- // $("#nav-notifications-linkmenu").removeClass("on");
- // $("#nav-notifications-menu").html(notifications_empty);
+ $("#nav-notifications-linkmenu").removeClass("on");
}
if(notif == 0) { notif = ''; $('#notify-update').removeClass('show') } else { $('#notify-update').addClass('show') }
$('#notify-update').html(notif);
@@ -609,4 +610,4 @@ function previewTheme(elm) {
$('#theme-preview').html('