本文整理汇总了PHP中Dal::next_id方法的典型用法代码示例。如果您正苦于以下问题:PHP Dal::next_id方法的具体用法?PHP Dal::next_id怎么用?PHP Dal::next_id使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Dal
的用法示例。
在下文中一共展示了Dal::next_id方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: save
/**
* This function saves an entry in static_pages table
* input type: Values are set for object eg links = new StaticPage; $links->caption= 'sys';
* return type: id
*/
public function save()
{
Logger::log("Enter: function StaticPage::save()");
if (!empty($this->id)) {
$sql = "UPDATE {static_pages} SET caption = ?, page_text = ? WHERE id = " . $this->id;
$data = array($this->caption, $this->page_text);
} else {
$page_id = Dal::next_id('static_pages');
$sql = "INSERT INTO {static_pages} (caption, url, page_text) VALUES(?, ?, ?)";
$data = array($this->caption, $this->url, $this->page_text);
}
$res = Dal::query($sql, $data);
return $this->url;
}
示例2: save
/**
* Public function to create a new feed for a user.
* @param import_url, user_id
* @return true on success, on failure will throw an exception
*/
public function save()
{
Logger::log("Enter: ExternalFeed::save");
//check for feed, whether it exists in the system or not
$sql = 'SELECT feed_id FROM {external_feed} WHERE import_url = ?';
$res = Dal::query($sql, array($this->import_url));
if ($res->numRows()) {
//feed url already exists in the system
$row = $res->fetchRow(DB_FETCHMODE_OBJECT);
$this->feed_id = $row->feed_id;
$sql = 'SELECT * FROM {user_feed} WHERE user_id = ? AND feed_id = ?';
$res = Dal::query($sql, array($this->user_id, $this->feed_id));
if ($res->numRows()) {
// Import url already exists for given user.
Logger::log("Feed url = {$this->import_url} already exists for user_id = {$this->user_id}");
throw new CNException(IMPORT_URL_ALREADY_EXISTS, 'Import URL exists already for user.');
} else {
//saving feed for the user
$this->save_user_feed();
//refreshing the data for the feed
$this->do_refresh = true;
$this->refresh_feed_data();
}
} else {
//This is a new feed and will be added to the existing feeds in the system
$this->feed_id = Dal::next_id('ExternalFeed');
$sql = 'INSERT INTO {external_feed} ( feed_id, import_url, max_posts, is_active, feed_type, last_build_date ) VALUES ( ?, ?, ?, ?, ?, ? )';
$data = array($this->feed_id, $this->import_url, $this->max_posts, $this->is_active, $this->feed_type, time());
try {
//Inserting the feed to external_feed table
$res = Dal::query($sql, $data);
} catch (CNException $e) {
Logger::log("ExternalFeed::save failed for user_id = {$this->user_id}. Associated sql = {$sql}");
throw $e;
}
//saving feed for the user
$this->save_user_feed();
try {
$this->import_posts();
//importing the posts for given feed
} catch (CNException $e) {
Logger::log("{$e->message}");
ExternalFeed::delete_user_feed($this->feed_id, $this->user_id);
// deleting the inserted feed if import_posts fails.
throw $e;
}
}
Logger::log("Exit: ExternalFeed::save");
return true;
}
示例3: save
/**
* Save the persona service path data to the database.
*
* When creating a new persona, set all the attributes for the persona
* (except persona_id) and call save. Save will set the persona_id for
* the persona.
*
*/
public function save()
{
Logger::log("Enter: function PersonaServicePath::save");
// If we have decoded the JSON coniguration string into the structured
// configuration data, it will be non-null, so encode it back as a JSON
// string into configuration, to save it.
if ($this->configuration_data != null) {
$this->encode_configuration();
}
try {
if (!$this->persona_service_id || !$this->name) {
Logger::log("Throwing exception REQUIRED_PARAMETERS_MISSING | Message: Required parameters missing", LOGGER_ERROR);
throw new PAException(REQUIRED_PARAMETERS_MISSING, "Required parameters missing");
}
if ($this->is_new) {
$this->is_new = false;
$this->persona_service_path_id = Dal::next_id("persona_service_path");
$sql = 'INSERT INTO {persona_service_paths} (persona_service_id, name, title, category, configuration, sequence, enabled) values (?, ?, ?, ?, ?, ?, ?)';
$data = array($this->persona_service_id, $this->name, $this->title, $this->category, $this->configuration, $this->sequence, $this->enabled);
Dal::query($sql, $data);
} else {
$sql = 'UPDATE {persona_service_paths} SET persona_service_id = ?, name = ?, title = ?, category = ?, configuration = ?, sequence = ?, enabled = ? WHERE persona_service_path_id = ?';
$data = array($this->persona_service_id, $this->name, $this->title, $this->category, $this->configuration, $this->sequence, $this->enabled, $this->persona_service_path_id);
Dal::query($sql, $data);
}
// All done - commit to database.
Dal::commit();
} catch (PAException $e) {
Dal::rollback();
throw $e;
}
Logger::log("Exit: function PersonaServicePath::save");
}
示例4: save
/**
* Saves object to databse.
* @access protected.
*/
protected function save()
{
if ($this->is_active == 0) {
Logger::log(CONTENT_HAS_BEEN_DELETED, "Attempt to save a deleted content with content_id = {$this->content_id}");
throw new PAException(CONTENT_HAS_BEEN_DELETED, "Object you are trying to save has been deleted");
}
Logger::log(" Enter: Content::save()", LOGGER_INFO);
try {
if (empty($this->active)) {
$this->active = 1;
}
// before saving, check if content already exists or not.
if ($this->content_id) {
// UPDATE if exists
if ($this->parent_collection_id != -1) {
//FIXME: do we need to make the distinction here? Should probably always be able to set collection_id, even if -1.
$sql = "UPDATE {contents} SET title = ?, is_active = ?, body = ?, allow_comments =?, changed = ?, trackbacks = ?, collection_id = ?, is_html = ? WHERE content_id = ? AND is_active = ?";
$res = Dal::query($sql, array($this->title, $this->is_active, $this->body, $this->allow_comments, time(), $this->trackbacks, $this->parent_collection_id, $this->is_html, $this->content_id, $this->is_active));
} else {
$sql = "UPDATE {contents} SET title = ?, is_active = ?, body = ?, allow_comments =?, changed = ?, trackbacks = ?, is_html = ? WHERE content_id = ? AND is_active = ?";
$res = Dal::query($sql, array($this->title, $this->is_active, $this->body, $this->allow_comments, time(), $this->trackbacks, $this->is_html, $this->content_id, $this->is_active));
}
} else {
// get next ID for content.
$this->content_id = Dal::next_id('Content');
$this->created = time();
$this->changed = $this->created;
if (!$this->allow_comments) {
$this->allow_comments = 0;
}
$sql = "INSERT INTO {contents} (content_id, author_id, type, title, is_active, body, allow_comments, collection_id, created, changed, trackbacks, display_on, is_html) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
$res = Dal::query($sql, array($this->content_id, $this->author_id, $this->type, $this->title, $this->is_active, $this->body, $this->allow_comments, $this->parent_collection_id, $this->created, $this->changed, $this->trackbacks, $this->display_on, $this->is_html));
}
if ($this->is_default_content == FALSE) {
Content::save_recent_content($this->content_id, $this->type);
}
// if everything succeeded, commit
Dal::commit();
} catch (Exception $e) {
Logger::log("Exception occurred inside Content::save(); rolling back", LOGGER_INFO);
Dal::rollback();
throw $e;
}
Logger::log("Exit: Content::save()", LOGGER_INFO);
return $this->content_id;
}
示例5: save
/**
* Save the user data to the database
*
* When creating a new user, set all the attributes for the user (except user_id) and call save. Save will
* set the user_id for the user.
*
*/
public function save($check_unique_email = true)
{
Logger::log("Enter: function User::save");
// global var $_base_url has been removed - please, use PA::$url static variable
$sql = '';
try {
if (!$this->login_name || !$this->password || !$this->first_name || !$this->email) {
Logger::log("Throwing exception REQUIRED_PARAMETERS_MISSING | Message: Required parameters missing", LOGGER_ERROR);
throw new PAException(REQUIRED_PARAMETERS_MISSING, "Required parameters missing");
}
if (!$this->is_active) {
Logger::log("Throwing exception SAVING_DELETED_USER | Message: Saving a deleted user is not allowed", LOGGER_ERROR);
throw new PAException(SAVING_DELETED_USER, "Saving a deleted user is not allowed");
}
// added to remove unnecessary check whether the word begins or ends with a 'space' character
$this->first_name = @trim($this->first_name);
$this->last_name = @trim($this->last_name);
$this->login_name = @trim($this->login_name);
$this->password = @trim($this->password);
$this->email = @trim($this->email);
// checking the user data When creating a new user or updating the existing user value
$this->check_authenticated_user_data();
if ($this->is_new) {
// Make sure that the login name is unique.
$sql = 'SELECT * FROM {users} WHERE login_name = ? AND is_active <> ? AND is_active <> ?';
$data = array($this->login_name, DELETED, UNVERIFIED);
$res = Dal::query($sql, $data);
if ($res->numRows() > 0) {
Logger::log(" Throwing exception USER_LOGINNAME_TAKEN | Message: This Login name has already been taken", LOGGER_ERROR);
throw new PAException(USER_LOGINNAME_TAKEN, "This Login name has already been taken");
}
if ($check_unique_email) {
// make sure that the email address is unique
$sql = 'SELECT * FROM {users} WHERE email = ? AND is_active <> ?';
$data = array($this->email, DELETED);
$res = Dal::query($sql, $data);
if ($res->numRows() > 0) {
Logger::log(" Throwing exception USER_EMAIL_NOT_UNIQUE | Message: Email address must be unique", LOGGER_ERROR);
throw new PAException(USER_EMAIL_NOT_UNIQUE, "Email address that you have given is already taken please give another email address");
}
}
$this->user_id = Dal::next_id("User");
if ($this->api_call != true) {
// only encrypt the password if this is not an API call
$this->password = md5($this->password);
}
if (!isset($this->created)) {
$this->created = time();
}
$this->changed = $this->created;
$this->last_login = time();
if ($this->api_call == true) {
$sql = 'INSERT into {users} (user_id, core_id, login_name, password, first_name, last_name, email, is_active, created, changed, picture, picture_width, picture_height, avatar, avatar_width, avatar_height, avatar_small, avatar_small_width, avatar_small_height, last_login) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ,? , ?, ?, ?, ?, ?)';
$data = array($this->user_id, $this->core_id, $this->login_name, $this->password, $this->first_name, $this->last_name, $this->email, $this->is_active, $this->created, $this->changed, $this->picture, $this->picture_dimensions['width'], $this->picture_dimensions['height'], $this->avatar, $this->avatar_dimensions['width'], $this->avatar_dimensions['height'], $this->avatar_small, $this->avatar_small_dimensions['width'], $this->avatar_small_dimensions['height'], $this->last_login);
} else {
$sql = 'INSERT into {users} (user_id, login_name, password, first_name, last_name, email, is_active, created, changed, picture, last_login) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)';
$data = array($this->user_id, $this->login_name, $this->password, $this->first_name, $this->last_name, $this->email, $this->is_active, $this->created, $this->changed, $this->picture, $this->last_login);
}
Dal::query($sql, $data);
// Code for sending the data to ping server: begin
$PingClient = new PingClient();
global $host;
// defined in config.inc
// global var $path_prefix has been removed - please, use PA::$path static variable
$pa_url = $host;
$pa_activity = PA_ACTIVITY_USER_ADDED;
$pa_user_url = PA::$url . PA_ROUTE_USER_PUBLIC . '/' . $this->user_id;
$pa_user_name = $this->first_name . ' ' . $this->last_name;
$param_array = array('pa_url' => $pa_url, 'pa_activity' => $pa_activity, 'pa_user_url' => $pa_user_url, 'pa_user_name' => $pa_user_name);
$PingClient->set_params($param_array);
// @$PingClient->send_ping();
// Code for sending the data to ping server: end
// By default first user is being assigned as ADMIN (admin role id is 2).
if ($this->user_id == SUPER_USER_ID) {
$user_roles = array();
$user_roles[0] = array('role_id' => ADMINISTRATOR_ROLE, 'extra' => serialize(array('user' => false, 'network' => true, 'groups' => array())));
$this->set_user_role($user_roles);
}
} else {
if ($check_unique_email) {
// make sure that the email address is unique
$sql = 'SELECT * FROM {users} WHERE email = ?';
$data = array($this->email);
$res = Dal::query($sql, $data);
if ($res->numRows() > 0) {
$row = $res->fetchRow(DB_FETCHMODE_OBJECT);
if ($row->user_id != $this->user_id) {
Logger::log(" Throwing exception USER_EMAIL_NOT_UNIQUE | Message: Email address must be unique", LOGGER_ERROR);
throw new PAException(USER_EMAIL_NOT_UNIQUE, "Email address that you have given is already taken please give another email address");
}
}
}
if ($this->api_call == true) {
//.........这里部分代码省略.........
示例6: add_message
/**
* Adds the given message for the given user id.
*
* @param integer $sender_id The id of the user who sends the message to be added.
* @param integer $recipients_ids The ids of the recipients of the message to be added.
* @param string represents all the recipients of a message.
* @param string subject of message.
* @param text body of the message.
*/
static function add_message($sender_id, $recipients_ids = NULL, $all_recipients, $subject, $body, $is_draft = FALSE, $in_reply_to = 0)
{
Logger::log("Enter: function Message::add_message()");
//if all recipient is an array not a comma separated string
if (is_array($all_recipients)) {
$user_names = $all_recipients;
$all_recipients = implode(",", $user_names);
} else {
//if all recipient is a comma separated string
// use preg_split here, as the list might include spaces, but the names will not
$user_names = preg_split("/,\\s*/", $all_recipients);
}
// If recipients array is not set from the arguments only then it will be set here.
if (empty($recipients_ids)) {
foreach ($user_names as $user_name) {
$user = new User();
$user->load(trim($user_name));
$recipients_ids[] = $user->user_id;
}
}
$message_id = Dal::next_id('Message');
// see if we are part of a conversation
if ($in_reply_to > 0) {
$conversation_id = Message::get_conversation_id($in_reply_to);
} else {
$conversation_id = $message_id;
// this would be the parent of any subsequent conversations
}
$sql = 'INSERT into {private_messages} (message_id, sender_id, all_recipients, subject, body, sent_time, size, in_reply_to, conversation_id) values (?, ?, ?, ?, ?, ?, ?, ?, ?)';
$data = array($message_id, $sender_id, $all_recipients, $subject, $body, time(), ceil(strlen($body) / 1024), $in_reply_to, $conversation_id);
Dal::query($sql, $data);
Logger::log("Saved private message ID {$message_id}, from {$sender_id} to recipient(s): {$all_recipients}", LOGGER_ACTION);
foreach ($recipients_ids as $id) {
$folder_name = $is_draft ? DRAFT : INBOX;
$folder_id = Message::get_folder_by_name($id, $folder_name);
$sql = 'INSERT into {user_message_folder} (mid, fid, new_msg, reply, forward) values (?, ?, ?, ?, ?)';
$data = array($message_id, $folder_id, 1, 0, 0);
Dal::query($sql, $data);
Logger::log("Linked message ID {$message_id} to folder {$folder_id} ({$folder_name}) for user {$id}", LOGGER_ACTION);
}
if ($is_draft == FALSE) {
$sent_folder_name = SENT;
$folder_id = Message::get_folder_by_name($sender_id, $sent_folder_name);
$sql = 'INSERT into {user_message_folder} (mid, fid, new_msg, reply, forward) values (?, ?, ?, ?, ?)';
$data = array($message_id, $folder_id, 1, 0, 0);
Dal::query($sql, $data);
Logger::log("Linked message ID {$message_id} to folder {$folder_id} ({$sent_folder_name}) for sender {$sender_id}", LOGGER_ACTION);
}
Logger::log("Exit: function Message::add_message()");
return;
}
示例7: save
/**
* saves data to database
* @access protected
*/
public function save()
{
Logger::log("Enter: ContentCollection::save()");
// If same TITLE value exist for same author
if ($this->collection_id) {
$sql = "SELECT collection_id FROM {contentcollections} WHERE collection_id NOT IN ('{$this->collection_id}') AND author_id = ? AND title = ? AND is_active = ?";
$data = array($this->author_id, $this->title, 1);
} else {
if ($this->type == 1) {
$sql = "SELECT collection_id FROM {contentcollections} WHERE author_id = ? AND title = ? AND is_active = ?";
} else {
if ($this->type == 2) {
$sql = "SELECT collection_id, album_type_id FROM {contentcollections} AS CC, {contentcollections_albumtype} AS CCA WHERE CC.author_id = ? AND CC.title = ? AND CC.collection_id = CCA.contentcollection_id AND CCA.album_type_id = {$this->album_type} AND is_active = ?";
}
}
$data = array($this->author_id, $this->title, 1);
}
$res = Dal::query($sql, $data);
if ($res->numRows() > 0) {
if ($this->type == 1) {
$colletion_name = "group";
} else {
$colletion_name = "album";
}
Logger::log("Throwing Exception CONTENT_COLLECTION_TITLE_ALREADY_EXIST", LOGGER_ERROR);
throw new PAException(CONTENT_COLLECTION_TITLE_ALREADY_EXIST, "Error: This {$colletion_name} name already exist");
}
//If exists then update else insert
if ($this->collection_id) {
$sql = "UPDATE {contentcollections} SET type = ?, author_id = ?, title = ?, description = ?, changed =?, picture = ? WHERE collection_id = ?";
$data = array($this->type, $this->author_id, $this->title, $this->description, time(), $this->picture, $this->collection_id);
$res = Dal::query($sql, $data);
} else {
// get id
$this->collection_id = Dal::next_id("ContentCollection");
$this->created = time();
$this->changed = time();
$this->is_active = 1;
$sql = "INSERT INTO {contentcollections} (collection_id, author_id, type, title, description, is_active, created, changed, picture) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)";
$data = array($this->collection_id, $this->author_id, $this->type, $this->title, $this->description, $this->is_active, $this->created, $this->changed, $this->picture);
$res = Dal::query($sql, $data);
}
Logger::log("Exit: ContentCollection::save()");
return;
}
示例8: save
/**
* Save the persona property data to the database.
*
* When creating a new persona property, set all the attributes for the
* property (except persona_property_id) and call save. Save will set
* the persona_propety_id for the persona.
*/
public function save()
{
Logger::log("Enter: function PersonaProperty::save");
try {
if (!$this->persona_id || !$this->name) {
Logger::log("Throwing exception REQUIRED_PARAMETERS_MISSING | Message: Required parameters missing", LOGGER_ERROR);
throw new PAException(REQUIRED_PARAMETERS_MISSING, "Required parameters missing");
}
if ($this->is_new) {
$this->is_new = false;
$this->persona_property_id = Dal::next_id("persona_properties");
$sql = 'INSERT INTO {persona_properties} (parent_id, persona_id, name, content, content_type, content_hash, serial_number, last_update, category, viewer) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)';
$data = array($this->parent_id, $this->persona_id, $this->name, $this->content, $this->content_type, $this->content_hash, $this->serial_number, $this->last_update, $this->category, $this->viewer);
Dal::query($sql, $data);
} else {
$sql = "UPDATE {persona_properties} SET parent_id = ?, persona_id = ?, name = ?, content = ?, content_type = ?, content_hash = ?, serial_number = ?, last_update = ?, category = ?, viewer = ? WHERE persona_property_id = ?";
$data = array($this->parent_id, $this->persona_id, $this->name, $this->content, $this->content_type, $this->content_hash, $this->serial_number, $this->last_update, $this->category, $this->viewer, $this->persona_property_id);
Dal::query($sql, $data);
}
// All done - commit to database.
Dal::commit();
} catch (PAException $e) {
Dal::rollback();
throw $e;
}
Logger::log("Exit: function PersonaProperty::save");
}
示例9: save
/**
* Save the user data to the database
*
* When creating a new user, set all the attributes for the user (except user_id) and call save. Save will
* set the user_id for the user.
*
*/
public function save()
{
Logger::log("Enter: function User::save");
global $base_url;
$sql = '';
try {
if (!$this->login_name || !$this->password || !$this->first_name || !$this->email) {
Logger::log("User::save Throwing exception REQUIRED_PARAMETERS_MISSING | Message: Required parameters missing", LOGGER_ERROR);
throw new PAException(REQUIRED_PARAMETERS_MISSING, "Required parameters missing: login_name:{$this->login_name}, password:{$this->password}, first_name:{$this->first_name}, email:{$this->email}");
}
if (!$this->is_active) {
Logger::log("Throwing exception SAVING_DELETED_USER | Message: Saving a deleted user is not allowed", LOGGER_ERROR);
throw new PAException(SAVING_DELETED_USER, "Saving a deleted user is not allowed");
}
// checking the user data When creating a new user or updating the existing user value
$this->check_authenticated_user_data();
if ($this->is_new) {
// Make sure that the login name is unique.
$sql = 'SELECT * FROM {users} WHERE login_name = ? AND is_active <> ? AND is_active <> ?';
$data = array($this->login_name, DELETED, UNVERIFIED);
$res = Dal::query($sql, $data);
if ($res->numRows() > 0) {
Logger::log(" Throwing exception USER_LOGINNAME_TAKEN | Message: This Login name has already been taken", LOGGER_ERROR);
throw new PAException(USER_LOGINNAME_TAKEN, "This Login name has already been taken");
}
// make sure that the email address is unique
$sql = 'SELECT * FROM {users} WHERE email = ? AND is_active <> ?';
$data = array($this->email, DELETED);
$res = Dal::query($sql, $data);
if ($res->numRows() > 0) {
Logger::log(" Throwing exception USER_EMAIL_NOT_UNIQUE | Message: Email address must be unique", LOGGER_ERROR);
throw new PAException(USER_EMAIL_NOT_UNIQUE, "Email address that you have given is already taken please give another email address");
}
$this->user_id = Dal::next_id("User");
$this->password = md5($this->password);
$this->created = time();
$this->changed = $this->created;
$this->last_login = $this->created;
$sql = 'INSERT into {users} (user_id, login_name, password, first_name, last_name, email, is_active, created, changed, picture, last_login) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)';
$data = array($this->user_id, $this->login_name, $this->password, $this->first_name, $this->last_name, $this->email, $this->is_active, $this->created, $this->changed, $this->picture, $this->last_login);
Dal::query($sql, $data);
// Code for sending the data to ping server: begin
$PingClient = new PingClient();
global $host;
// defined in config.inc
global $path_prefix;
$pa_url = $host;
$pa_activity = PA_ACTIVITY_USER_ADDED;
$pa_user_url = $base_url . '/user.php?uid=' . $this->user_id;
$pa_user_name = $this->first_name . ' ' . $this->last_name;
$param_array = array('pa_url' => $pa_url, 'pa_activity' => $pa_activity, 'pa_user_url' => $pa_user_url, 'pa_user_name' => $pa_user_name);
$PingClient->set_params($param_array);
// @$PingClient->send_ping();
// Code for sending the data to ping server: end
// By default first user is being assigned as ADMIN (admin role id is 2).
if ($this->user_id == 1) {
$user_role = array(2);
$this->set_user_role($user_role);
}
} else {
// make sure that the email address is unique
$sql = 'SELECT * FROM {users} WHERE email = ?';
$data = array($this->email);
$res = Dal::query($sql, $data);
if ($res->numRows() > 0) {
$row = $res->fetchRow(DB_FETCHMODE_OBJECT);
if ($row->user_id != $this->user_id) {
Logger::log(" Throwing exception USER_EMAIL_NOT_UNIQUE | Message: Email address must be unique", LOGGER_ERROR);
throw new PAException(USER_EMAIL_NOT_UNIQUE, "Email address that you have given is already taken please give another email address");
}
}
$sql = 'UPDATE {users} SET login_name = ?, password = ?, first_name = ?, last_name = ?, email = ?, is_active = ?, changed = ?, picture = ? WHERE user_id = ?';
$data = array($this->login_name, $this->password, $this->first_name, $this->last_name, $this->email, 1, time(), $this->picture, $this->user_id);
Dal::query($sql, $data);
}
// all done - commit to database
Dal::commit();
} catch (PAException $e) {
Dal::rollback();
throw $e;
}
$this->is_new = FALSE;
if ($this->tags) {
// Attach an array of string tags to the user
//Tag::add_tags_to_user($this->user_id, $this->tags);
}
Logger::log("Exit: function User::save");
}
示例10: save
/**
* saves data to database
* @access protected
*/
public function save()
{
Logger::log("Enter: ContentCollection::save()");
// If same TITLE value exist for same author
if (empty($this->author_id)) {
Logger::log('Exit: ContentCollection::save(). Author of the collection is not specified.');
throw new CNException(BAD_PARAMETER, 'Author of the collection is not specified.');
}
$sql = NULL;
$data = array($this->author_id, $this->title, $this->is_active);
if (!empty($this->collection_id)) {
array_push($data, $this->collection_id);
$sql = 'SELECT collection_id FROM {contentcollections} WHERE author_id = ? AND title = ? AND is_active = ? AND collection_id <> ?';
} else {
if (empty($this->type)) {
Logger::log('Exit: ContentCollection::save(). Collection type is not specified.');
throw new CNException(BAD_PARAMETER, 'Collection type is not specified.');
} else {
if ($this->type == 2) {
//TODO: Code refining is pending for the album contentcollection.
$sql = "SELECT collection_id, album_type_id FROM {contentcollections} AS CC, {contentcollections_albumtype} AS CCA WHERE CC.author_id = ? AND CC.title = ? AND CC.collection_id = CCA.contentcollection_id AND CCA.album_type_id = {$this->album_type} AND is_active = ?";
} else {
array_push($data, $this->type);
$sql = 'SELECT collection_id FROM {contentcollections} WHERE author_id = ? AND title = ? AND is_active = ? AND type = ?';
}
}
}
$res = Dal::query($sql, $data);
//TODO: Need to remove the following code. Base call should not dependent on the child classes.
if ($res->numRows() > 0) {
if ($this->type == 1) {
$colletion_name = "group";
} else {
$colletion_name = "album";
}
Logger::log("Throwing Exception CONTENT_COLLECTION_TITLE_ALREADY_EXIST", LOGGER_ERROR);
throw new CNException(CONTENT_COLLECTION_TITLE_ALREADY_EXIST, "Error: This {$colletion_name} name already exist");
}
//If collection_id exists then update else insert
if ($this->collection_id) {
$sql = "UPDATE {contentcollections} SET type = ?, author_id = ?, title = ?, description = ?, changed =?, picture = ? WHERE collection_id = ?";
$data = array($this->type, $this->author_id, $this->title, $this->description, time(), $this->picture, $this->collection_id);
$res = Dal::query($sql, $data);
} else {
// get id
$this->collection_id = Dal::next_id("ContentCollection");
$this->created = time();
$this->changed = time();
$this->is_active = 1;
$sql = "INSERT INTO {contentcollections} (collection_id, author_id, type, title, description, is_active, created, changed, picture) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)";
$data = array($this->collection_id, $this->author_id, $this->type, $this->title, $this->description, $this->is_active, $this->created, $this->changed, $this->picture);
$res = Dal::query($sql, $data);
}
Logger::log("Exit: ContentCollection::save()");
return;
}