Файл: library/XenForo/Model/Draft.php
Строк: 54
<?php
class XenForo_Model_Draft extends XenForo_Model
{
public function getDraftById($id)
{
return $this->_getDb()->fetchRow("
SELECT *
FROM xf_draft
WHERE draft_id = ?
", $id);
}
public function getDraftByUserKey($key, $userId)
{
return $this->_getDb()->fetchRow("
SELECT *
FROM xf_draft
WHERE draft_key = ? AND user_id = ?
", array($key, $userId));
}
public function saveDraft($key, $message, array $extraData = array(), array $viewingUser = null, $lastUpdate = null)
{
$this->standardizeViewingUserReference($viewingUser);
$message = trim($message);
if (!$viewingUser['user_id'] || !strlen($message))
{
return false;
}
if (!$lastUpdate)
{
$lastUpdate = XenForo_Application::$time;
}
$this->_getDb()->query("
INSERT INTO xf_draft
(draft_key, user_id, last_update, message, extra_data)
VALUES
(?, ?, ?, ?, ?)
ON DUPLICATE KEY UPDATE
last_update = VALUES(last_update),
message = VALUES(message),
extra_data = VALUES(extra_data)
", array($key, $viewingUser['user_id'], $lastUpdate, $message, serialize($extraData)));
return true;
}
public function deleteDraft($key, array $viewingUser = null)
{
$this->standardizeViewingUserReference($viewingUser);
$q = $this->_getDb()->query("
DELETE FROM xf_draft
WHERE draft_key = ?
AND user_id = ?
", array($key, $viewingUser['user_id']));
return $q->rowCount();
}
public function pruneDrafts($cutOff = null)
{
$draftOption = XenForo_Application::getOptions()->saveDrafts;
if ($cutOff === null)
{
if (empty($draftOption['enabled']))
{
$cutOff = XenForo_Application::$time;
}
else
{
$cutOff = XenForo_Application::$time - $draftOption['lifetime'] * 3600;
}
}
$db = $this->_getDb();
return $db->delete('xf_draft', 'last_update < ' . $db->quote($cutOff));
}
}