Save notification extra data in DB column

This commit is contained in:
Kijin Sung 2024-05-10 15:37:57 +09:00
parent 4e6e1e57b2
commit bdd9921f25
5 changed files with 33 additions and 10 deletions

View file

@ -81,6 +81,12 @@ class Ncenterlite extends ModuleObject
return true;
}
// Extra data column
if (!$oDB->isColumnExists('ncenterlite_notify', 'data'))
{
return true;
}
$config = getModel('ncenterlite')->getConfig();
$member_config = getModel('member')->getMemberConfig();
@ -187,6 +193,12 @@ class Ncenterlite extends ModuleObject
$oDB->dropIndex('ncenterlite_notify', 'idx_notify');
}
// Extra data column
if (!$oDB->isColumnExists('ncenterlite_notify', 'data'))
{
$oDB->addColumn('ncenterlite_notify', 'data', 'longtext', null, null, false, 'target_url');
}
$config = getModel('ncenterlite')->getConfig();
if(!$config)
{

View file

@ -39,10 +39,13 @@ class NcenterliteController extends Ncenterlite
if (is_object($message))
{
$args->target_body = $message->subject;
$args->target_url = $message->url ?: $args->target_url;
$args->extra_content = $message->content;
$args->extra_data = $message->data ?: [];
$args->target_body = $message->subject ?? '';
$args->target_url = empty($message->url) ? $args->target_url : $message->url;
$args->extra_content = $message->content ?? '';
if (isset($message->data))
{
$args->extra_data = is_object($message->data) ? get_object_vars($message->data) : (array)($message->data);
}
}
else
{
@ -1428,6 +1431,11 @@ class NcenterliteController extends Ncenterlite
return $trigger_output;
}
if (isset($args->extra_data) && $args->extra_data)
{
$args->data = serialize($args->extra_data);
}
$output = executeQuery('ncenterlite.insertNotify', $args);
if($output->toBool())
{

View file

@ -281,6 +281,7 @@ class NcenterliteModel extends Ncenterlite
$v->text = $this->getNotificationText($v);
$v->ago = $this->getAgo($v->regdate);
$v->url = getUrl('','act','procNcenterliteRedirect', 'notify', $v->notify);
$v->data = isset($v->data) ? unserialize($v->data) : [];
if($v->target_member_srl < 0)
{

View file

@ -6,20 +6,21 @@
<column name="notify" var="notify" notnull="notnull" />
<column name="srl" var="srl" filter="number" notnull="notnull" />
<column name="target_srl" var="target_srl" filter="number" notnull="notnull" />
<column name="target_p_srl" var="target_p_srl" filter="number" />
<column name="type" var="type" notnull="notnull" />
<column name="target_type" var="target_type" notnull="notnull" />
<column name="notify_type" var="notify_type" />
<column name="member_srl" var="member_srl" filter="number" notnull="notnull" />
<column name="target_member_srl" var="target_member_srl" filter="number" notnull="notnull" />
<column name="target_nick_name" var="target_nick_name" />
<column name="target_user_id" var="target_user_id" />
<column name="target_email_address" var="target_email_address" />
<column name="type" var="type" notnull="notnull" />
<column name="target_type" var="target_type" notnull="notnull" />
<column name="target_body" var="target_body" />
<column name="target_summary" var="target_summary" />
<column name="target_browser" var="target_browser" />
<column name="target_summary" var="target_summary" />
<column name="target_body" var="target_body" />
<column name="target_url" var="target_url" notnull="notnull" />
<column name="data" var="data" />
<column name="readed" var="readed" default="N" />
<column name="regdate" var="regdate" default="curdate()" />
<column name="target_p_srl" var="target_p_srl" filter="number" />
<column name="notify_type" var="notify_type" />
</columns>
</query>

View file

@ -16,6 +16,7 @@
<column name="target_summary" type="varchar" size="80" brief="메시지 요약문" />
<column name="target_body" type="varchar" size="255" brief="커스텀 알림 제목" />
<column name="target_url" type="varchar" size="255" notnull="notnull" brief="링크 목적지 주소" />
<column name="data" type="longtext" />
<column name="readed" type="char" size="1" default="N" notnull="notnull" index="idx_readed" />
<column name="regdate" type="date" index="idx_regdate" />
</table>