From 9a515b9234eeb2e500e88899fb31f64535b618cc Mon Sep 17 00:00:00 2001 From: Alexei Sorokin Date: Mon, 29 Jun 2020 01:41:46 +0300 Subject: [PATCH] [SCHEMA] Improve timestamp storage Avoid the use of deprecated MariaDB "zero dates" globally. If they're present as attribute defaults somewhere, they will be replaced with NULL implicitly. The existing "zero dates" in MariaDB storage will be left intact and this should not present any issues. The "timestamp" type in table definitions now corresponds to DATETIME in MariaDB with "DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP", which should be close enough to the original behaviour for compatibility purposes. It is now the recommended type for "modified" attributes, because of the update trigger on MariaDB. But there is no such trigger implemented on PostgreSQL as of this moment. --- .../includes/classes/User_greeting_count.php | 16 +-- classes/Attention.php | 46 ++++--- classes/Avatar.php | 8 +- classes/Confirm_address.php | 61 +++++---- classes/Consumer.php | 38 ++++-- classes/Conversation.php | 8 +- classes/File.php | 4 +- classes/File_redirection.php | 4 +- classes/File_thumbnail.php | 4 +- classes/File_to_post.php | 49 ++++---- classes/Foreign_link.php | 26 +++- classes/Foreign_service.php | 26 +++- classes/Foreign_subscription.php | 22 +++- classes/Foreign_user.php | 30 +++-- classes/Group_alias.php | 40 +++--- classes/Group_block.php | 6 +- classes/Group_inbox.php | 21 +++- classes/Group_join_queue.php | 7 +- classes/Group_member.php | 8 +- classes/Invitation.php | 24 +++- classes/Local_group.php | 27 +++- classes/Location_namespace.php | 48 ++++--- classes/Login_token.php | 52 ++++---- classes/Nonce.php | 28 ++++- classes/Notice.php | 8 +- classes/Notice_location.php | 27 +++- classes/Notice_prefs.php | 8 +- classes/Notice_source.php | 17 ++- classes/Notice_tag.php | 81 ++++++------ classes/Oauth_application.php | 60 +++++---- classes/Oauth_application_user.php | 15 ++- classes/Oauth_token_association.php | 15 ++- classes/Old_school_prefs.php | 4 +- classes/Profile.php | 13 +- classes/Profile_block.php | 44 ++++--- classes/Profile_list.php | 8 +- classes/Profile_prefs.php | 8 +- classes/Profile_role.php | 46 ++++--- classes/Profile_tag.php | 4 +- classes/Profile_tag_subscription.php | 53 +++++--- classes/Queue_item.php | 28 ++++- classes/Related_group.php | 21 +++- classes/Remember_me.php | 24 +++- classes/Reply.php | 37 ++++-- classes/Schema_version.php | 21 +++- classes/Session.php | 10 +- classes/Sms_carrier.php | 28 ++++- classes/Subscription.php | 8 +- classes/Subscription_queue.php | 24 +++- classes/Token.php | 26 +++- classes/Unavailable_status_network.php | 63 +++++----- classes/User.php | 8 +- classes/User_group.php | 8 +- classes/User_im_prefs.php | 10 +- classes/User_location_prefs.php | 10 +- classes/User_urlshortener_prefs.php | 52 ++++---- classes/User_username.php | 15 ++- lib/database/mysqlschema.php | 18 ++- lib/database/pgsqlschema.php | 21 +--- lib/database/schema.php | 17 +++ modules/Favorite/classes/Fave.php | 119 ++++++++++++------ .../classes/Activitypub_profile.php | 8 +- .../ActivityPub/classes/Activitypub_rsa.php | 8 +- plugins/AnonymousFave/classes/Fave_tally.php | 73 +++++------ .../classes/Email_summary_status.php | 8 +- .../GNUsocialProfileExtensionField.php | 10 +- .../GNUsocialProfileExtensionResponse.php | 10 +- plugins/Nodeinfo/classes/Usage_stats.php | 4 +- plugins/OStatus/classes/Ostatus_profile.php | 4 +- .../Sitemap/classes/Sitemap_notice_count.php | 14 +-- .../Sitemap/classes/Sitemap_user_count.php | 14 +-- .../classes/Notice_to_status.php | 74 +++++------ .../UserFlag/classes/User_flag_profile.php | 77 ++++++------ 73 files changed, 1130 insertions(+), 756 deletions(-) diff --git a/DOCUMENTATION/DEVELOPERS/Plugins/Sample Plugins/Sample/includes/classes/User_greeting_count.php b/DOCUMENTATION/DEVELOPERS/Plugins/Sample Plugins/Sample/includes/classes/User_greeting_count.php index 6f4869ba0e..091815ebcb 100644 --- a/DOCUMENTATION/DEVELOPERS/Plugins/Sample Plugins/Sample/includes/classes/User_greeting_count.php +++ b/DOCUMENTATION/DEVELOPERS/Plugins/Sample Plugins/Sample/includes/classes/User_greeting_count.php @@ -17,7 +17,7 @@ /** * Data class for counting greetings * - * @package GNU social + * @package GNUsocial * @author Brion Vibber * @author Evan Prodromou * @copyright 2019 Free Software Foundation, Inc http://www.fsf.org @@ -36,20 +36,20 @@ defined('GNUSOCIAL') || die(); * and other bits of good functionality to StatusNet-specific data classes. * * @category Action - * @package GNU social + * @package GNUsocial * @author Evan Prodromou * @copyright 2019 Free Software Foundation, Inc http://www.fsf.org * @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later * - * @see DB_DataObject + * @see DB_DataObject */ class User_greeting_count extends Managed_DataObject { public $__table = 'user_greeting_count'; // table name - public $user_id; // int(4) primary_key not_null + public $user_id; // int(4) primary_key not_null public $greeting_count; // int(4) - public $created; // datetime() not_null default_0000-00-00%2000%3A00%3A00 - public $modified; // datetime() not_null default_CURRENT_TIMESTAMP + public $created; // datetime() + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP public static function schemaDef() { @@ -57,8 +57,8 @@ class User_greeting_count extends Managed_DataObject 'fields' => [ 'user_id' => ['type' => 'int', 'not null' => true, 'description' => 'user id'], 'greeting_count' => ['type' => 'int', 'not null' => true, 'description' => 'the greeting count'], - 'created' => ['type' => 'datetime', 'not null' => true, 'default' => '0000-00-00 00:00:00', 'description' => 'date this record was created'], - 'modified' => ['type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was modified'], + 'created' => ['type' => 'datetime', 'description' => 'date this record was created'], + 'modified' => ['type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'], ], 'primary key' => ['user_id'], 'foreign keys' => [ diff --git a/classes/Attention.php b/classes/Attention.php index f9e15258eb..c704b7257d 100644 --- a/classes/Attention.php +++ b/classes/Attention.php @@ -1,30 +1,38 @@ . + /* - * GNU social - a federating social network - * Copyright (C) 2014, Free Software Foundation, Inc. + * Data class for Attentions * - * 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 . + * @category Data + * @package GNUsocial + * @copyright 2014 Free Software Foundation, Inc http://www.fsf.org + * @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later */ +defined('GNUSOCIAL') || die(); + class Attention extends Managed_DataObject { public $__table = 'attention'; // table name public $notice_id; // int(4) primary_key not_null public $profile_id; // int(4) primary_key not_null - public $reason; // varchar(191) not 255 because utf8mb4 takes more space - public $created; // datetime() not_null default_0000-00-00%2000%3A00%3A00 - public $modified; // datetime() not_null default_CURRENT_TIMESTAMP + public $reason; // varchar(191) + public $created; // datetime() + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP public static function schemaDef() { @@ -34,8 +42,8 @@ class Attention extends Managed_DataObject 'notice_id' => array('type' => 'int', 'not null' => true, 'description' => 'notice_id to give attention'), 'profile_id' => array('type' => 'int', 'not null' => true, 'description' => 'profile_id for feed receiver'), 'reason' => array('type' => 'varchar', 'length' => 191, 'description' => 'Optional reason why this was brought to the attention of profile_id'), - 'created' => array('type' => 'datetime', 'not null' => true, 'default' => '0000-00-00 00:00:00', 'description' => 'date this record was created'), - 'modified' => array('type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was modified'), + 'created' => array('type' => 'datetime', 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), ), 'primary key' => array('notice_id', 'profile_id'), 'foreign keys' => array( diff --git a/classes/Avatar.php b/classes/Avatar.php index 8c01d9d4d2..204684454d 100644 --- a/classes/Avatar.php +++ b/classes/Avatar.php @@ -29,8 +29,8 @@ class Avatar extends Managed_DataObject public $height; // int(4) primary_key not_null public $mediatype; // varchar(32) not_null public $filename; // varchar(191) not 255 because utf8mb4 takes more space - public $created; // datetime() not_null default_0000-00-00%2000%3A00%3A00 - public $modified; // datetime() not_null default_CURRENT_TIMESTAMP + public $created; // datetime() + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP public static function schemaDef() { @@ -42,8 +42,8 @@ class Avatar extends Managed_DataObject 'height' => array('type' => 'int', 'not null' => true, 'description' => 'image height'), 'mediatype' => array('type' => 'varchar', 'length' => 32, 'not null' => true, 'description' => 'file type'), 'filename' => array('type' => 'varchar', 'length' => 191, 'description' => 'local filename, if local'), - 'created' => array('type' => 'datetime', 'not null' => true, 'default' => '0000-00-00 00:00:00', 'description' => 'date this record was created'), - 'modified' => array('type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was modified'), + 'created' => array('type' => 'datetime', 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), ), 'primary key' => array('profile_id', 'width', 'height'), 'unique keys' => array( diff --git a/classes/Confirm_address.php b/classes/Confirm_address.php index f2d1cfae09..9bb5ae2b38 100644 --- a/classes/Confirm_address.php +++ b/classes/Confirm_address.php @@ -1,8 +1,25 @@ . + /** * Table Definition for confirm_address */ +defined('GNUSOCIAL') || die(); + class Confirm_address extends Managed_DataObject { public $__table = 'confirm_address'; // table name @@ -13,7 +30,7 @@ class Confirm_address extends Managed_DataObject public $address_type; // varchar(8) not_null public $claimed; // datetime() public $sent; // datetime() - public $modified; // datetime() not_null default_CURRENT_TIMESTAMP + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP public static function schemaDef() { @@ -26,7 +43,7 @@ class Confirm_address extends Managed_DataObject 'address_type' => array('type' => 'varchar', 'length' => 8, 'not null' => true, 'description' => 'address type ("email", "xmpp", "sms")'), 'claimed' => array('type' => 'datetime', 'description' => 'date this was claimed for queueing'), 'sent' => array('type' => 'datetime', 'description' => 'date this was sent for queueing'), - 'modified' => array('type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was modified'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), ), 'primary key' => array('code'), 'foreign keys' => array( @@ -35,7 +52,7 @@ class Confirm_address extends Managed_DataObject ); } - static function getByAddress($address, $addressType) + public static function getByAddress($address, $addressType) { $ca = new Confirm_address(); @@ -49,7 +66,7 @@ class Confirm_address extends Managed_DataObject return $ca; } - static function saveNew($user, $address, $addressType, $extra=null) + public static function saveNew($user, $address, $addressType, $extra = null) { $ca = new Confirm_address(); @@ -99,16 +116,16 @@ class Confirm_address extends Managed_DataObject * sitename Name we sign the email with (defaults to sitename, but can be any string) * url The confirmation address URL. */ - public function sendConfirmation(array $args=array()) + public function sendConfirmation(array $args = []) { common_debug('Sending confirmation URL for user '._ve($this->user_id).' using '._ve($this->address_type)); $defaults = [ - 'headers' => array(), - 'nickname' => $this->getProfile()->getNickname(), - 'sitename' => common_config('site', 'name'), - 'url' => $this->getUrl(), - ]; + 'headers' => [], + 'nickname' => $this->getProfile()->getNickname(), + 'sitename' => common_config('site', 'name'), + 'url' => $this->getUrl(), + ]; foreach (array_keys($defaults) as $key) { if (!isset($args[$key])) { $args[$key] = $defaults[$key]; @@ -124,7 +141,7 @@ class Confirm_address extends Managed_DataObject } } - public function sendEmailConfirmation(array $args=array()) + public function sendEmailConfirmation(array $args = []) { // TRANS: Subject for address confirmation email. $subject = _('Email address confirmation'); @@ -132,21 +149,23 @@ class Confirm_address extends Managed_DataObject // TRANS: Body for address confirmation email. // TRANS: %1$s is the addressed user's nickname, %2$s is the StatusNet sitename, // TRANS: %3$s is the URL to confirm at. - $body = sprintf(_("Hey, %1\$s.\n\n". - "Someone just entered this email address on %2\$s.\n\n" . - "If it was you, and you want to confirm your entry, ". - "use the URL below:\n\n\t%3\$s\n\n" . - "If not, just ignore this message.\n\n". - "Thanks for your time, \n%2\$s\n"), - $args['nickname'], - $args['sitename'], - $args['url']); + $body = sprintf( + _("Hey, %1\$s.\n\n" . + "Someone just entered this email address on %2\$s.\n\n" . + "If it was you, and you want to confirm your entry, ". + "use the URL below:\n\n\t%3\$s\n\n" . + "If not, just ignore this message.\n\n". + "Thanks for your time, \n%2\$s\n"), + $args['nickname'], + $args['sitename'], + $args['url'] + ); require_once INSTALLDIR . '/lib/util/mail.php'; return mail_to_user($this->getProfile()->getUser(), $subject, $body, $args['headers'], $this->getAddress()); } - public function delete($useWhere=false) + public function delete($useWhere = false) { $result = parent::delete($useWhere); diff --git a/classes/Consumer.php b/classes/Consumer.php index 2850db9607..1489cee071 100644 --- a/classes/Consumer.php +++ b/classes/Consumer.php @@ -1,8 +1,24 @@ . + /** * Table Definition for consumer */ -require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; + +defined('GNUSOCIAL') || die(); class Consumer extends Managed_DataObject { @@ -13,8 +29,8 @@ class Consumer extends Managed_DataObject public $consumer_key; // varchar(191) primary_key not_null not 255 because utf8mb4 takes more space public $consumer_secret; // varchar(191) not_null not 255 because utf8mb4 takes more space public $seed; // char(32) not_null - public $created; // datetime() not_null default_0000-00-00%2000%3A00%3A00 - public $modified; // datetime() not_null default_CURRENT_TIMESTAMP + public $created; // datetime() + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE @@ -27,14 +43,14 @@ class Consumer extends Managed_DataObject 'consumer_key' => array('type' => 'varchar', 'length' => 191, 'not null' => true, 'description' => 'unique identifier, root URL'), 'consumer_secret' => array('type' => 'varchar', 'length' => 191, 'not null' => true, 'description' => 'secret value'), 'seed' => array('type' => 'char', 'length' => 32, 'not null' => true, 'description' => 'seed for new tokens by this consumer'), - 'created' => array('type' => 'datetime', 'not null' => true, 'default' => '0000-00-00 00:00:00', 'description' => 'date this record was created'), - 'modified' => array('type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was modified'), + 'created' => array('type' => 'datetime', 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), ), 'primary key' => array('consumer_key'), ); } - static function generateNew() + public static function generateNew() { $cons = new Consumer(); $rand = common_random_hexstr(16); @@ -53,24 +69,24 @@ class Consumer extends Managed_DataObject * XXX: Should this happen in an OAuthDataStore instead? * */ - function delete($useWhere=false) + public function delete($useWhere = false) { // XXX: Is there any reason NOT to do this kind of cleanup? - $this->_deleteTokens(); - $this->_deleteNonces(); + $this->deleteTokens(); + $this->deleteNonces(); return parent::delete($useWhere); } - function _deleteTokens() + private function deleteTokens() { $token = new Token(); $token->consumer_key = $this->consumer_key; $token->delete(); } - function _deleteNonces() + private function deleteNonces() { $nonce = new Nonce(); $nonce->consumer_key = $this->consumer_key; diff --git a/classes/Conversation.php b/classes/Conversation.php index eeecd34579..6929fee4e4 100644 --- a/classes/Conversation.php +++ b/classes/Conversation.php @@ -34,8 +34,8 @@ class Conversation extends Managed_DataObject public $id; // int(4) primary_key not_null auto_increment public $uri; // varchar(191) unique_key not 255 because utf8mb4 takes more space public $url; // varchar(191) unique_key not 255 because utf8mb4 takes more space - public $created; // datetime() not_null default_0000-00-00%2000%3A00%3A00 - public $modified; // datetime() not_null default_CURRENT_TIMESTAMP + public $created; // datetime() + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP public static function schemaDef() { @@ -44,8 +44,8 @@ class Conversation extends Managed_DataObject 'id' => array('type' => 'serial', 'not null' => true, 'description' => 'Unique identifier, (again) unrelated to notice id since 2016-01-06'), 'uri' => array('type' => 'varchar', 'not null'=>true, 'length' => 191, 'description' => 'URI of the conversation'), 'url' => array('type' => 'varchar', 'length' => 191, 'description' => 'Resolvable URL, preferrably remote (local can be generated on the fly)'), - 'created' => array('type' => 'datetime', 'not null' => true, 'default' => '0000-00-00 00:00:00', 'description' => 'date this record was created'), - 'modified' => array('type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was modified'), + 'created' => array('type' => 'datetime', 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), ), 'primary key' => array('id'), 'unique keys' => array( diff --git a/classes/File.php b/classes/File.php index 3fe603f58a..cc2adb97f8 100644 --- a/classes/File.php +++ b/classes/File.php @@ -43,7 +43,7 @@ class File extends Managed_DataObject public $filename; // text() public $width; // int(4) public $height; // int(4) - public $modified; // datetime() not_null default_CURRENT_TIMESTAMP + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP const URLHASH_ALG = 'sha256'; const FILEHASH_ALG = 'sha256'; @@ -64,7 +64,7 @@ class File extends Managed_DataObject 'filename' => array('type' => 'text', 'description' => 'if file is stored locally (too) this is the filename'), 'width' => array('type' => 'int', 'description' => 'width in pixels, if it can be described as such and data is available'), 'height' => array('type' => 'int', 'description' => 'height in pixels, if it can be described as such and data is available'), - 'modified' => array('type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was modified'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), ), 'primary key' => array('id'), 'unique keys' => array( diff --git a/classes/File_redirection.php b/classes/File_redirection.php index fa58f422df..234cb9de1e 100644 --- a/classes/File_redirection.php +++ b/classes/File_redirection.php @@ -30,7 +30,7 @@ class File_redirection extends Managed_DataObject public $file_id; // int(4) public $redirections; // int(4) public $httpcode; // int(4) - public $modified; // datetime() not_null default_CURRENT_TIMESTAMP + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE @@ -46,7 +46,7 @@ class File_redirection extends Managed_DataObject 'file_id' => array('type' => 'int', 'description' => 'short URL for what URL/file'), 'redirections' => array('type' => 'int', 'description' => 'redirect count'), 'httpcode' => array('type' => 'int', 'description' => 'HTTP status code (20x, 30x, etc.)'), - 'modified' => array('type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was modified'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), ), 'primary key' => array('urlhash'), 'foreign keys' => array( diff --git a/classes/File_thumbnail.php b/classes/File_thumbnail.php index f93250d832..eca27d6015 100644 --- a/classes/File_thumbnail.php +++ b/classes/File_thumbnail.php @@ -33,7 +33,7 @@ class File_thumbnail extends Managed_DataObject public $filename; // text public $width; // int(4) primary_key public $height; // int(4) primary_key - public $modified; // datetime() not_null default_CURRENT_TIMESTAMP + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP const URLHASH_ALG = 'sha256'; @@ -47,7 +47,7 @@ class File_thumbnail extends Managed_DataObject 'filename' => array('type' => 'text', 'description' => 'if stored locally, filename is put here'), 'width' => array('type' => 'int', 'not null' => true, 'description' => 'width of thumbnail'), 'height' => array('type' => 'int', 'not null' => true, 'description' => 'height of thumbnail'), - 'modified' => array('type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was modified'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), ), 'primary key' => array('file_id', 'width', 'height'), 'indexes' => array( diff --git a/classes/File_to_post.php b/classes/File_to_post.php index cc9c661fb5..2ac6a686b0 100644 --- a/classes/File_to_post.php +++ b/classes/File_to_post.php @@ -1,28 +1,28 @@ . - */ - -if (!defined('GNUSOCIAL')) { exit(1); } +// This file is part of GNU social - https://www.gnu.org/software/social +// +// GNU social 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. +// +// GNU social 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 GNU social. If not, see . /** * Table Definition for file_to_post + * + * @copyright 2008, 2009 StatusNet, Inc. + * @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later */ +defined('GNUSOCIAL') || die(); + class File_to_post extends Managed_DataObject { ###START_AUTOCODE @@ -31,7 +31,7 @@ class File_to_post extends Managed_DataObject public $__table = 'file_to_post'; // table name public $file_id; // int(4) primary_key not_null public $post_id; // int(4) primary_key not_null - public $modified; // datetime() not_null default_CURRENT_TIMESTAMP + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE @@ -42,7 +42,7 @@ class File_to_post extends Managed_DataObject 'fields' => array( 'file_id' => array('type' => 'int', 'not null' => true, 'description' => 'id of URL/file'), 'post_id' => array('type' => 'int', 'not null' => true, 'description' => 'id of the notice it belongs to'), - 'modified' => array('type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was modified'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), ), 'primary key' => array('file_id', 'post_id'), 'foreign keys' => array( @@ -56,7 +56,8 @@ class File_to_post extends Managed_DataObject ); } - static function processNew(File $file, Notice $notice) { + public static function processNew(File $file, Notice $notice) + { static $seen = array(); $file_id = $file->getID(); @@ -82,7 +83,7 @@ class File_to_post extends Managed_DataObject } } - static function getNoticeIDsByFile(File $file) + public static function getNoticeIDsByFile(File $file) { $f2p = new File_to_post(); @@ -100,7 +101,7 @@ class File_to_post extends Managed_DataObject return $f2p->fetchAll('post_id'); } - function delete($useWhere=false) + public function delete($useWhere = false) { try { $f = File::getByID($this->file_id); diff --git a/classes/Foreign_link.php b/classes/Foreign_link.php index 1bc5b65aa8..e2d5220da5 100644 --- a/classes/Foreign_link.php +++ b/classes/Foreign_link.php @@ -1,8 +1,24 @@ . + /** * Table Definition for foreign_link */ -require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; + +defined('GNUSOCIAL') || die(); class Foreign_link extends Managed_DataObject { @@ -19,8 +35,8 @@ class Foreign_link extends Managed_DataObject public $profilesync; // tinyint(1) not_null default_1 public $last_noticesync; // datetime() public $last_friendsync; // datetime() - public $created; // datetime() not_null default_0000-00-00%2000%3A00%3A00 - public $modified; // datetime() not_null default_CURRENT_TIMESTAMP + public $created; // datetime() + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE @@ -38,8 +54,8 @@ class Foreign_link extends Managed_DataObject 'profilesync' => array('type' => 'int', 'size' => 'tiny', 'not null' => true, 'default' => 1, 'description' => 'profile synchronization, bit 1 = sync outgoing, bit 2 = sync incoming'), 'last_noticesync' => array('type' => 'datetime', 'description' => 'last time notices were imported'), 'last_friendsync' => array('type' => 'datetime', 'description' => 'last time friends were imported'), - 'created' => array('type' => 'datetime', 'not null' => true, 'default' => '0000-00-00 00:00:00', 'description' => 'date this record was created'), - 'modified' => array('type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was modified'), + 'created' => array('type' => 'datetime', 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), ), 'primary key' => array('user_id', 'foreign_id', 'service'), 'foreign keys' => array( diff --git a/classes/Foreign_service.php b/classes/Foreign_service.php index 5e58ece193..64ea7cbf01 100644 --- a/classes/Foreign_service.php +++ b/classes/Foreign_service.php @@ -1,8 +1,24 @@ . + /** * Table Definition for foreign_service */ -require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; + +defined('GNUSOCIAL') || die(); class Foreign_service extends Managed_DataObject { @@ -13,8 +29,8 @@ class Foreign_service extends Managed_DataObject public $id; // int(4) primary_key not_null public $name; // varchar(32) unique_key not_null public $description; // varchar(191) not 255 because utf8mb4 takes more space - public $created; // datetime() not_null default_0000-00-00%2000%3A00%3A00 - public $modified; // datetime() not_null default_CURRENT_TIMESTAMP + public $created; // datetime() + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE @@ -26,8 +42,8 @@ class Foreign_service extends Managed_DataObject 'id' => array('type' => 'int', 'not null' => true, 'description' => 'numeric key for service'), 'name' => array('type' => 'varchar', 'length' => 32, 'not null' => true, 'description' => 'name of the service'), 'description' => array('type' => 'varchar', 'length' => 191, 'description' => 'description'), - 'created' => array('type' => 'datetime', 'not null' => true, 'default' => '0000-00-00 00:00:00', 'description' => 'date this record was created'), - 'modified' => array('type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was modified'), + 'created' => array('type' => 'datetime', 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), ), 'primary key' => array('id'), 'unique keys' => array( diff --git a/classes/Foreign_subscription.php b/classes/Foreign_subscription.php index 442a642b4f..aba0bf4b2d 100644 --- a/classes/Foreign_subscription.php +++ b/classes/Foreign_subscription.php @@ -1,8 +1,24 @@ . + /** * Table Definition for foreign_subscription */ -require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; + +defined('GNUSOCIAL') || die(); class Foreign_subscription extends Managed_DataObject { @@ -13,7 +29,7 @@ class Foreign_subscription extends Managed_DataObject public $service; // int(4) primary_key not_null public $subscriber; // int(4) primary_key not_null public $subscribed; // int(4) primary_key not_null - public $created; // datetime() not_null default_0000-00-00%2000%3A00%3A00 + public $created; // datetime() /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE @@ -26,7 +42,7 @@ class Foreign_subscription extends Managed_DataObject 'service' => array('type' => 'int', 'not null' => true, 'description' => 'service where relationship happens'), 'subscriber' => array('type' => 'int', 'size' => 'big', 'not null' => true, 'description' => 'subscriber on foreign service'), 'subscribed' => array('type' => 'int', 'size' => 'big', 'not null' => true, 'description' => 'subscribed user'), - 'created' => array('type' => 'datetime', 'not null' => true, 'default' => '0000-00-00 00:00:00', 'description' => 'date this record was created'), + 'created' => array('type' => 'datetime', 'description' => 'date this record was created'), ), 'primary key' => array('service', 'subscriber', 'subscribed'), 'foreign keys' => array( diff --git a/classes/Foreign_user.php b/classes/Foreign_user.php index 86b565d841..b4c6be7e08 100644 --- a/classes/Foreign_user.php +++ b/classes/Foreign_user.php @@ -1,8 +1,24 @@ . + /** * Table Definition for foreign_user */ -require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; + +defined('GNUSOCIAL') || die(); class Foreign_user extends Managed_DataObject { @@ -14,8 +30,8 @@ class Foreign_user extends Managed_DataObject public $service; // int(4) primary_key not_null public $uri; // varchar(191) unique_key not_null not 255 because utf8mb4 takes more space public $nickname; // varchar(191) not 255 because utf8mb4 takes more space - public $created; // datetime() not_null default_0000-00-00%2000%3A00%3A00 - public $modified; // datetime() not_null default_CURRENT_TIMESTAMP + public $created; // datetime() + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE @@ -28,8 +44,8 @@ class Foreign_user extends Managed_DataObject 'service' => array('type' => 'int', 'not null' => true, 'description' => 'foreign key to service'), 'uri' => array('type' => 'varchar', 'length' => 191, 'not null' => true, 'description' => 'identifying URI'), 'nickname' => array('type' => 'varchar', 'length' => 191, 'description' => 'nickname on foreign service'), - 'created' => array('type' => 'datetime', 'not null' => true, 'default' => '0000-00-00 00:00:00', 'description' => 'date this record was created'), - 'modified' => array('type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was modified'), + 'created' => array('type' => 'datetime', 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), ), 'primary key' => array('id', 'service'), 'foreign keys' => array( @@ -41,7 +57,7 @@ class Foreign_user extends Managed_DataObject ); } - static function getForeignUser($id, $service) + public static function getForeignUser($id, $service) { if (empty($id) || empty($service)) { throw new ServerException('Empty foreign user id or service for Foreign_user::getForeignUser'); @@ -59,7 +75,7 @@ class Foreign_user extends Managed_DataObject return $fuser; } - static function getByNickname($nickname, $service) + public static function getByNickname($nickname, $service) { if (empty($nickname) || empty($service)) { throw new ServerException('Empty nickname or service for Foreign_user::getByNickname'); diff --git a/classes/Group_alias.php b/classes/Group_alias.php index 3967769c2d..9ee773d5b7 100644 --- a/classes/Group_alias.php +++ b/classes/Group_alias.php @@ -1,27 +1,27 @@ . + /** * Table Definition for group_alias * - * StatusNet - the distributed open-source microblogging tool - * Copyright (C) 2009, StatusNet, 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 . + * @copyright 2009 StatusNet, Inc. + * @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later */ -if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } - -require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; +defined('GNUSOCIAL') || die(); class Group_alias extends Managed_DataObject { @@ -31,7 +31,7 @@ class Group_alias extends Managed_DataObject public $__table = 'group_alias'; // table name public $alias; // varchar(64) primary_key not_null public $group_id; // int(4) not_null - public $modified; // datetime() not_null default_CURRENT_TIMESTAMP + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE @@ -42,7 +42,7 @@ class Group_alias extends Managed_DataObject 'fields' => array( 'alias' => array('type' => 'varchar', 'length' => 64, 'not null' => true, 'description' => 'additional nickname for the group'), 'group_id' => array('type' => 'int', 'not null' => true, 'description' => 'group profile is blocked from'), - 'modified' => array('type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date alias was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date alias was created'), ), 'primary key' => array('alias'), 'foreign keys' => array( diff --git a/classes/Group_block.php b/classes/Group_block.php index e2fa347fd4..a52c0822c7 100644 --- a/classes/Group_block.php +++ b/classes/Group_block.php @@ -25,8 +25,6 @@ defined('GNUSOCIAL') || die(); -require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; - class Group_block extends Managed_DataObject { ###START_AUTOCODE @@ -36,7 +34,7 @@ class Group_block extends Managed_DataObject public $group_id; // int(4) primary_key not_null public $blocked; // int(4) primary_key not_null public $blocker; // int(4) not_null - public $modified; // datetime() not_null default_CURRENT_TIMESTAMP + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE @@ -48,7 +46,7 @@ class Group_block extends Managed_DataObject 'group_id' => array('type' => 'int', 'not null' => true, 'description' => 'group profile is blocked from'), 'blocked' => array('type' => 'int', 'not null' => true, 'description' => 'profile that is blocked'), 'blocker' => array('type' => 'int', 'not null' => true, 'description' => 'user making the block'), - 'modified' => array('type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date of blocking'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date of blocking'), ), 'primary key' => array('group_id', 'blocked'), 'foreign keys' => array( diff --git a/classes/Group_inbox.php b/classes/Group_inbox.php index 26426ccbee..36333226df 100644 --- a/classes/Group_inbox.php +++ b/classes/Group_inbox.php @@ -1,8 +1,25 @@ . /** * Table Definition for group_inbox */ + +defined('GNUSOCIAL') || die(); + class Group_inbox extends Managed_DataObject { ###START_AUTOCODE @@ -11,7 +28,7 @@ class Group_inbox extends Managed_DataObject public $__table = 'group_inbox'; // table name public $group_id; // int(4) primary_key not_null public $notice_id; // int(4) primary_key not_null - public $created; // datetime() not_null default_0000-00-00%2000%3A00%3A00 + public $created; // datetime() /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE @@ -23,7 +40,7 @@ class Group_inbox extends Managed_DataObject 'fields' => array( 'group_id' => array('type' => 'int', 'not null' => true, 'description' => 'group receiving the message'), 'notice_id' => array('type' => 'int', 'not null' => true, 'description' => 'notice received'), - 'created' => array('type' => 'datetime', 'not null' => true, 'default' => '0000-00-00 00:00:00', 'description' => 'date the notice was created'), + 'created' => array('type' => 'datetime', 'description' => 'date the notice was created'), ), 'primary key' => array('group_id', 'notice_id'), 'foreign keys' => array( diff --git a/classes/Group_join_queue.php b/classes/Group_join_queue.php index 8756aab0c3..6517ce2cf7 100644 --- a/classes/Group_join_queue.php +++ b/classes/Group_join_queue.php @@ -14,12 +14,11 @@ // You should have received a copy of the GNU Affero General Public License // along with GNU social. If not, see . -defined('GNUSOCIAL') || die(); - /** * Table Definition for request_queue */ -require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; + +defined('GNUSOCIAL') || die(); class Group_join_queue extends Managed_DataObject { @@ -41,7 +40,7 @@ class Group_join_queue extends Managed_DataObject 'fields' => array( 'profile_id' => array('type' => 'int', 'not null' => true, 'description' => 'remote or local profile making the request'), 'group_id' => array('type' => 'int', 'not null' => true, 'description' => 'remote or local group to join, if any'), - 'created' => array('type' => 'datetime', 'not null' => true, 'default' => '0000-00-00 00:00:00', 'description' => 'date this record was created'), + 'created' => array('type' => 'datetime', 'description' => 'date this record was created'), ), 'primary key' => array('profile_id', 'group_id'), 'indexes' => array( diff --git a/classes/Group_member.php b/classes/Group_member.php index ba12efaf3b..b10e196003 100644 --- a/classes/Group_member.php +++ b/classes/Group_member.php @@ -30,8 +30,8 @@ class Group_member extends Managed_DataObject public $profile_id; // int(4) primary_key not_null public $is_admin; // bool default_false public $uri; // varchar(191) not 255 because utf8mb4 takes more space - public $created; // datetime() not_null default_0000-00-00%2000%3A00%3A00 - public $modified; // datetime() not_null default_CURRENT_TIMESTAMP + public $created; // datetime() + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE @@ -44,8 +44,8 @@ class Group_member extends Managed_DataObject 'profile_id' => array('type' => 'int', 'not null' => true, 'description' => 'foreign key to profile table'), 'is_admin' => array('type' => 'bool', 'default' => false, 'description' => 'is this user an admin?'), 'uri' => array('type' => 'varchar', 'length' => 191, 'description' => 'universal identifier'), - 'created' => array('type' => 'datetime', 'not null' => true, 'default' => '0000-00-00 00:00:00', 'description' => 'date this record was created'), - 'modified' => array('type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was modified'), + 'created' => array('type' => 'datetime', 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), ), 'primary key' => array('group_id', 'profile_id'), 'unique keys' => array( diff --git a/classes/Invitation.php b/classes/Invitation.php index d3d8617066..fa835fa6e3 100644 --- a/classes/Invitation.php +++ b/classes/Invitation.php @@ -1,8 +1,24 @@ . + /** * Table Definition for invitation */ -require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; + +defined('GNUSOCIAL') || die(); class Invitation extends Managed_DataObject { @@ -15,12 +31,12 @@ class Invitation extends Managed_DataObject public $address; // varchar(191) multiple_key not_null not 255 because utf8mb4 takes more space public $address_type; // varchar(8) multiple_key not_null public $registered_user_id; // int(4) not_null - public $created; // datetime() not_null default_0000-00-00%2000%3A00%3A00 + public $created; // datetime() /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE - function convert($user) + public function convert($user) { $orig = clone($this); $this->registered_user_id = $user->id; @@ -36,7 +52,7 @@ class Invitation extends Managed_DataObject 'user_id' => array('type' => 'int', 'not null' => true, 'description' => 'who sent the invitation'), 'address' => array('type' => 'varchar', 'length' => 191, 'not null' => true, 'description' => 'invitation sent to'), 'address_type' => array('type' => 'varchar', 'length' => 8, 'not null' => true, 'description' => 'address type ("email", "xmpp", "sms")'), - 'created' => array('type' => 'datetime', 'not null' => true, 'default' => '0000-00-00 00:00:00', 'description' => 'date this record was created'), + 'created' => array('type' => 'datetime', 'description' => 'date this record was created'), 'registered_user_id' => array('type' => 'int', 'not null' => false, 'description' => 'if the invitation is converted, who the new user is'), ), 'primary key' => array('code'), diff --git a/classes/Local_group.php b/classes/Local_group.php index 0cd2b24c3b..772b6fb4bf 100644 --- a/classes/Local_group.php +++ b/classes/Local_group.php @@ -1,8 +1,25 @@ . + /** * Table Definition for local_group */ +defined('GNUSOCIAL') || die(); + class Local_group extends Managed_DataObject { ###START_AUTOCODE @@ -11,8 +28,8 @@ class Local_group extends Managed_DataObject public $__table = 'local_group'; // table name public $group_id; // int(4) primary_key not_null public $nickname; // varchar(64) unique_key - public $created; // datetime() not_null default_0000-00-00%2000%3A00%3A00 - public $modified; // datetime() not_null default_CURRENT_TIMESTAMP + public $created; // datetime() + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE @@ -24,8 +41,8 @@ class Local_group extends Managed_DataObject 'fields' => array( 'group_id' => array('type' => 'int', 'not null' => true, 'description' => 'group represented'), 'nickname' => array('type' => 'varchar', 'length' => 64, 'description' => 'group represented'), - 'created' => array('type' => 'datetime', 'not null' => true, 'default' => '0000-00-00 00:00:00', 'description' => 'date this record was created'), - 'modified' => array('type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was modified'), + 'created' => array('type' => 'datetime', 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), ), 'primary key' => array('group_id'), 'foreign keys' => array( @@ -54,7 +71,7 @@ class Local_group extends Managed_DataObject return $group; } - function setNickname($nickname) + public function setNickname($nickname) { $this->decache(); $qry = 'UPDATE local_group set nickname = "'.$this->escape($nickname).'" where group_id = ' . $this->group_id; diff --git a/classes/Location_namespace.php b/classes/Location_namespace.php index 22108253c6..0004bc630c 100644 --- a/classes/Location_namespace.php +++ b/classes/Location_namespace.php @@ -1,29 +1,27 @@ . + /* - * StatusNet - the distributed open-source microblogging tool - * Copyright (C) 2009, StatusNet, 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 . - */ - -if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } - -/** * Table Definition for location_namespace + * + * @copyright 2009 StatusNet, Inc. + * @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later */ -require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; +defined('GNUSOCIAL') || die(); class Location_namespace extends Managed_DataObject { @@ -33,8 +31,8 @@ class Location_namespace extends Managed_DataObject public $__table = 'location_namespace'; // table name public $id; // int(4) primary_key not_null public $description; // varchar(191) - public $created; // datetime() not_null default_0000-00-00%2000%3A00%3A00 - public $modified; // datetime() not_null default_CURRENT_TIMESTAMP + public $created; // datetime() + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE @@ -45,8 +43,8 @@ class Location_namespace extends Managed_DataObject 'fields' => array( 'id' => array('type' => 'int', 'not null' => true, 'description' => 'identity for this namespace'), 'description' => array('type' => 'varchar', 'length' => 191, 'description' => 'description of the namespace'), - 'created' => array('type' => 'datetime', 'not null' => true, 'default' => '0000-00-00 00:00:00', 'description' => 'date the record was created'), - 'modified' => array('type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was modified'), + 'created' => array('type' => 'datetime', 'description' => 'date the record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), ), 'primary key' => array('id'), ); diff --git a/classes/Login_token.php b/classes/Login_token.php index 42b1246114..9e3ace1633 100644 --- a/classes/Login_token.php +++ b/classes/Login_token.php @@ -1,27 +1,27 @@ . + /** * Table Definition for login_token * - * StatusNet - the distributed open-source microblogging tool - * Copyright (C) 2009, StatusNet, 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 . + * @copyright 2009 StatusNet, Inc. + * @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later */ -if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } - -require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; +defined('GNUSOCIAL') || die(); class Login_token extends Managed_DataObject { @@ -31,8 +31,8 @@ class Login_token extends Managed_DataObject public $__table = 'login_token'; // table name public $user_id; // int(4) primary_key not_null public $token; // char(32) not_null - public $created; // datetime() not_null default_0000-00-00%2000%3A00%3A00 - public $modified; // datetime() not_null default_CURRENT_TIMESTAMP + public $created; // datetime() + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE @@ -43,8 +43,8 @@ class Login_token extends Managed_DataObject 'fields' => array( 'user_id' => array('type' => 'int', 'not null' => true, 'description' => 'user owning this token'), 'token' => array('type' => 'char', 'length' => 32, 'not null' => true, 'description' => 'token useable for logging in'), - 'created' => array('type' => 'datetime', 'not null' => true, 'default' => '0000-00-00 00:00:00', 'description' => 'date this record was created'), - 'modified' => array('type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was modified'), + 'created' => array('type' => 'datetime', 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), ), 'primary key' => array('user_id'), 'foreign keys' => array( @@ -55,7 +55,7 @@ class Login_token extends Managed_DataObject const TIMEOUT = 120; // seconds after which to timeout the token - function makeNew($user) + public function makeNew($user) { $login_token = Login_token::getKV('user_id', $user->id); @@ -75,8 +75,10 @@ class Login_token extends Managed_DataObject common_log_db_error($login_token, 'INSERT', __FILE__); // TRANS: Exception thrown when trying creating a login token failed. // TRANS: %s is the user nickname for which token creation failed. - throw new Exception(sprintf(_('Could not create login token for %s'), - $user->nickname)); + throw new Exception(sprintf( + _('Could not create login token for %s'), + $user->nickname + )); } return $login_token; diff --git a/classes/Nonce.php b/classes/Nonce.php index 6ff2784758..05f892b4dd 100644 --- a/classes/Nonce.php +++ b/classes/Nonce.php @@ -1,8 +1,24 @@ . + /** * Table Definition for nonce */ -require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; + +defined('GNUSOCIAL') || die(); class Nonce extends Managed_DataObject { @@ -14,8 +30,8 @@ class Nonce extends Managed_DataObject public $tok; // char(32) public $nonce; // char(32) primary_key not_null public $ts; // datetime() primary_key not_null - public $created; // datetime() not_null default_0000-00-00%2000%3A00%3A00 - public $modified; // datetime() not_null default_CURRENT_TIMESTAMP + public $created; // datetime() + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE @@ -29,7 +45,7 @@ class Nonce extends Managed_DataObject * @return array * @access public */ - function links() + public function links() { return array('consumer_key,token' => 'token:consumer_key,token'); } @@ -43,8 +59,8 @@ class Nonce extends Managed_DataObject 'tok' => array('type' => 'char', 'length' => 32, 'description' => 'buggy old value, ignored'), 'nonce' => array('type' => 'char', 'length' => 32, 'not null' => true, 'description' => 'nonce'), 'ts' => array('type' => 'datetime', 'not null' => true, 'description' => 'timestamp sent'), - 'created' => array('type' => 'datetime', 'not null' => true, 'default' => '0000-00-00 00:00:00', 'description' => 'date this record was created'), - 'modified' => array('type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was modified'), + 'created' => array('type' => 'datetime', 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), ), 'primary key' => array('consumer_key', 'ts', 'nonce'), ); diff --git a/classes/Notice.php b/classes/Notice.php index 31243887c7..c2a4c63298 100644 --- a/classes/Notice.php +++ b/classes/Notice.php @@ -58,8 +58,8 @@ class Notice extends Managed_DataObject public $content; // text public $rendered; // text public $url; // varchar(191) not 255 because utf8mb4 takes more space - public $created; // datetime() multiple_key not_null default_0000-00-00%2000%3A00%3A00 - public $modified; // datetime() not_null default_CURRENT_TIMESTAMP + public $created; // datetime() multiple_key + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP public $reply_to; // int(4) public $is_local; // int(4) public $source; // varchar(32) @@ -82,8 +82,8 @@ class Notice extends Managed_DataObject 'content' => array('type' => 'text', 'description' => 'update content', 'collate' => 'utf8mb4_general_ci'), 'rendered' => array('type' => 'text', 'description' => 'HTML version of the content'), 'url' => array('type' => 'varchar', 'length' => 191, 'description' => 'URL of any attachment (image, video, bookmark, whatever)'), - 'created' => array('type' => 'datetime', 'not null' => true, 'default' => '0000-00-00 00:00:00', 'description' => 'date this record was created'), - 'modified' => array('type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was modified'), + 'created' => array('type' => 'datetime', 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), 'reply_to' => array('type' => 'int', 'description' => 'notice replied to (usually a guess)'), 'is_local' => array('type' => 'int', 'size' => 'tiny', 'default' => 0, 'description' => 'notice was generated by a user'), 'source' => array('type' => 'varchar', 'length' => 32, 'description' => 'source of comment, like "web", "im", or "clientname"'), diff --git a/classes/Notice_location.php b/classes/Notice_location.php index 974f166323..dd1b2dc066 100644 --- a/classes/Notice_location.php +++ b/classes/Notice_location.php @@ -1,8 +1,25 @@ . + /** * Table Definition for notice_location */ +defined('GNUSOCIAL') || die(); + class Notice_location extends Managed_DataObject { public $__table = 'notice_location'; // table name @@ -11,7 +28,7 @@ class Notice_location extends Managed_DataObject public $lon; // decimal(10,7) public $location_id; // int(4) public $location_ns; // int(4) - public $modified; // datetime() not_null default_CURRENT_TIMESTAMP + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP public static function schemaDef() { @@ -22,7 +39,7 @@ class Notice_location extends Managed_DataObject 'lon' => array('type' => 'numeric', 'precision' => 10, 'scale' => 7, 'description' => 'longitude'), 'location_id' => array('type' => 'int', 'description' => 'location id if possible'), 'location_ns' => array('type' => 'int', 'description' => 'namespace for location'), - 'modified' => array('type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was modified'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), ), 'primary key' => array('notice_id'), 'foreign keys' => array( @@ -32,9 +49,9 @@ class Notice_location extends Managed_DataObject 'notice_location_location_id_idx' => array('location_id'), ), ); - } + } - static function locFromStored(Notice $stored) + public static function locFromStored(Notice $stored) { $loc = new Notice_location(); $loc->notice_id = $stored->getID(); @@ -44,7 +61,7 @@ class Notice_location extends Managed_DataObject return $loc->asLocation(); } - static function fromLocation(Location $location) + public static function fromLocation(Location $location) { $notloc = new Notice_location(); $notloc->lat = $location->lat; diff --git a/classes/Notice_prefs.php b/classes/Notice_prefs.php index e2c96f482d..0c213c090f 100644 --- a/classes/Notice_prefs.php +++ b/classes/Notice_prefs.php @@ -34,8 +34,8 @@ class Notice_prefs extends Managed_DataObject public $namespace; // varchar(191) not_null public $topic; // varchar(191) not_null public $data; // text - public $created; // datetime() not_null default_0000-00-00%2000%3A00%3A00 - public $modified; // datetime() not_null default_CURRENT_TIMESTAMP + public $created; // datetime() + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP public static function schemaDef() { @@ -45,8 +45,8 @@ class Notice_prefs extends Managed_DataObject 'namespace' => array('type' => 'varchar', 'length' => 191, 'not null' => true, 'description' => 'namespace, like pluginname or category'), 'topic' => array('type' => 'varchar', 'length' => 191, 'not null' => true, 'description' => 'preference key, i.e. description, age...'), 'data' => array('type' => 'blob', 'description' => 'topic data, may be anything'), - 'created' => array('type' => 'datetime', 'not null' => true, 'default' => '0000-00-00 00:00:00', 'description' => 'date this record was created'), - 'modified' => array('type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was modified'), + 'created' => array('type' => 'datetime', 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), ), 'primary key' => array('notice_id', 'namespace', 'topic'), 'foreign keys' => array( diff --git a/classes/Notice_source.php b/classes/Notice_source.php index 03f3ca1498..205c14b36d 100644 --- a/classes/Notice_source.php +++ b/classes/Notice_source.php @@ -14,13 +14,12 @@ // You should have received a copy of the GNU Affero General Public License // along with GNU social. If not, see . -defined('GNUSOCIAL') || die(); - -require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; - /** * Table Definition for notice_source */ + +defined('GNUSOCIAL') || die(); + class Notice_source extends Managed_DataObject { ###START_AUTOCODE @@ -30,8 +29,8 @@ class Notice_source extends Managed_DataObject public $code; // varchar(32) primary_key not_null public $name; // varchar(191) not_null not 255 because utf8mb4 takes more space public $url; // varchar(191) not_null not 255 because utf8mb4 takes more space - public $created; // datetime() not_null default_0000-00-00%2000%3A00%3A00 - public $modified; // datetime() not_null default_CURRENT_TIMESTAMP + public $created; // datetime() + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE @@ -43,9 +42,9 @@ class Notice_source extends Managed_DataObject 'code' => array('type' => 'varchar', 'length' => 32, 'not null' => true, 'description' => 'source code'), 'name' => array('type' => 'varchar', 'length' => 191, 'not null' => true, 'description' => 'name of the source'), 'url' => array('type' => 'varchar', 'length' => 191, 'not null' => true, 'description' => 'url to link to'), - 'notice_id' => array('type' => 'int', 'not null' => true, 'default' => 0, 'description' => 'date this record was created'), - 'created' => array('type' => 'datetime', 'not null' => true, 'default' => '0000-00-00 00:00:00', 'description' => 'date this record was created'), - 'modified' => array('type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was modified'), + 'notice_id' => array('type' => 'int', 'not null' => true, 'default' => 0, 'description' => 'notice id'), + 'created' => array('type' => 'datetime', 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), ), 'primary key' => array('code'), ); diff --git a/classes/Notice_tag.php b/classes/Notice_tag.php index 84d108eee7..c742538f5e 100644 --- a/classes/Notice_tag.php +++ b/classes/Notice_tag.php @@ -1,23 +1,25 @@ . + /* - * StatusNet - the distributed open-source microblogging tool - * Copyright (C) 2008, 2009, StatusNet, 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 . + * @copyright 2008, 2009 StatusNet, Inc. + * @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later */ -require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; +defined('GNUSOCIAL') || die(); class Notice_tag extends Managed_DataObject { @@ -27,7 +29,7 @@ class Notice_tag extends Managed_DataObject public $__table = 'notice_tag'; // table name public $tag; // varchar(64) primary_key not_null public $notice_id; // int(4) primary_key not_null - public $created; // datetime() not_null default_0000-00-00%2000%3A00%3A00 + public $created; // datetime() /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE @@ -39,7 +41,7 @@ class Notice_tag extends Managed_DataObject 'fields' => array( 'tag' => array('type' => 'varchar', 'length' => 64, 'not null' => true, 'description' => 'hash tag associated with this notice'), 'notice_id' => array('type' => 'int', 'not null' => true, 'description' => 'notice tagged'), - 'created' => array('type' => 'datetime', 'not null' => true, 'default' => '0000-00-00 00:00:00', 'description' => 'date this record was created'), + 'created' => array('type' => 'datetime', 'description' => 'date this record was created'), ), 'primary key' => array('tag', 'notice_id'), 'foreign keys' => array( @@ -52,16 +54,21 @@ class Notice_tag extends Managed_DataObject ), ); } - - static function getStream($tag, $offset=0, $limit=20, $sinceId=0, $maxId=0) - { + + public static function getStream( + $tag, + $offset = 0, + $limit = 20, + $sinceId = 0, + $maxId = 0 + ) { // FIXME: Get the Profile::current value some other way // to avoid confusino between queue processing and session. $stream = new TagNoticeStream($tag, Profile::current()); return $stream; } - function blowCache($blowLast=false) + public function blowCache($blowLast = false) { self::blow('notice_tag:notice_ids:%s', Cache::keyize($this->tag)); if ($blowLast) { @@ -69,18 +76,22 @@ class Notice_tag extends Managed_DataObject } } - static function url($tag) - { - if (common_config('singleuser', 'enabled')) { - // regular TagAction isn't set up in 1user mode - $nickname = User::singleUserNickname(); - $url = common_local_url('showstream', - array('nickname' => $nickname, - 'tag' => $tag)); - } else { - $url = common_local_url('tag', array('tag' => $tag)); - } + public static function url($tag) + { + if (common_config('singleuser', 'enabled')) { + // Regular TagAction isn't set up in 1user mode + $nickname = User::singleUserNickname(); + $url = common_local_url( + 'showstream', + [ + 'nickname' => $nickname, + 'tag' => $tag, + ] + ); + } else { + $url = common_local_url('tag', ['tag' => $tag]); + } - return $url; - } + return $url; + } } diff --git a/classes/Oauth_application.php b/classes/Oauth_application.php index a0bf981a7e..1ef424267d 100644 --- a/classes/Oauth_application.php +++ b/classes/Oauth_application.php @@ -1,8 +1,24 @@ . + /** * Table Definition for oauth_application */ -require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; + +defined('GNUSOCIAL') || die(); class Oauth_application extends Managed_DataObject { @@ -22,8 +38,8 @@ class Oauth_application extends Managed_DataObject public $callback_url; // varchar(191) not_null not 255 because utf8mb4 takes more space public $type; // tinyint(1) public $access_type; // tinyint(1) - public $created; // datetime() not_null default_0000-00-00%2000%3A00%3A00 - public $modified; // datetime() not_null default_CURRENT_TIMESTAMP + public $created; // datetime() + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE @@ -35,12 +51,12 @@ class Oauth_application extends Managed_DataObject public static $browser = 1; public static $desktop = 2; - function getConsumer() + public function getConsumer() { return Consumer::getKV('consumer_key', $this->consumer_key); } - static function maxDesc() + public static function maxDesc() { // This used to default to textlimit or allow unlimited descriptions, // but this isn't part of a notice and the field's limited to 191 chars @@ -57,13 +73,13 @@ class Oauth_application extends Managed_DataObject } } - static function descriptionTooLong($desc) + public static function descriptionTooLong($desc) { $desclimit = self::maxDesc(); return ($desclimit > 0 && !empty($desc) && (mb_strlen($desc) > $desclimit)); } - function setAccessFlags($read, $write) + public function setAccessFlags($read, $write) { if ($read) { $this->access_type |= self::$readAccess; @@ -78,7 +94,7 @@ class Oauth_application extends Managed_DataObject } } - function setOriginal($filename) + public function setOriginal($filename) { $imagefile = new ImageFile(null, Avatar::path($filename)); @@ -91,7 +107,7 @@ class Oauth_application extends Managed_DataObject return $this->update($orig); } - static function getByConsumerKey($key) + public static function getByConsumerKey($key) { if (empty($key)) { return null; @@ -113,11 +129,9 @@ class Oauth_application extends Managed_DataObject * * @return void */ - function uploadLogo() + public function uploadLogo() { - if ($_FILES['app_icon']['error'] == - UPLOAD_ERR_OK) { - + if ($_FILES['app_icon']['error'] == UPLOAD_ERR_OK) { try { $imagefile = ImageFile::fromUpload('app_icon'); } catch (Exception $e) { @@ -126,10 +140,12 @@ class Oauth_application extends Managed_DataObject return; } - $filename = Avatar::filename($this->id, - image_type_to_extension($imagefile->type), - null, - 'oauth-app-icon-'.common_timestamp()); + $filename = Avatar::filename( + $this->id, + image_type_to_extension($imagefile->type), + null, + 'oauth-app-icon-' . common_timestamp() + ); $filepath = Avatar::path($filename); @@ -139,9 +155,9 @@ class Oauth_application extends Managed_DataObject } } - function delete($useWhere=false) + public function delete($useWhere = false) { - $this->_deleteAppUsers(); + $this->deleteAppUsers(); $consumer = $this->getConsumer(); $consumer->delete(); @@ -149,7 +165,7 @@ class Oauth_application extends Managed_DataObject return parent::delete($useWhere); } - function _deleteAppUsers() + private function deleteAppUsers() { $oauser = new Oauth_application_user(); $oauser->application_id = $this->id; @@ -173,8 +189,8 @@ class Oauth_application extends Managed_DataObject 'callback_url' => array('type' => 'varchar', 'length' => 191, 'description' => 'url to redirect to after authentication'), 'type' => array('type' => 'int', 'size' => 'tiny', 'default' => 0, 'description' => 'type of app, 1 = browser, 2 = desktop'), 'access_type' => array('type' => 'int', 'size' => 'tiny', 'default' => 0, 'description' => 'default access type, bit 1 = read, bit 2 = write'), - 'created' => array('type' => 'datetime', 'not null' => true, 'default' => '0000-00-00 00:00:00', 'description' => 'date this record was created'), - 'modified' => array('type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was modified'), + 'created' => array('type' => 'datetime', 'description' => 'date this record was created'), + 'modified' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was modified'), ), 'primary key' => array('id'), 'unique keys' => array( diff --git a/classes/Oauth_application_user.php b/classes/Oauth_application_user.php index 3fc64c7941..8165688226 100644 --- a/classes/Oauth_application_user.php +++ b/classes/Oauth_application_user.php @@ -14,13 +14,12 @@ // You should have received a copy of the GNU Affero General Public License // along with GNU social. If not, see . -defined('GNUSOCIAL') || die(); - -require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; - /** * Table Definition for oauth_application_user */ + +defined('GNUSOCIAL') || die(); + class Oauth_application_user extends Managed_DataObject { ###START_AUTOCODE @@ -31,8 +30,8 @@ class Oauth_application_user extends Managed_DataObject public $application_id; // int(4) primary_key not_null public $access_type; // tinyint(1) public $token; // varchar(191) not 255 because utf8mb4 takes more space - public $created; // datetime() not_null default_0000-00-00%2000%3A00%3A00 - public $modified; // datetime() not_null default_CURRENT_TIMESTAMP + public $created; // datetime() + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE @@ -45,8 +44,8 @@ class Oauth_application_user extends Managed_DataObject 'application_id' => array('type' => 'int', 'not null' => true, 'description' => 'id of the application'), 'access_type' => array('type' => 'int', 'size' => 'tiny', 'default' => 0, 'description' => 'access type, bit 1 = read, bit 2 = write'), 'token' => array('type' => 'varchar', 'length' => 191, 'description' => 'request or access token'), - 'created' => array('type' => 'datetime', 'not null' => true, 'default' => '0000-00-00 00:00:00', 'description' => 'date this record was created'), - 'modified' => array('type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was modified'), + 'created' => array('type' => 'datetime', 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), ), 'primary key' => array('profile_id', 'application_id'), 'foreign keys' => array( diff --git a/classes/Oauth_token_association.php b/classes/Oauth_token_association.php index 7ad0186614..e976fe91c2 100644 --- a/classes/Oauth_token_association.php +++ b/classes/Oauth_token_association.php @@ -14,13 +14,12 @@ // You should have received a copy of the GNU Affero General Public License // along with GNU social. If not, see . -defined('GNUSOCIAL') || die(); - -require_once INSTALLDIR . '/classes/Memcached_DataObject.php'; - /** * Table Definition for oauth_association */ + +defined('GNUSOCIAL') || die(); + class Oauth_token_association extends Managed_DataObject { ###START_AUTOCODE @@ -30,8 +29,8 @@ class Oauth_token_association extends Managed_DataObject public $profile_id; // int(4) primary_key not_null public $application_id; // int(4) primary_key not_null public $token; // varchar(191) primary key not null not 255 because utf8mb4 takes more space - public $created; // datetime() not_null default_0000-00-00%2000%3A00%3A00 - public $modified; // datetime() not_null default_CURRENT_TIMESTAMP + public $created; // datetime() + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE @@ -61,8 +60,8 @@ class Oauth_token_association extends Managed_DataObject 'profile_id' => array('type' => 'int', 'not null' => true, 'description' => 'associated user'), 'application_id' => array('type' => 'int', 'not null' => true, 'description' => 'the application'), 'token' => array('type' => 'varchar', 'length' => '191', 'not null' => true, 'description' => 'token used for this association'), - 'created' => array('type' => 'datetime', 'not null' => true, 'default' => '0000-00-00 00:00:00', 'description' => 'date this record was created'), - 'modified' => array('type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was modified'), + 'created' => array('type' => 'datetime', 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), ), 'primary key' => array('profile_id', 'application_id', 'token'), 'foreign keys' => array( diff --git a/classes/Old_school_prefs.php b/classes/Old_school_prefs.php index 44303b959c..cf62acd752 100644 --- a/classes/Old_school_prefs.php +++ b/classes/Old_school_prefs.php @@ -57,8 +57,8 @@ class Old_school_prefs extends Managed_DataObject 'stream_nicknames' => array('type' => 'bool', 'default' => true, 'description' => 'Show nicknames for authors and addressees in streams'), - 'created' => array('type' => 'datetime', 'not null' => true, 'default' => '0000-00-00 00:00:00', 'description' => 'date this record was created'), - 'modified' => array('type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was modified'), + 'created' => array('type' => 'datetime', 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), ), 'primary key' => array('user_id'), 'foreign keys' => array( diff --git a/classes/Profile.php b/classes/Profile.php index 17e0409b2d..a545c446c5 100644 --- a/classes/Profile.php +++ b/classes/Profile.php @@ -15,15 +15,14 @@ // along with GNU social. If not, see . /** + * Table Definition for profile + * * @copyright 2008-2011 StatusNet, Inc. * @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later */ defined('GNUSOCIAL') || die(); -/** - * Table Definition for profile - */ class Profile extends Managed_DataObject { public $__table = 'profile'; // table name @@ -38,8 +37,8 @@ class Profile extends Managed_DataObject public $lon; // decimal(10,7) public $location_id; // int(4) public $location_ns; // int(4) - public $created; // datetime() not_null default_0000-00-00%2000%3A00%3A00 - public $modified; // datetime() not_null default_CURRENT_TIMESTAMP + public $created; // datetime() + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP public static function schemaDef() { @@ -57,8 +56,8 @@ class Profile extends Managed_DataObject 'lon' => array('type' => 'numeric', 'precision' => 10, 'scale' => 7, 'description' => 'longitude'), 'location_id' => array('type' => 'int', 'description' => 'location id if possible'), 'location_ns' => array('type' => 'int', 'description' => 'namespace for location'), - 'created' => array('type' => 'datetime', 'not null' => true, 'default' => '0000-00-00 00:00:00', 'description' => 'date this record was created'), - 'modified' => array('type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was modified'), + 'created' => array('type' => 'datetime', 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), ), 'primary key' => array('id'), 'indexes' => array( diff --git a/classes/Profile_block.php b/classes/Profile_block.php index 4cd9f43527..eb1ddf4d5e 100644 --- a/classes/Profile_block.php +++ b/classes/Profile_block.php @@ -1,29 +1,27 @@ . + /* - * StatusNet - the distributed open-source microblogging tool - * Copyright (C) 2008, 2009, StatusNet, 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 . - */ - -if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } - -/** * Table Definition for profile_block + * + * @copyright 2008, 2009 StatusNet, Inc. + * @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later */ -require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; +defined('GNUSOCIAL') || die(); class Profile_block extends Managed_DataObject { @@ -44,7 +42,7 @@ class Profile_block extends Managed_DataObject 'fields' => array( 'blocker' => array('type' => 'int', 'not null' => true, 'description' => 'user making the block'), 'blocked' => array('type' => 'int', 'not null' => true, 'description' => 'profile that is blocked'), - 'modified' => array('type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date of blocking'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date of blocking'), ), 'foreign keys' => array( 'profile_block_blocker_fkey' => array('user', array('blocker' => 'id')), @@ -54,7 +52,7 @@ class Profile_block extends Managed_DataObject ); } - static function exists(Profile $blocker, Profile $blocked) + public static function exists(Profile $blocker, Profile $blocked) { return Profile_block::pkeyGet(array('blocker' => $blocker->id, 'blocked' => $blocked->id)); diff --git a/classes/Profile_list.php b/classes/Profile_list.php index 0ec17881d4..b41d13b84d 100644 --- a/classes/Profile_list.php +++ b/classes/Profile_list.php @@ -32,8 +32,8 @@ class Profile_list extends Managed_DataObject public $tag; // varchar(64) public $description; // text public $private; // bool default_false - public $created; // datetime() not_null default_0000-00-00%2000%3A00%3A00 - public $modified; // datetime() not_null default_CURRENT_TIMESTAMP + public $created; // datetime() + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP public $uri; // varchar(191) unique_key not 255 because utf8mb4 takes more space public $mainpage; // varchar(191) not 255 because utf8mb4 takes more space public $tagged_count; // smallint @@ -49,8 +49,8 @@ class Profile_list extends Managed_DataObject 'description' => array('type' => 'text', 'description' => 'description of the people tag'), 'private' => array('type' => 'bool', 'default' => false, 'description' => 'is this tag private'), - 'created' => array('type' => 'datetime', 'not null' => true, 'default' => '0000-00-00 00:00:00', 'description' => 'date the tag was added'), - 'modified' => array('type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date the tag was modified'), + 'created' => array('type' => 'datetime', 'description' => 'date the tag was added'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date the tag was modified'), 'uri' => array('type' => 'varchar', 'length' => 191, 'description' => 'universal identifier'), 'mainpage' => array('type' => 'varchar', 'length' => 191, 'description' => 'page to link to'), diff --git a/classes/Profile_prefs.php b/classes/Profile_prefs.php index d8ad9aab35..a149da3153 100644 --- a/classes/Profile_prefs.php +++ b/classes/Profile_prefs.php @@ -33,8 +33,8 @@ class Profile_prefs extends Managed_DataObject public $namespace; // varchar(191) not_null public $topic; // varchar(191) not_null public $data; // text - public $created; // datetime() not_null default_0000-00-00%2000%3A00%3A00 - public $modified; // datetime() not_null default_CURRENT_TIMESTAMP + public $created; // datetime() + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP public static function schemaDef() { @@ -44,8 +44,8 @@ class Profile_prefs extends Managed_DataObject 'namespace' => array('type' => 'varchar', 'length' => 191, 'not null' => true, 'description' => 'namespace, like pluginname or category'), 'topic' => array('type' => 'varchar', 'length' => 191, 'not null' => true, 'description' => 'preference key, i.e. description, age...'), 'data' => array('type' => 'blob', 'description' => 'topic data, may be anything'), - 'created' => array('type' => 'datetime', 'not null' => true, 'default' => '0000-00-00 00:00:00', 'description' => 'date this record was created'), - 'modified' => array('type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was modified'), + 'created' => array('type' => 'datetime', 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), ), 'primary key' => array('profile_id', 'namespace', 'topic'), 'foreign keys' => array( diff --git a/classes/Profile_role.php b/classes/Profile_role.php index 42a7373f57..38c846a8dc 100644 --- a/classes/Profile_role.php +++ b/classes/Profile_role.php @@ -1,31 +1,27 @@ . + /* - * StatusNet - the distributed open-source microblogging tool - * Copyright (C) 2009, StatusNet, 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 . - */ - -if (!defined('STATUSNET')) { - exit(1); -} - -/** * Table Definition for profile_role + * + * @copyright 2009 StatusNet, Inc. + * @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later */ -require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; +defined('GNUSOCIAL') || die(); class Profile_role extends Managed_DataObject { @@ -35,7 +31,7 @@ class Profile_role extends Managed_DataObject public $__table = 'profile_role'; // table name public $profile_id; // int(4) primary_key not_null public $role; // varchar(32) primary_key not_null - public $created; // datetime() not_null default_0000-00-00%2000%3A00%3A00 + public $created; // datetime() /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE @@ -46,7 +42,7 @@ class Profile_role extends Managed_DataObject 'fields' => array( 'profile_id' => array('type' => 'int', 'not null' => true, 'description' => 'account having the role'), 'role' => array('type' => 'varchar', 'length' => 32, 'not null' => true, 'description' => 'string representing the role'), - 'created' => array('type' => 'datetime', 'not null' => true, 'default' => '0000-00-00 00:00:00', 'description' => 'date the role was granted'), + 'created' => array('type' => 'datetime', 'description' => 'date the role was granted'), ), 'primary key' => array('profile_id', 'role'), 'foreign keys' => array( diff --git a/classes/Profile_tag.php b/classes/Profile_tag.php index 97dfffbeeb..70f57883ce 100644 --- a/classes/Profile_tag.php +++ b/classes/Profile_tag.php @@ -25,7 +25,7 @@ class Profile_tag extends Managed_DataObject public $tagger; // int(4) primary_key not_null public $tagged; // int(4) primary_key not_null public $tag; // varchar(64) primary_key not_null - public $modified; // datetime() not_null default_CURRENT_TIMESTAMP + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP public static function schemaDef() { @@ -35,7 +35,7 @@ class Profile_tag extends Managed_DataObject 'tagger' => array('type' => 'int', 'not null' => true, 'description' => 'user making the tag'), 'tagged' => array('type' => 'int', 'not null' => true, 'description' => 'profile tagged'), 'tag' => array('type' => 'varchar', 'length' => 64, 'not null' => true, 'description' => 'hash tag associated with this notice'), - 'modified' => array('type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date the tag was added'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date the tag was added'), ), 'primary key' => array('tagger', 'tagged', 'tag'), 'foreign keys' => array( diff --git a/classes/Profile_tag_subscription.php b/classes/Profile_tag_subscription.php index a7d777b33c..8e002cba64 100644 --- a/classes/Profile_tag_subscription.php +++ b/classes/Profile_tag_subscription.php @@ -1,8 +1,24 @@ . + /** * Table Definition for profile_tag_subscription */ -require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; + +defined('GNUSOCIAL') || die(); class Profile_tag_subscription extends Managed_DataObject { @@ -12,8 +28,8 @@ class Profile_tag_subscription extends Managed_DataObject public $__table = 'profile_tag_subscription'; // table name public $profile_tag_id; // int(4) not_null public $profile_id; // int(4) not_null - public $created; // datetime() not_null default_0000-00-00%2000%3A00%3A00 - public $modified; // datetime() not_null default_CURRENT_TIMESTAMP + public $created; // datetime() + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE @@ -25,8 +41,8 @@ class Profile_tag_subscription extends Managed_DataObject 'profile_tag_id' => array('type' => 'int', 'not null' => true, 'description' => 'foreign key to profile_tag'), 'profile_id' => array('type' => 'int', 'not null' => true, 'description' => 'foreign key to profile table'), - 'created' => array('type' => 'datetime', 'not null' => true, 'default' => '0000-00-00 00:00:00', 'description' => 'date this record was created'), - 'modified' => array('type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was modified'), + 'created' => array('type' => 'datetime', 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), ), 'primary key' => array('profile_tag_id', 'profile_id'), 'foreign keys' => array( @@ -41,7 +57,7 @@ class Profile_tag_subscription extends Managed_DataObject ); } - static function add($peopletag, $profile) + public static function add($peopletag, $profile) { if ($peopletag->private) { return false; @@ -51,7 +67,7 @@ class Profile_tag_subscription extends Managed_DataObject $args = array('profile_tag_id' => $peopletag->id, 'profile_id' => $profile->id); $existing = Profile_tag_subscription::pkeyGet($args); - if(!empty($existing)) { + if (!empty($existing)) { return $existing; } @@ -76,7 +92,7 @@ class Profile_tag_subscription extends Managed_DataObject } } - static function remove($peopletag, $profile) + public static function remove($peopletag, $profile) { $sub = Profile_tag_subscription::pkeyGet(array('profile_tag_id' => $peopletag->id, 'profile_id' => $profile->id)); @@ -103,12 +119,13 @@ class Profile_tag_subscription extends Managed_DataObject } // called if a tag gets deleted / made private - static function cleanup($profile_list) { + public static function cleanup($profile_list) + { $subs = new self(); $subs->profile_tag_id = $profile_list->id; $subs->find(); - while($subs->fetch()) { + while ($subs->fetch()) { $profile = Profile::getKV('id', $subs->profile_id); Event::handle('StartUnsubscribePeopletag', array($profile_list, $profile)); // Delete anyway @@ -117,22 +134,26 @@ class Profile_tag_subscription extends Managed_DataObject } } - function insert() + public function insert() { $result = parent::insert(); if ($result) { - self::blow('profile_list:subscriber_count:%d', - $this->profile_tag_id); + self::blow( + 'profile_list:subscriber_count:%d', + $this->profile_tag_id + ); } return $result; } - function delete($useWhere=false) + public function delete($useWhere = false) { $result = parent::delete($useWhere); if ($result !== false) { - self::blow('profile_list:subscriber_count:%d', - $this->profile_tag_id); + self::blow( + 'profile_list:subscriber_count:%d', + $this->profile_tag_id + ); } return $result; } diff --git a/classes/Queue_item.php b/classes/Queue_item.php index d83c896a28..709b35435f 100644 --- a/classes/Queue_item.php +++ b/classes/Queue_item.php @@ -1,8 +1,24 @@ . + /** * Table Definition for queue_item */ -require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; + +defined('GNUSOCIAL') || die(); class Queue_item extends Managed_DataObject { @@ -13,7 +29,7 @@ class Queue_item extends Managed_DataObject public $id; // int(4) primary_key not_null public $frame; // blob not_null public $transport; // varchar(32) - public $created; // datetime() not_null default_0000-00-00%2000%3A00%3A00 + public $created; // datetime() public $claimed; // datetime() /* the code above is auto generated do not remove the tag below */ @@ -26,7 +42,7 @@ class Queue_item extends Managed_DataObject 'id' => array('type' => 'serial', 'not null' => true, 'description' => 'unique identifier'), 'frame' => array('type' => 'blob', 'not null' => true, 'description' => 'data: object reference or opaque string'), 'transport' => array('type' => 'varchar', 'length' => 32, 'not null' => true, 'description' => 'queue for what? "email", "xmpp", "sms", "irc", ...'), - 'created' => array('type' => 'datetime', 'not null' => true, 'default' => '0000-00-00 00:00:00', 'description' => 'date this record was created'), + 'created' => array('type' => 'datetime', 'description' => 'date this record was created'), 'claimed' => array('type' => 'datetime', 'description' => 'date this item was claimed'), ), 'primary key' => array('id'), @@ -40,8 +56,8 @@ class Queue_item extends Managed_DataObject * @param mixed $transports name of a single queue or array of queues to pull from * If not specified, checks all queues in the system. */ - static function top($transports=null, array $ignored_transports=array()) { - + public static function top($transports = null, array $ignored_transports = []) + { $qi = new Queue_item(); if ($transports) { if (is_array($transports)) { @@ -86,7 +102,7 @@ class Queue_item extends Managed_DataObject /** * Release a claimed item. */ - function releaseClaim() + public function releaseClaim() { // DB_DataObject doesn't let us save nulls right now $sql = sprintf("UPDATE queue_item SET claimed=NULL WHERE id=%d", $this->getID()); diff --git a/classes/Related_group.php b/classes/Related_group.php index 159598329e..7ed64b9c47 100644 --- a/classes/Related_group.php +++ b/classes/Related_group.php @@ -1,8 +1,25 @@ . + /** * Table Definition for related_group */ +defined('GNUSOCIAL') || die(); + class Related_group extends Managed_DataObject { ###START_AUTOCODE @@ -11,7 +28,7 @@ class Related_group extends Managed_DataObject public $__table = 'related_group'; // table name public $group_id; // int(4) primary_key not_null public $related_group_id; // int(4) primary_key not_null - public $created; // datetime() not_null default_0000-00-00%2000%3A00%3A00 + public $created; // datetime() /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE @@ -23,7 +40,7 @@ class Related_group extends Managed_DataObject 'fields' => array( 'group_id' => array('type' => 'int', 'not null' => true, 'description' => 'foreign key to user_group'), 'related_group_id' => array('type' => 'int', 'not null' => true, 'description' => 'foreign key to user_group'), - 'created' => array('type' => 'datetime', 'not null' => true, 'default' => '0000-00-00 00:00:00', 'description' => 'date this record was created'), + 'created' => array('type' => 'datetime', 'description' => 'date this record was created'), ), 'primary key' => array('group_id', 'related_group_id'), 'foreign keys' => array( diff --git a/classes/Remember_me.php b/classes/Remember_me.php index f94180a760..20c3d66a5a 100644 --- a/classes/Remember_me.php +++ b/classes/Remember_me.php @@ -1,8 +1,24 @@ . + /** * Table Definition for remember_me */ -require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; + +defined('GNUSOCIAL') || die(); class Remember_me extends Managed_DataObject { @@ -12,7 +28,7 @@ class Remember_me extends Managed_DataObject public $__table = 'remember_me'; // table name public $code; // varchar(32) primary_key not_null public $user_id; // int(4) not_null - public $modified; // datetime() not_null default_CURRENT_TIMESTAMP + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE @@ -23,12 +39,12 @@ class Remember_me extends Managed_DataObject 'fields' => array( 'code' => array('type' => 'varchar', 'length' => 32, 'not null' => true, 'description' => 'good random code'), 'user_id' => array('type' => 'int', 'not null' => true, 'description' => 'user who is logged in'), - 'modified' => array('type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was modified'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), ), 'primary key' => array('code'), 'foreign keys' => array( 'remember_me_user_id_fkey' => array('user', array('user_id' => 'id')), ), ); - } + } } diff --git a/classes/Reply.php b/classes/Reply.php index e19ae789ec..754e0627c0 100644 --- a/classes/Reply.php +++ b/classes/Reply.php @@ -1,8 +1,24 @@ . + /** * Table Definition for reply */ -require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; + +defined('GNUSOCIAL') || die(); class Reply extends Managed_DataObject { @@ -12,7 +28,7 @@ class Reply extends Managed_DataObject public $__table = 'reply'; // table name public $notice_id; // int(4) primary_key not_null public $profile_id; // int(4) primary_key not_null - public $modified; // datetime() not_null default_CURRENT_TIMESTAMP + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP public $replied_id; // int(4) /* the code above is auto generated do not remove the tag below */ @@ -24,7 +40,7 @@ class Reply extends Managed_DataObject 'fields' => array( 'notice_id' => array('type' => 'int', 'not null' => true, 'description' => 'notice that is the reply'), 'profile_id' => array('type' => 'int', 'not null' => true, 'description' => 'profile replied to'), - 'modified' => array('type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was modified'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), 'replied_id' => array('type' => 'int', 'description' => 'notice replied to (not used, see notice.reply_to)'), ), 'primary key' => array('notice_id', 'profile_id'), @@ -39,12 +55,12 @@ class Reply extends Managed_DataObject 'reply_profile_id_modified_notice_id_idx' => array('profile_id', 'modified', 'notice_id') ), ); - } - + } + /** * Wrapper for record insertion to update related caches */ - function insert() + public function insert() { $result = parent::insert(); @@ -55,8 +71,13 @@ class Reply extends Managed_DataObject return $result; } - static function stream($user_id, $offset=0, $limit=NOTICES_PER_PAGE, $since_id=0, $max_id=0) - { + public static function stream( + $user_id, + $offset = 0, + $limit = NOTICES_PER_PAGE, + $since_id = 0, + $max_id = 0 + ) { // FIXME: Use some other method to get Profile::current() in order // to avoid confusion between background processing and session user. $stream = new ReplyNoticeStream($user_id, Profile::current()); diff --git a/classes/Schema_version.php b/classes/Schema_version.php index bc0b53b63d..ae6e97980f 100644 --- a/classes/Schema_version.php +++ b/classes/Schema_version.php @@ -1,8 +1,25 @@ . + /** * Table Definition for schema_version */ +defined('GNUSOCIAL') || die(); + class Schema_version extends Managed_DataObject { ###START_AUTOCODE @@ -11,7 +28,7 @@ class Schema_version extends Managed_DataObject public $__table = 'schema_version'; // table name public $table_name; // varchar(64) primary_key not_null public $checksum; // varchar(64) not_null - public $modified; // datetime() not_null default_CURRENT_TIMESTAMP + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE @@ -23,7 +40,7 @@ class Schema_version extends Managed_DataObject 'fields' => array( 'table_name' => array('type' => 'varchar', 'length' => '64', 'not null' => true, 'description' => 'Table name'), 'checksum' => array('type' => 'varchar', 'length' => '64', 'not null' => true, 'description' => 'Checksum of schema array; a mismatch indicates we should check the table more thoroughly.'), - 'modified' => array('type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was modified'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), ), 'primary key' => array('table_name'), ); diff --git a/classes/Session.php b/classes/Session.php index 4e3a2c6bea..aabdd8be99 100644 --- a/classes/Session.php +++ b/classes/Session.php @@ -29,8 +29,6 @@ defined('GNUSOCIAL') || die(); -require_once INSTALLDIR . '/classes/Memcached_DataObject.php'; - /** * Superclass representing a saved session as it exists in the database. * @@ -45,8 +43,8 @@ class Session extends Managed_DataObject public $__table = 'session'; // table name public $id; // varchar(32) primary_key not_null public $session_data; // text() - public $created; // datetime() not_null default_0000-00-00%2000%3A00%3A00 - public $modified; // datetime() not_null default_CURRENT_TIMESTAMP + public $created; // datetime() + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE @@ -62,8 +60,8 @@ class Session extends Managed_DataObject 'fields' => [ 'id' => ['type' => 'varchar', 'length' => 32, 'not null' => true, 'description' => 'session ID'], 'session_data' => ['type' => 'text', 'description' => 'session data'], - 'created' => ['type' => 'datetime', 'not null' => true, 'default' => '0000-00-00 00:00:00', 'description' => 'date this record was created'], - 'modified' => ['type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was modified'], + 'created' => ['type' => 'datetime', 'description' => 'date this record was created'], + 'modified' => ['type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'], ], 'primary key' => ['id'], 'indexes' => [ diff --git a/classes/Sms_carrier.php b/classes/Sms_carrier.php index a33652905d..6b30b9265e 100644 --- a/classes/Sms_carrier.php +++ b/classes/Sms_carrier.php @@ -1,8 +1,24 @@ . + /** * Table Definition for sms_carrier */ -require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; + +defined('GNUSOCIAL') || die(); class Sms_carrier extends Managed_DataObject { @@ -13,13 +29,13 @@ class Sms_carrier extends Managed_DataObject public $id; // int(4) primary_key not_null public $name; // varchar(64) unique_key public $email_pattern; // varchar(191) not_null not 255 because utf8mb4 takes more space - public $created; // datetime() not_null default_0000-00-00%2000%3A00%3A00 - public $modified; // datetime() not_null default_CURRENT_TIMESTAMP + public $created; // datetime() + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE - function toEmailAddress($sms) + public function toEmailAddress($sms) { return sprintf($this->email_pattern, $sms); } @@ -31,8 +47,8 @@ class Sms_carrier extends Managed_DataObject 'id' => array('type' => 'int', 'not null' => true, 'description' => 'primary key for SMS carrier'), 'name' => array('type' => 'varchar', 'length' => 64, 'description' => 'name of the carrier'), 'email_pattern' => array('type' => 'varchar', 'length' => 191, 'not null' => true, 'description' => 'sprintf pattern for making an email address from a phone number'), - 'created' => array('type' => 'datetime', 'not null' => true, 'default' => '0000-00-00 00:00:00', 'description' => 'date this record was created'), - 'modified' => array('type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was modified'), + 'created' => array('type' => 'datetime', 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), ), 'primary key' => array('id'), 'unique keys' => array( diff --git a/classes/Subscription.php b/classes/Subscription.php index f075acb33c..228d9412b8 100644 --- a/classes/Subscription.php +++ b/classes/Subscription.php @@ -37,8 +37,8 @@ class Subscription extends Managed_DataObject public $token; // varchar(191) not 255 because utf8mb4 takes more space public $secret; // varchar(191) not 255 because utf8mb4 takes more space public $uri; // varchar(191) not 255 because utf8mb4 takes more space - public $created; // datetime() not_null default_0000-00-00%2000%3A00%3A00 - public $modified; // datetime() not_null default_CURRENT_TIMESTAMP + public $created; // datetime() + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP public static function schemaDef() { @@ -51,8 +51,8 @@ class Subscription extends Managed_DataObject 'token' => array('type' => 'varchar', 'length' => 191, 'description' => 'authorization token'), 'secret' => array('type' => 'varchar', 'length' => 191, 'description' => 'token secret'), 'uri' => array('type' => 'varchar', 'length' => 191, 'description' => 'universally unique identifier'), - 'created' => array('type' => 'datetime', 'not null' => true, 'default' => '0000-00-00 00:00:00', 'description' => 'date this record was created'), - 'modified' => array('type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was modified'), + 'created' => array('type' => 'datetime', 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), ), 'primary key' => array('subscriber', 'subscribed'), 'unique keys' => array( diff --git a/classes/Subscription_queue.php b/classes/Subscription_queue.php index 72b2e54de5..b09a635676 100644 --- a/classes/Subscription_queue.php +++ b/classes/Subscription_queue.php @@ -1,11 +1,25 @@ . /** * Table Definition for subscription_queue */ +defined('GNUSOCIAL') || die(); + class Subscription_queue extends Managed_DataObject { public $__table = 'subscription_queue'; // table name @@ -20,7 +34,7 @@ class Subscription_queue extends Managed_DataObject 'fields' => array( 'subscriber' => array('type' => 'int', 'not null' => true, 'description' => 'remote or local profile making the request'), 'subscribed' => array('type' => 'int', 'not null' => true, 'description' => 'remote or local profile being subscribed to'), - 'created' => array('type' => 'datetime', 'not null' => true, 'default' => '0000-00-00 00:00:00', 'description' => 'date this record was created'), + 'created' => array('type' => 'datetime', 'description' => 'date this record was created'), ), 'primary key' => array('subscriber', 'subscribed'), 'indexes' => array( @@ -47,14 +61,14 @@ class Subscription_queue extends Managed_DataObject return $rq; } - static function exists(Profile $subscriber, Profile $other) + public static function exists(Profile $subscriber, Profile $other) { $sub = Subscription_queue::pkeyGet(array('subscriber' => $subscriber->getID(), 'subscribed' => $other->getID())); return ($sub instanceof Subscription_queue); } - static function getSubQueue(Profile $subscriber, Profile $other) + public static function getSubQueue(Profile $subscriber, Profile $other) { // This is essentially a pkeyGet but we have an object to return in NoResultException $sub = new Subscription_queue(); diff --git a/classes/Token.php b/classes/Token.php index 00ec6c81e8..f02f977227 100644 --- a/classes/Token.php +++ b/classes/Token.php @@ -1,8 +1,24 @@ . + /** * Table Definition for token */ -require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; + +defined('GNUSOCIAL') || die(); class Token extends Managed_DataObject { @@ -17,8 +33,8 @@ class Token extends Managed_DataObject public $state; // tinyint(1) public $verifier; // varchar(191) not 255 because utf8mb4 takes more space public $verified_callback; // varchar(191) not 255 because utf8mb4 takes more space - public $created; // datetime() not_null default_0000-00-00%2000%3A00%3A00 - public $modified; // datetime() not_null default_CURRENT_TIMESTAMP + public $created; // datetime() + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE @@ -34,8 +50,8 @@ class Token extends Managed_DataObject 'state' => array('type' => 'int', 'size' => 'tiny', 'default' => 0, 'description' => 'for requests, 0 = initial, 1 = authorized, 2 = used'), 'verifier' => array('type' => 'varchar', 'length' => 191, 'description' => 'verifier string for OAuth 1.0a'), 'verified_callback' => array('type' => 'varchar', 'length' => 191, 'description' => 'verified callback URL for OAuth 1.0a'), - 'created' => array('type' => 'datetime', 'not null' => true, 'default' => '0000-00-00 00:00:00', 'description' => 'date this record was created'), - 'modified' => array('type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was modified'), + 'created' => array('type' => 'datetime', 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), ), 'primary key' => array('consumer_key', 'tok'), 'foreign keys' => array( diff --git a/classes/Unavailable_status_network.php b/classes/Unavailable_status_network.php index c5ddff5478..415acaa002 100644 --- a/classes/Unavailable_status_network.php +++ b/classes/Unavailable_status_network.php @@ -1,54 +1,48 @@ . + /** * Data class for unavailable status networks * - * PHP version 5 - * - * @category Data - * @package StatusNet - * @author Evan Prodromou - * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 - * @link http://status.net/ - * - * StatusNet - the distributed open-source microblogging tool - * Copyright (C) 2011, StatusNet, 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 . + * @category Data + * @package GNUsocial + * @author Evan Prodromou + * @copyright 2011 StatusNet, Inc. + * @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later */ -if (!defined('STATUSNET')) { - exit(1); -} +defined('GNUSOCIAL') || die(); /** * Keeps a list of unavailable status network names * - * @category Data - * @package StatusNet - * @author Evan Prodromou - * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 - * @link http://status.net/ + * @category Data + * @package GNUsocial + * @author Evan Prodromou + * @copyright 2011 StatusNet, Inc. + * @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later * * @see Managed_DataObject */ - class Unavailable_status_network extends Managed_DataObject { public $__table = 'unavailable_status_network'; // table name public $nickname; // varchar(64) UUID - public $created; // datetime() not_null default_0000-00-00%2000%3A00%3A00 + public $created; // datetime() /** * The One True Thingy that must be defined and declared. @@ -61,8 +55,7 @@ class Unavailable_status_network extends Managed_DataObject 'nickname' => array('type' => 'varchar', 'length' => 64, 'not null' => true, 'description' => 'nickname not to use'), - 'created' => array('type' => 'datetime', - 'not null' => true, 'default' => '0000-00-00 00:00:00'), + 'created' => array('type' => 'datetime'), ), 'primary key' => array('nickname'), ); diff --git a/classes/User.php b/classes/User.php index 3f1006905d..ebc759779a 100644 --- a/classes/User.php +++ b/classes/User.php @@ -52,8 +52,8 @@ class User extends Managed_DataObject public $subscribe_policy; // tinyint(1) public $urlshorteningservice; // varchar(50) default_ur1.ca public $private_stream; // bool default_false - public $created; // datetime() not_null default_0000-00-00%2000%3A00%3A00 - public $modified; // datetime() not_null default_CURRENT_TIMESTAMP + public $created; // datetime() + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE @@ -86,8 +86,8 @@ class User extends Managed_DataObject 'subscribe_policy' => array('type' => 'int', 'size' => 'tiny', 'default' => 0, 'description' => '0 = anybody can subscribe; 1 = require approval'), 'urlshorteningservice' => array('type' => 'varchar', 'length' => 50, 'default' => 'internal', 'description' => 'service to use for auto-shortening URLs'), 'private_stream' => array('type' => 'bool', 'default' => false, 'description' => 'whether to limit all notices to followers only'), - 'created' => array('type' => 'datetime', 'not null' => true, 'default' => '0000-00-00 00:00:00', 'description' => 'date this record was created'), - 'modified' => array('type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was modified'), + 'created' => array('type' => 'datetime', 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), ), 'primary key' => array('id'), 'unique keys' => array( diff --git a/classes/User_group.php b/classes/User_group.php index 0b4a8193a5..a579d1126a 100644 --- a/classes/User_group.php +++ b/classes/User_group.php @@ -40,8 +40,8 @@ class User_group extends Managed_DataObject public $homepage_logo; // varchar(191) not 255 because utf8mb4 takes more space public $stream_logo; // varchar(191) not 255 because utf8mb4 takes more space public $mini_logo; // varchar(191) not 255 because utf8mb4 takes more space - public $created; // datetime() not_null default_0000-00-00%2000%3A00%3A00 - public $modified; // datetime() not_null default_CURRENT_TIMESTAMP + public $created; // datetime() + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP public $uri; // varchar(191) unique_key not 255 because utf8mb4 takes more space public $mainpage; // varchar(191) not 255 because utf8mb4 takes more space public $join_policy; // tinyint @@ -74,8 +74,8 @@ class User_group extends Managed_DataObject 'stream_logo' => array('type' => 'varchar', 'length' => 191, 'description' => 'stream-sized logo'), 'mini_logo' => array('type' => 'varchar', 'length' => 191, 'description' => 'mini logo'), - 'created' => array('type' => 'datetime', 'not null' => true, 'default' => '0000-00-00 00:00:00', 'description' => 'date this record was created'), - 'modified' => array('type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was modified'), + 'created' => array('type' => 'datetime', 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), 'uri' => array('type' => 'varchar', 'length' => 191, 'description' => 'universal identifier'), 'mainpage' => array('type' => 'varchar', 'length' => 191, 'description' => 'page for group info to link to'), diff --git a/classes/User_im_prefs.php b/classes/User_im_prefs.php index 11a8bedc4b..d5fc9e2034 100644 --- a/classes/User_im_prefs.php +++ b/classes/User_im_prefs.php @@ -26,8 +26,6 @@ defined('GNUSOCIAL') || die(); -require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; - class User_im_prefs extends Managed_DataObject { ###START_AUTOCODE @@ -40,8 +38,8 @@ class User_im_prefs extends Managed_DataObject public $notify; // bool not_null default_false public $replies; // bool not_null default_false public $updatefrompresence; // bool not_null default_false - public $created; // datetime() not_null default_0000-00-00%2000%3A00%3A00 - public $modified; // datetime() not_null default_CURRENT_TIMESTAMP + public $created; // datetime() + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE @@ -56,8 +54,8 @@ class User_im_prefs extends Managed_DataObject 'notify' => array('type' => 'bool', 'not null' => true, 'default' => false, 'description' => 'Notify when a new notice is sent'), 'replies' => array('type' => 'bool', 'not null' => true, 'default' => false, 'description' => 'Send replies from people not subscribed to'), 'updatefrompresence' => array('type' => 'bool', 'not null' => true, 'default' => false, 'description' => 'Update from presence.'), - 'created' => array('type' => 'datetime', 'not null' => true, 'default' => '0000-00-00 00:00:00', 'description' => 'date this record was created'), - 'modified' => array('type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was modified'), + 'created' => array('type' => 'datetime', 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), ), 'primary key' => array('user_id', 'transport'), 'unique keys' => array( diff --git a/classes/User_location_prefs.php b/classes/User_location_prefs.php index b825999e21..74e09fa0ec 100644 --- a/classes/User_location_prefs.php +++ b/classes/User_location_prefs.php @@ -24,7 +24,7 @@ * @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later */ -require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; +defined('GNUSOCIAL') || die(); class User_location_prefs extends Managed_DataObject { @@ -34,8 +34,8 @@ class User_location_prefs extends Managed_DataObject public $__table = 'user_location_prefs'; // table name public $user_id; // int(4) primary_key not_null public $share_location; // bool default_true - public $created; // datetime() not_null default_0000-00-00%2000%3A00%3A00 - public $modified; // datetime() not_null default_CURRENT_TIMESTAMP + public $created; // datetime() + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE @@ -46,8 +46,8 @@ class User_location_prefs extends Managed_DataObject 'fields' => array( 'user_id' => array('type' => 'int', 'not null' => true, 'description' => 'user who has the preference'), 'share_location' => array('type' => 'bool', 'default' => true, 'description' => 'Whether to share location data'), - 'created' => array('type' => 'datetime', 'not null' => true, 'default' => '0000-00-00 00:00:00', 'description' => 'date this record was created'), - 'modified' => array('type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was modified'), + 'created' => array('type' => 'datetime', 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), ), 'primary key' => array('user_id'), 'foreign keys' => array( diff --git a/classes/User_urlshortener_prefs.php b/classes/User_urlshortener_prefs.php index f9417d2238..2bf2dad76f 100644 --- a/classes/User_urlshortener_prefs.php +++ b/classes/User_urlshortener_prefs.php @@ -1,25 +1,25 @@ . + /* - * StatusNet - the distributed open-source microblogging tool - * Copyright (C) 2010, StatusNet, 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 . + * @copyright 2010 StatusNet, Inc. + * @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later */ -if (!defined('STATUSNET') && !defined('LACONICA')) { - exit(1); -} +defined('GNUSOCIAL') || die(); class User_urlshortener_prefs extends Managed_DataObject { @@ -31,8 +31,8 @@ class User_urlshortener_prefs extends Managed_DataObject public $urlshorteningservice; // varchar(50) default_ur1.ca public $maxurllength; // int(4) not_null public $maxnoticelength; // int(4) not_null - public $created; // datetime() not_null default_0000-00-00%2000%3A00%3A00 - public $modified; // datetime() not_null default_CURRENT_TIMESTAMP + public $created; // datetime() + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE @@ -45,8 +45,8 @@ class User_urlshortener_prefs extends Managed_DataObject 'urlshorteningservice' => array('type' => 'varchar', 'length' => 50, 'default' => 'internal', 'description' => 'service to use for auto-shortening URLs'), 'maxurllength' => array('type' => 'int', 'not null' => true, 'description' => 'urls greater than this length will be shortened, 0 = always, null = never'), 'maxnoticelength' => array('type' => 'int', 'not null' => true, 'description' => 'notices with content greater than this value will have all urls shortened, 0 = always, -1 = only if notice text is longer than max allowed'), - 'created' => array('type' => 'datetime', 'not null' => true, 'default' => '0000-00-00 00:00:00', 'description' => 'date this record was created'), - 'modified' => array('type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was modified'), + 'created' => array('type' => 'datetime', 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), ), 'primary key' => array('user_id'), 'foreign keys' => array( @@ -55,7 +55,7 @@ class User_urlshortener_prefs extends Managed_DataObject ); } - static function maxUrlLength($user) + public static function maxUrlLength($user) { $def = common_config('url', 'maxurllength'); @@ -68,7 +68,7 @@ class User_urlshortener_prefs extends Managed_DataObject } } - static function maxNoticeLength($user) + public static function maxNoticeLength($user) { $def = common_config('url', 'maxnoticelength'); @@ -90,7 +90,7 @@ class User_urlshortener_prefs extends Managed_DataObject } } - static function urlShorteningService($user) + public static function urlShorteningService($user) { $def = common_config('url', 'shortener'); @@ -107,7 +107,7 @@ class User_urlshortener_prefs extends Managed_DataObject } } - static function getPrefs($user) + public static function getPrefs($user) { if (empty($user)) { return null; diff --git a/classes/User_username.php b/classes/User_username.php index 6b7d3728b8..d78b9eade8 100644 --- a/classes/User_username.php +++ b/classes/User_username.php @@ -14,13 +14,12 @@ // You should have received a copy of the GNU Affero General Public License // along with GNU social. If not, see . -defined('GNUSOCIAL') || die(); - -require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; - /** * Table Definition for user_username */ + +defined('GNUSOCIAL') || die(); + class User_username extends Managed_DataObject { ###START_AUTOCODE @@ -30,8 +29,8 @@ class User_username extends Managed_DataObject public $user_id; // int(4) not_null public $provider_name; // varchar(191) primary_key not_null not 255 because utf8mb4 takes more space public $username; // varchar(191) primary_key not_null not 255 because utf8mb4 takes more space - public $created; // datetime() not_null default_0000-00-00%2000%3A00%3A00 - public $modified; // datetime() not_null default_CURRENT_TIMESTAMP + public $created; // datetime() + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE @@ -43,8 +42,8 @@ class User_username extends Managed_DataObject 'provider_name' => array('type' => 'varchar', 'not null' => true, 'length' => 191, 'description' => 'provider name'), 'username' => array('type' => 'varchar', 'not null' => true, 'length' => 191, 'description' => 'username'), 'user_id' => array('type' => 'int', 'not null' => true, 'description' => 'notice id this title relates to'), - 'created' => array('type' => 'datetime', 'not null' => true, 'default' => '0000-00-00 00:00:00', 'description' => 'date this record was created'), - 'modified' => array('type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was modified'), + 'created' => array('type' => 'datetime', 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), ), 'primary key' => array('provider_name', 'username'), 'indexes' => array( diff --git a/lib/database/mysqlschema.php b/lib/database/mysqlschema.php index bc6e8c2fd2..2967fe019a 100644 --- a/lib/database/mysqlschema.php +++ b/lib/database/mysqlschema.php @@ -145,8 +145,12 @@ class MysqlSchema extends Schema if (preg_match('/(^|\s)auto_increment(\s|$)/i', $extra)) { $field['auto_increment'] = true; } - // $row['EXTRA'] may contain 'on update CURRENT_TIMESTAMP' - // ^ ...... how to specify? + if (preg_match( + '/(^|\s)on update CURRENT_TIMESTAMP(\(\))?(\s|$)/i', + $extra + )) { + $field['auto_update_timestamp'] = true; + } } $table_props = $this->getTableProperties($table, ['TABLE_COLLATION']); @@ -457,13 +461,17 @@ class MysqlSchema extends Schema $line = []; $line[] = parent::columnSql($name, $cd); - // This'll have been added from our transform of 'serial' type + // This'll have been added from our transform of "serial" type if (!empty($cd['auto_increment'])) { - $line[] = 'auto_increment'; + $line[] = 'AUTO_INCREMENT'; + } + // This'll have been added from our transform of "timestamp" type + if (!empty($cd['auto_update_timestamp'])) { + $line[] = 'ON UPDATE CURRENT_TIMESTAMP'; } if (!empty($cd['description'])) { - $line[] = 'comment'; + $line[] = 'COMMENT'; $line[] = $this->quoteValue($cd['description']); } diff --git a/lib/database/pgsqlschema.php b/lib/database/pgsqlschema.php index 399d4814ee..39cc3bcf52 100644 --- a/lib/database/pgsqlschema.php +++ b/lib/database/pgsqlschema.php @@ -413,24 +413,9 @@ class PgsqlSchema extends Schema // No convenient support for field descriptions unset($col['description']); - switch ($col['type']) { - case 'serial': - $col['type'] = 'int'; - $col['auto_increment'] = true; - break; - case 'timestamp': - // FIXME: ON UPDATE CURRENT_TIMESTAMP - if (!array_key_exists('default', $col)) { - $col['default'] = 'CURRENT_TIMESTAMP'; - } - // no break - case 'datetime': - // Replace archaic MySQL-specific zero dates with NULL - if (($col['default'] ?? null) === '0000-00-00 00:00:00') { - $col['default'] = null; - $col['not null'] = false; - } - break; + if ($col['type'] === 'serial') { + $col['type'] = 'int'; + $col['auto_increment'] = true; } $col['type'] = $this->mapType($col); diff --git a/lib/database/schema.php b/lib/database/schema.php index 8549ad5bdf..64d53d2330 100644 --- a/lib/database/schema.php +++ b/lib/database/schema.php @@ -999,6 +999,23 @@ class Schema public function filterDef(string $tableName, array $tableDef) { foreach ($tableDef['fields'] as $name => &$col) { + switch ($col['type']) { + case 'timestamp': + $col['type'] = 'datetime'; + if (!array_key_exists('default', $col)) { + $col['default'] = 'CURRENT_TIMESTAMP'; + // FIXME: PostgreSQL support. + $col['auto_update_timestamp'] = true; + } + // no break + case 'datetime': + // Replace archaic MariaDB-specific "zero dates" with NULL + if (($col['default'] ?? null) === '0000-00-00 00:00:00') { + $col['default'] = null; + $col['not null'] = false; + } + break; + } if (array_key_exists('default', $col) && is_null($col['default'])) { unset($col['default']); } diff --git a/modules/Favorite/classes/Fave.php b/modules/Favorite/classes/Fave.php index fb5575c0d4..e9dd8ee616 100644 --- a/modules/Favorite/classes/Fave.php +++ b/modules/Favorite/classes/Fave.php @@ -1,8 +1,25 @@ . + /** * Table Definition for fave */ +defined('GNUSOCIAL') || die(); + class Fave extends Managed_DataObject { public $__table = 'fave'; // table name @@ -19,7 +36,7 @@ class Fave extends Managed_DataObject 'notice_id' => array('type' => 'int', 'not null' => true, 'description' => 'notice that is the favorite'), 'user_id' => array('type' => 'int', 'not null' => true, 'description' => 'user who likes this notice'), 'uri' => array('type' => 'varchar', 'length' => 191, 'description' => 'universally unique identifier, usually a tag URI'), - 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'), + 'created' => array('type' => 'datetime', 'description' => 'date this record was created'), 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), ), 'primary key' => array('notice_id', 'user_id'), @@ -47,7 +64,8 @@ class Fave extends Managed_DataObject * @return Fave record on success * @throws Exception on failure */ - static function addNew(Profile $actor, Notice $target) { + public static function addNew(Profile $actor, Notice $target) + { if (self::existsForProfile($target, $actor)) { // TRANS: Client error displayed when trying to mark a notice as favorite that already is a favorite. throw new AlreadyFulfilledException(_('You have already favorited this!')); @@ -61,9 +79,12 @@ class Fave extends Managed_DataObject $act->title = _("Favor"); // TRANS: Message that is the "content" of a favorite (%1$s is the actor's nickname, %2$ is the favorited // notice's nickname and %3$s is the content of the favorited notice.) - $act->content = sprintf(_('%1$s favorited something by %2$s: %3$s'), - $actor->getNickname(), $target->getProfile()->getNickname(), - $target->getRendered()); + $act->content = sprintf( + _('%1$s favorited something by %2$s: %3$s'), + $actor->getNickname(), + $target->getProfile()->getNickname(), + $target->getRendered() + ); $act->actor = $actor->asActivityObject(); $act->target = $target->asActivityObject(); $act->objects = array(clone($act->target)); @@ -79,7 +100,7 @@ class Fave extends Managed_DataObject return $stored; } - static function removeEntry(Profile $actor, Notice $target) + public static function removeEntry(Profile $actor, Notice $target) { $fave = new Fave(); $fave->user_id = $actor->getID(); @@ -121,14 +142,12 @@ class Fave extends Managed_DataObject $notice = $this->getTarget(); if (Event::handle('StartDisfavorNotice', array($profile, $notice, &$result))) { - $result = parent::delete($useWhere); if ($result !== false) { Event::handle('EndDisfavorNotice', array($profile, $notice)); } } - } catch (NoResultException $e) { // In case there's some inconsistency where the profile or notice was deleted without losing the fave db entry common_log(LOG_INFO, '"'.get_class($e->obj).'" with id=='.var_export($e->obj->id, true).' object not found when deleting favorite, ignoring...'); @@ -152,27 +171,41 @@ class Fave extends Managed_DataObject return $result; } - // FIXME: Instead of $own, send the scoped Profile so we can pass it along directly to FaveNoticeStream - // and preferrably we should get a Profile instead of $user_id - static function stream($user_id, $offset=0, $limit=NOTICES_PER_PAGE, $own=false, $since_id=0, $max_id=0) - { + // FIXME: Instead of $own, send the scoped Profile so we can pass it along + // directly to FaveNoticeStream and preferrably we should get a Profile + // instead of $user_id + public static function stream( + $user_id, + $offset = 0, + $limit = NOTICES_PER_PAGE, + $own = false, + $since_id = 0, + $max_id = 0 + ) { $target = Profile::getByID($user_id); $stream = new FaveNoticeStream($target, ($own ? $target : null)); return $stream->getNotices($offset, $limit, $since_id, $max_id); } - // FIXME: Instead of $own, send the scoped Profile so we can pass it along directly to FaveNoticeStream - // and preferrably we should get a Profile instead of $user_id - function idStream($user_id, $offset=0, $limit=NOTICES_PER_PAGE, $own=false, $since_id=0, $max_id=0) - { + // FIXME: Instead of $own, send the scoped Profile so we can pass it along + // directly to FaveNoticeStream and preferrably we should get a Profile + // instead of $user_id + public function idStream( + $user_id, + $offset = 0, + $limit = NOTICES_PER_PAGE, + $own = false, + $since_id = 0, + $max_id = 0 + ) { $target = Profile::getByID($user_id); $stream = new FaveNoticeStream($target, ($own ? $target : null)); return $stream->getNoticeIds($offset, $limit, $since_id, $max_id); } - function asActivity() + public function asActivity() { $target = $this->getTarget(); $actor = $this->getActor(); @@ -190,9 +223,12 @@ class Fave extends Managed_DataObject $act->title = _("Favor"); // TRANS: Message that is the "content" of a favorite (%1$s is the actor's nickname, %2$ is the favorited // notice's nickname and %3$s is the content of the favorited notice.) - $act->content = sprintf(_('%1$s favorited something by %2$s: %3$s'), - $actor->getNickname(), $target->getProfile()->getNickname(), - $target->getRendered()); + $act->content = sprintf( + _('%1$s favorited something by %2$s: %3$s'), + $actor->getNickname(), + $target->getProfile()->getNickname(), + $target->getRendered() + ); $act->context = new ActivityContext(); $act->context->replyToID = $target->getUri(); try { @@ -205,9 +241,13 @@ class Fave extends Managed_DataObject $act->target = $target->asActivityObject(); $act->objects = array(clone($act->target)); - $url = common_local_url('AtomPubShowFavorite', - array('profile' => $actor->id, - 'notice' => $target->id)); + $url = common_local_url( + 'AtomPubShowFavorite', + [ + 'profile' => $actor->id, + 'notice' => $target->id, + ] + ); $act->selfLink = $url; $act->editLink = $url; @@ -215,7 +255,7 @@ class Fave extends Managed_DataObject return $act; } - static function existsForProfile($notice, Profile $scoped) + public static function existsForProfile($notice, Profile $scoped) { $fave = self::pkeyGet(array('user_id'=>$scoped->id, 'notice_id'=>$notice->id)); @@ -235,7 +275,7 @@ class Fave extends Managed_DataObject * @todo integrate with Fave::stream() */ - static function byProfile($profileId, $offset, $limit) + public static function byProfile($profileId, $offset, $limit) { $fav = new Fave(); @@ -250,7 +290,7 @@ class Fave extends Managed_DataObject return $fav; } - static function countByProfile(Profile $profile) + public static function countByProfile(Profile $profile) { $c = Cache::instance(); if (!empty($c)) { @@ -271,7 +311,7 @@ class Fave extends Managed_DataObject return $cnt; } - static protected $_faves = array(); + protected static $_faves = []; /** * All faves of this notice @@ -280,7 +320,7 @@ class Fave extends Managed_DataObject * * @return array Array of Fave objects */ - static public function byNotice($notice) + public static function byNotice($notice) { if (!isset(self::$_faves[$notice->id])) { self::fillFaves(array($notice->id)); @@ -288,13 +328,13 @@ class Fave extends Managed_DataObject return self::$_faves[$notice->id]; } - static public function fillFaves(array $notice_ids) + public static function fillFaves(array $notice_ids) { $faveMap = Fave::listGet('notice_id', $notice_ids); self::$_faves = array_replace(self::$_faves, $faveMap); } - static public function blowCacheForProfileId($profile_id) + public static function blowCacheForProfileId($profile_id) { $cache = Cache::instance(); if ($cache) { @@ -307,7 +347,7 @@ class Fave extends Managed_DataObject $cache->delete(Cache::key('fave:count_by_profile:'.$profile_id)); } } - static public function blowCacheForNoticeId($notice_id) + public static function blowCacheForNoticeId($notice_id) { $cache = Cache::instance(); if ($cache) { @@ -317,7 +357,7 @@ class Fave extends Managed_DataObject // Remember that we want the _activity_ notice here, not faves applied // to the supplied Notice (as with byNotice)! - static public function fromStored(Notice $stored) + public static function fromStored(Notice $stored) { $class = get_called_class(); $object = new $class; @@ -336,12 +376,12 @@ class Fave extends Managed_DataObject * * @throws NoResultException when it can't find what it's looking for. */ - static public function getTargetFromStored(Notice $stored) + public static function getTargetFromStored(Notice $stored) { return self::fromStored($stored)->getTarget(); } - static public function getObjectType() + public static function getObjectType() { return ActivityObject::ACTIVITY; } @@ -364,7 +404,7 @@ class Fave extends Managed_DataObject * @param ActivityObject $actobj The _favored_ notice (which we're "in-reply-to") * @param Notice $stored The _activity_ notice, i.e. the favor itself. */ - static public function parseActivityObject(ActivityObject $actobj, Notice $stored) + public static function parseActivityObject(ActivityObject $actobj, Notice $stored) { // throws exception if nothing was found, but it could also be a non-Notice... // FIXME: This should only test _one_ URI (and not the links etc.) though a function like this could be useful in other cases @@ -384,8 +424,11 @@ class Fave extends Managed_DataObject return $object; } - static public function extendActivity(Notice $stored, Activity $act, Profile $scoped=null) - { + public static function extendActivity( + Notice $stored, + Activity $act, + Profile $scoped = null + ) { $target = self::getTargetFromStored($stored); // The following logic was copied from StatusNet's Activity plugin @@ -402,7 +445,7 @@ class Fave extends Managed_DataObject $act->title = ActivityUtils::verbToTitle($act->verb); } - static function saveActivityObject(ActivityObject $actobj, Notice $stored) + public static function saveActivityObject(ActivityObject $actobj, Notice $stored) { $object = self::parseActivityObject($actobj, $stored); $object->insert(); // exception throwing in Fave's case! diff --git a/plugins/ActivityPub/classes/Activitypub_profile.php b/plugins/ActivityPub/classes/Activitypub_profile.php index 06dfeb29f6..8f0d79021e 100644 --- a/plugins/ActivityPub/classes/Activitypub_profile.php +++ b/plugins/ActivityPub/classes/Activitypub_profile.php @@ -47,8 +47,8 @@ class Activitypub_profile extends Managed_DataObject public $homepage; // text() public $bio; // text() multiple_key public $location; // text() - public $created; // datetime() not_null default_CURRENT_TIMESTAMP - public $modified; // datetime() not_null default_CURRENT_TIMESTAMP + public $created; // datetime() + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP /** * Return table definition for Schema setup and DB_DataObject usage. @@ -64,8 +64,8 @@ class Activitypub_profile extends Managed_DataObject 'profile_id' => ['type' => 'int', 'not null' => true], 'inboxuri' => ['type' => 'text', 'not null' => true], 'sharedInboxuri' => ['type' => 'text'], - 'created' => ['type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was created'], - 'modified' => ['type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was modified'], + 'created' => ['type' => 'datetime', 'description' => 'date this record was created'], + 'modified' => ['type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'], ], 'primary key' => ['profile_id'], 'foreign keys' => [ diff --git a/plugins/ActivityPub/classes/Activitypub_rsa.php b/plugins/ActivityPub/classes/Activitypub_rsa.php index 2c44df0350..b25b9409f8 100644 --- a/plugins/ActivityPub/classes/Activitypub_rsa.php +++ b/plugins/ActivityPub/classes/Activitypub_rsa.php @@ -40,8 +40,8 @@ class Activitypub_rsa extends Managed_DataObject public $profile_id; // int(4) primary_key not_null public $private_key; // text() not_null public $public_key; // text() not_null - public $created; // datetime() not_null default_CURRENT_TIMESTAMP - public $modified; // datetime() not_null default_CURRENT_TIMESTAMP + public $created; // datetime() + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP /** * Return table definition for Schema setup and DB_DataObject usage. @@ -56,8 +56,8 @@ class Activitypub_rsa extends Managed_DataObject 'profile_id' => ['type' => 'int', 'not null' => true], 'private_key' => ['type' => 'text'], 'public_key' => ['type' => 'text', 'not null' => true], - 'created' => ['type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was created'], - 'modified' => ['type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was modified'], + 'created' => ['type' => 'datetime', 'description' => 'date this record was created'], + 'modified' => ['type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'], ], 'primary key' => ['profile_id'], 'foreign keys' => [ diff --git a/plugins/AnonymousFave/classes/Fave_tally.php b/plugins/AnonymousFave/classes/Fave_tally.php index 0d3a7dc4b3..e02f8d7574 100644 --- a/plugins/AnonymousFave/classes/Fave_tally.php +++ b/plugins/AnonymousFave/classes/Fave_tally.php @@ -1,48 +1,41 @@ . + /** * Data class for favorites talley * - * PHP version 5 - * - * @category Data - * @package StatusNet - * @author Zach Copley - * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 - * @link http://status.net/ - * - * StatusNet - the distributed open-source microblogging tool - * Copyright (C) 2010, StatusNet, 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 . + * @category Data + * @package GNUsocial + * @author Zach Copley + * @copyright 2010 StatusNet, Inc. + * @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later */ -if (!defined('STATUSNET')) { - exit(1); -} - -require_once INSTALLDIR . '/classes/Memcached_DataObject.php'; +defined('GNUSOCIAL') || die(); /** * Data class for favorites tally * * A class representing a total number of times a notice has been favored * - * @category Action - * @package StatusNet - * @author Zach Copley - * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 - * @link http://status.net/ + * @category Action + * @package GNUsocial + * @author Zach Copley + * @copyright 2010 StatusNet, Inc. + * @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later */ class Fave_tally extends Managed_DataObject { @@ -52,8 +45,8 @@ class Fave_tally extends Managed_DataObject public $__table = 'fave_tally'; // table name public $notice_id; // int(4) primary_key not_null public $count; // int(4) not_null - public $created; // datetime() not_null - public $modified; // datetime not_null default_0000-00-00%2000%3A00%3A00 + public $created; // datetime() + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE @@ -64,7 +57,7 @@ class Fave_tally extends Managed_DataObject 'fields' => array( 'notice_id' => array('type' => 'int', 'not null' => true, 'description' => 'notice id'), 'count' => array('type' => 'int', 'not null' => true, 'description' => 'the fave tally count'), - 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'), + 'created' => array('type' => 'datetime', 'description' => 'date this record was created'), 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), ), 'primary key' => array('notice_id'), @@ -81,7 +74,7 @@ class Fave_tally extends Managed_DataObject * * @return Fave_tally $tally the tally data object */ - static function increment($noticeID) + public static function increment($noticeID) { $tally = Fave_tally::ensureTally($noticeID); @@ -109,7 +102,7 @@ class Fave_tally extends Managed_DataObject * * @return Fave_tally $tally the tally data object */ - static function decrement($noticeID) + public static function decrement($noticeID) { $tally = Fave_tally::ensureTally($noticeID); @@ -140,7 +133,7 @@ class Fave_tally extends Managed_DataObject * * @return Fave_tally the tally data object */ - static function ensureTally($noticeID) + public static function ensureTally($noticeID) { $tally = Fave_tally::getKV('notice_id', $noticeID); @@ -172,7 +165,7 @@ class Fave_tally extends Managed_DataObject * * @return integer $total total number of time the notice has been favored */ - static function countExistingFaves($noticeID) + public static function countExistingFaves($noticeID) { $fave = new Fave(); $fave->notice_id = $noticeID; diff --git a/plugins/EmailSummary/classes/Email_summary_status.php b/plugins/EmailSummary/classes/Email_summary_status.php index a2e65d2ca2..1e8d7898f1 100644 --- a/plugins/EmailSummary/classes/Email_summary_status.php +++ b/plugins/EmailSummary/classes/Email_summary_status.php @@ -20,21 +20,19 @@ * @category Data * @package GNUsocial * @author Evan Prodromou - * @copyright 2010, StatusNet, Inc. + * @copyright 2010 StatusNet, Inc. * @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later */ defined('GNUSOCIAL') || die(); -require_once INSTALLDIR . '/classes/Memcached_DataObject.php'; - /** * Data class for email summaries * * Email summary information for users * * @category Action - * @copyright 2010, StatusNet, Inc. + * @copyright 2010 StatusNet, Inc. * @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later * * @see DB_DataObject @@ -55,7 +53,7 @@ class Email_summary_status extends Managed_DataObject 'user_id' => array('type' => 'int', 'not null' => true, 'description' => 'user id'), 'send_summary' => array('type' => 'bool', 'default' => true, 'not null' => true, 'description' => 'whether to send a summary or not'), 'last_summary_id' => array('type' => 'int', 'description' => 'last summary id'), - 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'), + 'created' => array('type' => 'datetime', 'description' => 'date this record was created'), 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), ), 'primary key' => array('user_id'), diff --git a/plugins/ExtendedProfile/classes/GNUsocialProfileExtensionField.php b/plugins/ExtendedProfile/classes/GNUsocialProfileExtensionField.php index 518fff043b..9ab97061af 100644 --- a/plugins/ExtendedProfile/classes/GNUsocialProfileExtensionField.php +++ b/plugins/ExtendedProfile/classes/GNUsocialProfileExtensionField.php @@ -18,7 +18,7 @@ * Allows administrators to define additional profile fields for the users of a GNU social installation. * * @category Widget - * @package GNU social + * @package GNUsocial * @author Max Shinn * @author Diogo Cordeiro * @copyright 2011-2019 Free Software Foundation, Inc http://www.fsf.org @@ -35,8 +35,8 @@ class GNUsocialProfileExtensionField extends Managed_DataObject public $title; // varchar(191) not 255 because utf8mb4 takes more space public $description; // text public $type; // varchar(191) not 255 because utf8mb4 takes more space - public $created; // datetime() not_null default_0000-00-00%2000%3A00%3A00 - public $modified; // datetime() not_null default_CURRENT_TIMESTAMP + public $created; // datetime() + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP public static function schemaDef(): array { @@ -47,8 +47,8 @@ class GNUsocialProfileExtensionField extends Managed_DataObject 'title' => ['type' => 'varchar', 'not null' => true, 'length' => 191, 'description' => 'field title'], 'description' => ['type' => 'text', 'not null' => true, 'description' => 'field description'], 'type' => ['type' => 'varchar', 'not null' => true, 'length' => 191, 'description' => 'field type'], - 'created' => ['type' => 'datetime', 'not null' => true, 'default' => '0000-00-00 00:00:00', 'description' => 'date this record was created'], - 'modified' => ['type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was modified'], + 'created' => ['type' => 'datetime', 'description' => 'date this record was created'], + 'modified' => ['type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'], ], 'primary key' => ['id'], 'indexes' => [ diff --git a/plugins/ExtendedProfile/classes/GNUsocialProfileExtensionResponse.php b/plugins/ExtendedProfile/classes/GNUsocialProfileExtensionResponse.php index e7099ef149..5f7ed6004e 100644 --- a/plugins/ExtendedProfile/classes/GNUsocialProfileExtensionResponse.php +++ b/plugins/ExtendedProfile/classes/GNUsocialProfileExtensionResponse.php @@ -18,7 +18,7 @@ * Allows administrators to define additional profile fields for the users of a GNU social installation. * * @category Widget - * @package GNU social + * @package GNUsocial * @author Max Shinn * @author Diogo Cordeiro * @copyright 2011-2019 Free Software Foundation, Inc http://www.fsf.org @@ -34,8 +34,8 @@ class GNUsocialProfileExtensionResponse extends Managed_DataObject public $extension_id; // int(11) public $profile_id; // int(11) public $value; // text - public $created; // datetime() not_null default_0000-00-00%2000%3A00%3A00 - public $modified; // datetime() not_null default_CURRENT_TIMESTAMP + public $created; // datetime() + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP public static function schemaDef(): array { @@ -45,8 +45,8 @@ class GNUsocialProfileExtensionResponse extends Managed_DataObject 'extension_id' => ['type' => 'int', 'not null' => true, 'description' => 'The extension field ID'], 'profile_id' => ['type' => 'int', 'not null' => true, 'description' => 'Profile id that made the response'], 'value' => ['type' => 'text', 'not null' => true, 'description' => 'response entry'], - 'created' => ['type' => 'datetime', 'not null' => true, 'default' => '0000-00-00 00:00:00', 'description' => 'date this record was created'], - 'modified' => ['type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was modified'], + 'created' => ['type' => 'datetime', 'description' => 'date this record was created'], + 'modified' => ['type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'], ], 'primary key' => ['id'], // Syntax: foreign_key_name => [remote_table, local_key => remote_key]] diff --git a/plugins/Nodeinfo/classes/Usage_stats.php b/plugins/Nodeinfo/classes/Usage_stats.php index 64cc64934b..2bb87ebe93 100644 --- a/plugins/Nodeinfo/classes/Usage_stats.php +++ b/plugins/Nodeinfo/classes/Usage_stats.php @@ -36,7 +36,7 @@ class Usage_stats extends Managed_DataObject public $__table = 'usage_stats'; // table name public $type; // varchar(191) unique_key not 255 because utf8mb4 takes more space public $count; // int(4) - public $modified; // datetime() not_null default_CURRENT_TIMESTAMP + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP /** * Table Definition for usage_stats @@ -50,7 +50,7 @@ class Usage_stats extends Managed_DataObject 'fields' => [ 'type' => ['type' => 'varchar', 'not null' => true, 'length' => 191, 'description' => 'Type of countable entity'], 'count' => ['type' => 'int', 'size' => 'int', 'default' => 0, 'description' => 'Number of entities of this type'], - 'modified' => ['type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was modified'], + 'modified' => ['type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'], ], 'primary key' => ['type'], 'indexes' => [ diff --git a/plugins/OStatus/classes/Ostatus_profile.php b/plugins/OStatus/classes/Ostatus_profile.php index 2d5d9146b7..50334afc59 100644 --- a/plugins/OStatus/classes/Ostatus_profile.php +++ b/plugins/OStatus/classes/Ostatus_profile.php @@ -63,8 +63,8 @@ class Ostatus_profile extends Managed_DataObject 'feeduri' => array('type' => 'varchar', 'length' => 191), 'salmonuri' => array('type' => 'varchar', 'length' => 191), 'avatar' => array('type' => 'text'), - 'created' => array('type' => 'datetime', 'not null' => true), - 'modified' => array('type' => 'datetime', 'not null' => true), + 'created' => array('type' => 'datetime'), + 'modified' => array('type' => 'timestamp', 'not null' => true), ), 'primary key' => array('uri'), 'unique keys' => array( diff --git a/plugins/Sitemap/classes/Sitemap_notice_count.php b/plugins/Sitemap/classes/Sitemap_notice_count.php index 9cc5faeb3e..f1a0f9f197 100644 --- a/plugins/Sitemap/classes/Sitemap_notice_count.php +++ b/plugins/Sitemap/classes/Sitemap_notice_count.php @@ -20,14 +20,12 @@ * @category Data * @package GNUsocial * @author Evan Prodromou - * @copyright 2010, StatusNet, Inc. + * @copyright 2010 StatusNet, Inc. * @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later */ defined('GNUSOCIAL') || die(); -require_once INSTALLDIR . '/classes/Memcached_DataObject.php'; - /** * Data class for counting notices by date * @@ -38,10 +36,10 @@ require_once INSTALLDIR . '/classes/Memcached_DataObject.php'; * of notices posted on that day. Since, after the end of the day, * this number doesn't change, it's a good candidate for persistent caching. * - * @copyright 2010, StatusNet, Inc. + * @copyright 2010 StatusNet, Inc. * @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later * - * @see DB_DataObject + * @see DB_DataObject */ class Sitemap_notice_count extends Managed_DataObject { @@ -49,8 +47,8 @@ class Sitemap_notice_count extends Managed_DataObject public $notice_date; // date primary_key not_null public $notice_count; // int(4) - public $created; // datetime() not_null - public $modified; // datetime not_null default_0000-00-00%2000%3A00%3A00 + public $created; // datetime() + public $modified; // timestamp() not_null public static function schemaDef() { @@ -58,7 +56,7 @@ class Sitemap_notice_count extends Managed_DataObject 'fields' => array( 'notice_date' => array('type' => 'date', 'not null' => true, 'description' => 'record date'), 'notice_count' => array('type' => 'int', 'not null' => true, 'description' => 'the notice count'), - 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'), + 'created' => array('type' => 'datetime', 'description' => 'date this record was created'), 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), ), 'primary key' => array('notice_date'), diff --git a/plugins/Sitemap/classes/Sitemap_user_count.php b/plugins/Sitemap/classes/Sitemap_user_count.php index 7e22ef15ac..fc2956700e 100644 --- a/plugins/Sitemap/classes/Sitemap_user_count.php +++ b/plugins/Sitemap/classes/Sitemap_user_count.php @@ -20,24 +20,22 @@ * @category Data * @package GNUsocial * @author Evan Prodromou - * @copyright 2010, StatusNet, Inc. + * @copyright 2010 StatusNet, Inc. * @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later */ defined('GNUSOCIAL') || die(); -require_once INSTALLDIR . '/classes/Memcached_DataObject.php'; - /** * Data class for counting users by date * * We make a separate sitemap for each user registered by date. * To save ourselves some processing effort, we cache this data * - * @copyright 2010, StatusNet, Inc. + * @copyright 2010 StatusNet, Inc. * @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later * - * @see DB_DataObject + * @see DB_DataObject */ class Sitemap_user_count extends Managed_DataObject { @@ -45,8 +43,8 @@ class Sitemap_user_count extends Managed_DataObject public $registration_date; // date primary_key not_null public $user_count; // int(4) - public $created; // datetime() not_null - public $modified; // datetime not_null default_0000-00-00%2000%3A00%3A00 + public $created; // datetime() + public $modified; // timestamp() not_null public static function schemaDef() { @@ -54,7 +52,7 @@ class Sitemap_user_count extends Managed_DataObject 'fields' => array( 'registration_date' => array('type' => 'date', 'not null' => true, 'description' => 'record date'), 'user_count' => array('type' => 'int', 'not null' => true, 'description' => 'the user count of the recorded date'), - 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'), + 'created' => array('type' => 'datetime', 'description' => 'date this record was created'), 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), ), 'primary key' => array('registration_date'), diff --git a/plugins/TwitterBridge/classes/Notice_to_status.php b/plugins/TwitterBridge/classes/Notice_to_status.php index 6f75e3c7da..e1462a1962 100644 --- a/plugins/TwitterBridge/classes/Notice_to_status.php +++ b/plugins/TwitterBridge/classes/Notice_to_status.php @@ -1,65 +1,57 @@ . + /** * Data class for remembering notice-to-status mappings * - * PHP version 5 - * - * @category Data - * @package StatusNet - * @author Evan Prodromou - * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 - * @link http://status.net/ - * - * StatusNet - the distributed open-source microblogging tool - * Copyright (C) 2010, StatusNet, 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 . + * @category Data + * @package GNUsocial + * @author Evan Prodromou + * @copyright 2010 StatusNet, Inc. + * @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later */ -if (!defined('STATUSNET')) { - exit(1); -} - -require_once INSTALLDIR . '/classes/Memcached_DataObject.php'; +defined('GNUSOCIAL') || die(); /** * Data class for mapping notices to statuses * - * Notices flow back and forth between Twitter and StatusNet. We use this - * table to remember which StatusNet notice corresponds to which Twitter + * Notices flow back and forth between Twitter and GNU social. We use this + * table to remember which GNU social notice corresponds to which Twitter * status. * * Note that notice_id is unique only within a single database; if you * want to share this data for some reason, get the notice's URI and use * that instead, since it's universally unique. * - * @category Action - * @package StatusNet - * @author Evan Prodromou - * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 - * @link http://status.net/ + * @category Action + * @package GNUsocial + * @author Evan Prodromou + * @copyright 2010 StatusNet, Inc. + * @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later * - * @see DB_DataObject + * @see DB_DataObject */ - class Notice_to_status extends Managed_DataObject { public $__table = 'notice_to_status'; // table name public $notice_id; // int(4) primary_key not_null public $status_id; // bigint not_null - public $created; // datetime() not_null - public $modified; // datetime not_null default_0000-00-00%2000%3A00%3A00 + public $created; // datetime() + public $modified; // timestamp() not_null public static function schemaDef() { @@ -67,7 +59,7 @@ class Notice_to_status extends Managed_DataObject 'fields' => array( 'notice_id' => array('type' => 'int', 'not null' => true, 'description' => 'local notice id'), 'status_id' => array('type' => 'int', 'size' => 'big', 'not null' => true, 'description' => 'twitter status id'), - 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'), + 'created' => array('type' => 'datetime', 'description' => 'date this record was created'), 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), ), 'primary key' => array('notice_id'), @@ -89,7 +81,7 @@ class Notice_to_status extends Managed_DataObject * * @return Notice_to_status new object for this value */ - static function saveNew($notice_id, $status_id) + public static function saveNew($notice_id, $status_id) { if (empty($notice_id)) { throw new Exception("Invalid notice_id $notice_id"); diff --git a/plugins/UserFlag/classes/User_flag_profile.php b/plugins/UserFlag/classes/User_flag_profile.php index d0cdedccb3..ec9fa8bda9 100644 --- a/plugins/UserFlag/classes/User_flag_profile.php +++ b/plugins/UserFlag/classes/User_flag_profile.php @@ -1,48 +1,41 @@ . + /** * Data class for profile flags * - * PHP version 5 - * - * @category Data - * @package StatusNet - * @author Evan Prodromou - * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 - * @link http://status.net/ - * - * StatusNet - the distributed open-source microblogging tool - * Copyright (C) 2009, StatusNet, 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 . + * @category Data + * @package GNUsocial + * @author Evan Prodromou + * @copyright 2009 StatusNet, Inc. + * @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later */ -if (!defined('STATUSNET')) { - exit(1); -} - -require_once INSTALLDIR . '/classes/Memcached_DataObject.php'; +defined('GNUSOCIAL') || die(); /** * Data class for profile flags * * A class representing a user flagging another profile for review. * - * @category Action - * @package StatusNet - * @author Evan Prodromou - * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 - * @link http://status.net/ + * @category Action + * @package GNUsocial + * @author Evan Prodromou + * @copyright 2009 StatusNet, Inc. + * @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later */ class User_flag_profile extends Managed_DataObject { @@ -52,9 +45,9 @@ class User_flag_profile extends Managed_DataObject public $__table = 'user_flag_profile'; // table name public $profile_id; // int(11) primary_key not_null public $user_id; // int(11) primary_key not_null - public $cleared; // datetime default_0000-00-00%2000%3A00%3A00 - public $created; // datetime() not_null - public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP + public $cleared; // datetime() + public $created; // datetime() + public $modified; // timestamp() not_null /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE @@ -66,7 +59,7 @@ class User_flag_profile extends Managed_DataObject 'profile_id' => array('type' => 'int', 'not null' => true, 'description' => 'profile id flagged'), 'user_id' => array('type' => 'int', 'not null' => true, 'description' => 'user id of the actor'), 'cleared' => array('type' => 'datetime', 'description' => 'when flag was removed'), - 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'), + 'created' => array('type' => 'datetime', 'description' => 'date this record was created'), 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), ), 'primary key' => array('profile_id', 'user_id'), @@ -85,7 +78,7 @@ class User_flag_profile extends Managed_DataObject * * @return boolean true if exists, else false */ - static function exists($profile_id, $user_id) + public static function exists($profile_id, $user_id) { $ufp = User_flag_profile::pkeyGet(array('profile_id' => $profile_id, 'user_id' => $user_id)); @@ -101,7 +94,7 @@ class User_flag_profile extends Managed_DataObject * * @return boolean success flag */ - static function create($user_id, $profile_id) + public static function create($user_id, $profile_id) { $ufp = new User_flag_profile(); @@ -112,8 +105,10 @@ class User_flag_profile extends Managed_DataObject if (!$ufp->insert()) { // TRANS: Server exception. // TRANS: %d is a profile ID (number). - $msg = sprintf(_m('Could not flag profile "%d" for review.'), - $profile_id); + $msg = sprintf( + _m('Could not flag profile "%d" for review.'), + $profile_id + ); throw new ServerException($msg); }