diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/common.php | 6 | ||||
-rw-r--r-- | lib/noticewrapper.php | 57 | ||||
-rw-r--r-- | lib/util.php | 10 |
3 files changed, 72 insertions, 1 deletions
diff --git a/lib/common.php b/lib/common.php index 80aab806f..1aa60fc42 100644 --- a/lib/common.php +++ b/lib/common.php @@ -97,7 +97,11 @@ $config = 'daemon' => array('piddir' => '/var/run', 'user' => false, - 'group' => false) + 'group' => false), + 'memcached' => + array('enabled' => false, + 'server' => 'localhost', + 'port' => 11211) ); $config['db'] = &PEAR::getStaticProperty('DB_DataObject','options'); diff --git a/lib/noticewrapper.php b/lib/noticewrapper.php new file mode 100644 index 000000000..fbf7b59f4 --- /dev/null +++ b/lib/noticewrapper.php @@ -0,0 +1,57 @@ +<?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/>. + */ + +if (!defined('LACONICA')) { exit(1); } + +class NoticeWrapper { + + public $id; // int(4) primary_key not_null + public $profile_id; // int(4) not_null + public $uri; // varchar(255) unique_key + public $content; // varchar(140) + public $rendered; // text() + public $url; // varchar(255) + public $created; // datetime() not_null + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP + public $reply_to; // int(4) + public $is_local; // tinyint(1) + public $source; // varchar(32) + + var $notices = NULL; + var $i = -1; + + function __construct($arr) { + $this->notices = $arr; + } + + function fetch() { + static $fields = array('id', 'profile_id', 'uri', 'content', 'rendered', + 'url', 'created', 'modified', 'reply_to', 'is_local', 'source'); + $this->i++; + if ($this->i >= array_count($notices)) { + return false; + } else { + $n = $notices[$this->i]; + foreach ($fields as $f) { + $this->$f = $n->$f; + } + return true; + } + } +}
\ No newline at end of file diff --git a/lib/util.php b/lib/util.php index ff22ac644..349cff722 100644 --- a/lib/util.php +++ b/lib/util.php @@ -1528,3 +1528,13 @@ function common_session_token() { } return $_SESSION['token']; } + +function common_cache_key($extra) { + return 'laconica:' . common_keyize(common_config('site', 'name')) . ':' . $extra; +} + +function common_keyize($str) { + $str = strtolower($str); + $str = preg_replace('/\s/', '_', $str); + return $str; +} |