chat message modification (1.1.5)

This commit is contained in:
2021-03-30 20:01:21 +02:00
parent 36dc674ba4
commit d3d3f8946e
11 changed files with 168 additions and 242 deletions

View File

@@ -7,8 +7,8 @@
class Databap extends PhpObject
{
//Common Constants
const VERSION = '1.1.4'; //Versioning: <Main_Version>.<Enhancement_Package>.<Patch>-<Release_Candidate>
const VERSION_DATE = '24/09/2020';
const VERSION = '1.1.5'; //Versioning: <Main_Version>.<Enhancement_Package>.<Patch>-<Release_Candidate>
const VERSION_DATE = '30/03/2021';
const EXPECTED_PAGE_COOKIE = 'exp_page';
const MAIN_SEPARATOR = ' ';
const DATE_FORMAT = 'd/m/Y';
@@ -180,8 +180,11 @@ class Databap extends PhpObject
const DOC_TMP_FOLDER = 'docs/tmp/';
const DOC_THUMB_FOLDER = 'docs/thumb/';
//Objects
/**
* @var MySqlManager
*/
private $oMySql;
private $oClassManagement;
private $oAuth;
@@ -235,7 +238,7 @@ class Databap extends PhpObject
self::COMP_TABLE => array(MySqlManager::getText(self::COMP_TABLE), 'logo'),
self::CODE_TABLE => array(MySqlManager::getText(self::CODE_TABLE), 'description', MySqlManager::getId(self::USER_TABLE), 'refer_id'),
self::URL_TABLE => array(MySqlManager::getId(self::CODE_TABLE), 'phrase'),
self::MSG_TABLE => array(MySqlManager::getId(self::USER_TABLE), 'nickname', MySqlManager::getId(self::CHAN_TABLE), MySqlManager::getText(self::MSG_TABLE), 'type', 'date'),
self::MSG_TABLE => array(MySqlManager::getId(self::USER_TABLE), 'nickname', MySqlManager::getId(self::CHAN_TABLE), MySqlManager::getText(self::MSG_TABLE), 'type', 'id_message_ref', 'date'),
self::CHAN_TABLE => array('safe_name', MySqlManager::getText(self::CHAN_TABLE)),
self::CONN_TABLE => array(MySqlManager::getId(self::USER_TABLE), MySqlManager::getId(self::CHAN_TABLE)),
self::OPT_TABLE => array(MySqlManager::getId(self::USER_TABLE), MySqlManager::getId(self::OPTNAME_TABLE), MySqlManager::getId(self::OPTVAL_TABLE)),
@@ -282,7 +285,8 @@ class Databap extends PhpObject
'date' => "date NOT NULL",
'system' => "varchar(3)",
'extension' => "varchar(10)",
'default_value'=>"tinyint(1) DEFAULT 0"
'default_value'=>"tinyint(1) DEFAULT 0",
'id_message_ref' => "int(10) unsigned"
);
$asOptions['constraints'] = array
(
@@ -309,7 +313,7 @@ class Databap extends PhpObject
{
if($sType!='')
{
if($sType!='' && !array_key_exists($sType, self::$TYPES)) $this->addError('Type "'.$sType.'" inconnu');
if($sType!='' && !array_key_exists($sType, self::$TYPES)) self::addError('Type "'.$sType.'" inconnu');
else $asResult = array($sType=>self::$TYPES[$sType]);
}
else $asResult = self::$TYPES;
@@ -324,7 +328,7 @@ class Databap extends PhpObject
$asResult[$sType] = array();
foreach($oInfo as $sInfo)
{
if(!array_key_exists($sInfo, $asTypeInfo)) $this->addError('Info "'.$sInfo.'" inconnue');
if(!array_key_exists($sInfo, $asTypeInfo)) self::addError('Info "'.$sInfo.'" inconnue');
else $asResult[$sType][$sInfo] = $asTypeInfo[$sInfo];
}
if($bUnique) $asResult[$sType] = $asResult[$sType][$sInfo];
@@ -2083,6 +2087,19 @@ class Databap extends PhpObject
return $this->getJsonPostResult($bSuccess, $sDesc);
}
public function editChatMessage($iRefMsgId, $sMessage)
{
$bSuccess = false;
$sDesc = '';
$asRefMsg = $this->oMySql->selectRow(self::MSG_TABLE, $iRefMsgId);
if($asRefMsg['type'] == self::MESSAGE_USER && $asRefMsg[$this->oMySql::getId(self::USER_TABLE)] == $this->getUserId()) {
$bSuccess = $this->addMessage($sMessage, $asRefMsg['type'], $asRefMsg['id_channel'], $this->getUserId(), $iRefMsgId);
}
else $sDesc = 'Wrong user ID';
return $this->getJsonPostResult($bSuccess, $sDesc);
}
private function getJsonMessage($asData)
{
return self::JSON_PREFIX.$this->jsonConvert($asData);
@@ -2102,7 +2119,7 @@ class Databap extends PhpObject
$sFrom = $asUserFrom['name'].' <www-data@lutran.fr>';
$sTo = $asUserTo['name'].' <'.$asUserTo['email'].'>';
$sMessage .= "\n\n\n".'<i>Ne r&eacute;pondez pas &agrave; ce mail. Connectez-vous sur <a href="http://databap.lutran.fr/#chat">Databap</a>.</i>';
$sMessage .= "\n\n\n".'<i>Ne r&eacute;pondez pas &agrave; ce mail. Connectez-vous sur <a href="https://databap.lutran.fr/#chat">Databap</a>.</i>';
$sResult = ToolBox::sendMail($sFrom, 'Databap PM', $sMessage, $sTo, array(), false);
$bSuccess = ($sResult==ToolBox::MAIL_SUCCESS);
@@ -2110,7 +2127,7 @@ class Databap extends PhpObject
return $bSuccess;
}
private function addMessage($sMessage, $sType, $iChanId, $iUserId=0)
private function addMessage($sMessage, $sType, $iChanId, $iUserId=0, $iRefMsgId=0)
{
$bResult = false;
$iUserId = ($iUserId>0)?$iUserId:$this->getUserId();
@@ -2121,6 +2138,7 @@ class Databap extends PhpObject
MySqlManager::getId(self::CHAN_TABLE) => $iChanId,
MySqlManager::getText(self::MSG_TABLE) => $sMessage,
'type' => $sType,
'id_message_ref' => $iRefMsgId,
'date' => 'CURDATE()');
$bResult = $this->oMySql->insertRow(self::MSG_TABLE, $asInsert);
}
@@ -2153,7 +2171,7 @@ class Databap extends PhpObject
$iCurTimeStamp = time();
$sCurDate = date(Databap::DATE_SQL_FORMAT, $iCurTimeStamp);
$sLimitDate = date(Databap::DATE_SQL_FORMAT, $iCurTimeStamp - $this->getUserOptionValue(self::OPT_CHAT_HISTO)*24*60*60);
$asInfo = array('select' => array($sMsgTableChanIdCol, $sMsgIdCol, $sMsgTextCol, 'type', $sMsgTableLed, 'first_name', 'last_name', $sUserIdCol, 'nickname'),
$asInfo = array('select' => array($sMsgTableChanIdCol, $sMsgIdCol, $sMsgTextCol, 'type', 'id_message_ref', $sMsgTableLed, 'first_name', 'last_name', $sUserIdCol, 'nickname'),
'from' => self::CONN_TABLE,
'joinOn' => array( self::MSG_TABLE =>array($sMsgTableChanIdCol, '=', $sConnTableChanIdCol),
self::USER_TABLE=>array($sUserTableUserIdCol, '=', $sMsgTableUserIdCol)),
@@ -2193,6 +2211,7 @@ class Databap extends PhpObject
$asMessages['messages'][$iMessageId]['id_user'] = $iUserId;
$asMessages['messages'][$iMessageId]['message'] = $asMessageInfo[$sMsgTextCol];
$asMessages['messages'][$iMessageId]['msg_class'] = $sMessageType;
$asMessages['messages'][$iMessageId]['id_message_ref'] = (int) $asMessageInfo['id_message_ref'];
$asMessages['messages'][$iMessageId]['date'] = self::getDateFormat($asMessageInfo['led'], self::DATE_FORMAT);
$asMessages['messages'][$iMessageId]['time'] = self::getDateFormat($asMessageInfo['led'], self::TIME_FORMAT);
$asMessages['messages'][$iMessageId]['name'] = self::getNameFormat($asMessageInfo['first_name'], $asMessageInfo['last_name']);