saimod text working (including save and delete), jsonresult fail

This commit is contained in:
Ulf Gebhardt 2015-04-16 15:55:44 +02:00
parent 2deda1fe56
commit 9a9e5e8b8b
13 changed files with 165 additions and 28 deletions

View File

@ -0,0 +1,11 @@
<?php
namespace SYSTEM\DBD;
class SYS_TEXT_DELETE extends \SYSTEM\DB\QP {
protected static function query(){
return new \SYSTEM\DB\QQuery(get_class(),
//pg
'',
//mys
'DELETE FROM `system_text` WHERE id = ? and lang = ?;'
);}}

View File

@ -0,0 +1,11 @@
<?php
namespace SYSTEM\DBD;
class SYS_TEXT_DELETE_TAGS extends \SYSTEM\DB\QP {
protected static function query(){
return new \SYSTEM\DB\QQuery(get_class(),
//pg
'',
//mys
'DELETE FROM `system_text_tag` WHERE id = ?;'
);}}

View File

@ -0,0 +1,12 @@
<?php
namespace SYSTEM\DBD;
class SYS_TEXT_GET_ID_COUNT extends \SYSTEM\DB\QP {
protected static function query(){
return new \SYSTEM\DB\QQuery(get_class(),
//pg
'',
//mys
'SELECT count(*) as count FROM system_text
WHERE id = ?;'
);}}

View File

@ -0,0 +1,11 @@
<?php
namespace SYSTEM\DBD;
class SYS_TEXT_RENAME extends \SYSTEM\DB\QP {
protected static function query(){
return new \SYSTEM\DB\QQuery(get_class(),
//pg
'',
//mys
'UPDATE system_text SET id = ? WHERE id = ?;'
);}}

View File

@ -0,0 +1,11 @@
<?php
namespace SYSTEM\DBD;
class SYS_TEXT_RENAME_TAGS extends \SYSTEM\DB\QP {
protected static function query(){
return new \SYSTEM\DB\QQuery(get_class(),
//pg
'',
//mys
'UPDATE system_text_tag SET id = ? WHERE id = ?;'
);}}

13
dbd/qq/SYS_TEXT_SAVE.php Normal file
View File

@ -0,0 +1,13 @@
<?php
namespace SYSTEM\DBD;
class SYS_TEXT_SAVE extends \SYSTEM\DB\QP {
protected static function query(){
return new \SYSTEM\DB\QQuery(get_class(),
//pg
'',
//mys
'INSERT INTO `system_text` (`id`, `lang`, `text`, `author`, `author_edit`, `time_create`, `time_edit`)
VALUES (?, ?, ?, ?, ?, NOW(), NOW())
ON DUPLICATE KEY UPDATE text=VALUES(text), author_edit = VALUES(author_edit), time_edit = NOW();'
);}}

View File

@ -0,0 +1,12 @@
<?php
namespace SYSTEM\DBD;
class SYS_TEXT_SAVE_TAG extends \SYSTEM\DB\QP {
protected static function query(){
return new \SYSTEM\DB\QQuery(get_class(),
//pg
'',
//mys
'INSERT IGNORE `system_text_tag` (`id`, `tag`)
VALUES (?, ?);'
);}}

View File

@ -97,28 +97,22 @@ INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `nam
INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (700, 42, 0, 0, '_SYSTEM_SAI_saimod_sys_text', 'action', NULL);
--
INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (701, 42, 2, 700, 'load', 'id', 'LANG');
INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (702, 42, 2, 700, 'load', 'group', 'INT');
INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (703, 42, 3, 700, 'tag', 'tag', 'STRING');
INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (705, 42, 2, 700, 'loadByTag', 'lang', 'LANG');
--
INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (710, 42, 2, 700, 'singleload', 'id', 'ALL');
INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (711, 42, 2, 700, 'singleload', 'lang', 'ALL');
INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (712, 42, 2, 700, 'edittext', 'id', 'ALL');
INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (712, 42, 2, 700, 'edittext', 'id', 'STRING');
INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (713, 42, 2, 700, 'edittext', 'lang', 'LANG');
INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (714, 42, 2, 700, 'loadByTag', 'lang', 'LANG');
INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (715, 42, 2, 700, 'editor', 'id', 'ALL');
INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (715, 42, 2, 700, 'editor', 'id', 'STRING');
INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (716, 42, 2, 700, 'editor', 'lang', 'LANG');
--
INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (720, 42, 2, 700, 'delete', 'id', 'ALL');
INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (720, 42, 2, 700, 'delete', 'id', 'STRING');
INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (721, 42, 3, 700, 'delete', 'lang', 'LANG');
--
INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (730, 42, 2, 700, 'add', 'id', 'ALL');
INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (731, 42, 2, 700, 'add', 'category', 'INT');
--
INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (740, 42, 2, 700, 'edit', 'id', 'ALL');
INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (741, 42, 2, 700, 'edit', 'lang', 'LANG');
INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (742, 42, 2, 700, 'edit', 'category', 'ALL');
INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (743, 42, 2, 700, 'edit', 'newtext', 'ALL');
INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (730, 42, 2, 700, 'save', 'id', 'STRING');
INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (731, 42, 2, 700, 'save', 'new_id', 'STRING');
INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (732, 42, 2, 700, 'save', 'lang', 'LANG');
INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (733, 42, 2, 700, 'save', 'tags', 'JSON');
INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (734, 42, 2, 700, 'save', 'text', 'STRING');
INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (800, 42, 0, 0, '_SYSTEM_SAI_saimod_sys_files', 'action', NULL);

View File

@ -51,4 +51,6 @@ class JsonResult extends \SYSTEM\LOG\AbstractResult {
//Returns OK status
public static function ok(){
return self::toString(NULL);}
public static function fail(){
return self::toString(NULL,self::JSONRESULT_ERROR);}
}

View File

@ -1,6 +1,7 @@
<?php
namespace SYSTEM\PAGE;
class text {
const NEW_ENTRY = 'new_text_entry';
public static function id_tags($id){
return \SYSTEM\DBD\SYS_TEXT_GET_ID_TAGS::QA(array($id));}
//return all text values with certain tag and lang - array(id => text)
@ -41,4 +42,27 @@ class text {
return self::get($id, \SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DEFAULT_LANG));}
return $res ? $res['text'] : '';
}
public static function save($id, $new_id, $lang, $tags, $text){
if($new_id == self::NEW_ENTRY){
return false;}
//Insert
if(!\SYSTEM\DBD\SYS_TEXT_SAVE::QI(array($id,$lang,$text, \SYSTEM\SECURITY\Security::getUser()->id,\SYSTEM\SECURITY\Security::getUser()->id))){
return false;}
//Insert tags
foreach($tags as $tag){
if($tag){\SYSTEM\DBD\SYS_TEXT_SAVE_TAG::QI(array($id,$tag));}}
//Rename
\SYSTEM\DBD\SYS_TEXT_RENAME::QI(array($new_id,$id));
\SYSTEM\DBD\SYS_TEXT_RENAME_TAGS::QI(array($new_id,$id));
return true;
}
public static function delete($id, $lang = null){
if(!\SYSTEM\DBD\SYS_TEXT_DELETE::QI(array($id,$lang))){
return false;}
if(\SYSTEM\DBD\SYS_TEXT_GET_ID_COUNT::Q1(array($id))['count'] == 0){
\SYSTEM\DBD\SYS_TEXT_DELETE_TAGS::QI(array($id));}
return true;
}
}

View File

@ -34,6 +34,44 @@ function init_saimod_sys_text_editor(){
text_menu();
text2_menu();
init_tinymce();
$('#btn_save').click(function(){
$.ajax({ type :'GET',
url : './sai.php',
data : { sai_mod: '.SYSTEM.SAI.saimod_sys_text',
action: 'save',
id: $(this).attr('text_id'),
new_id: $('#input_new_id').val(),
lang: $(this).attr('text_lang'),
tags: JSON.stringify($('#input_tags').val().split(',').map(function(s) { return s.trim() })),
text: encodeURIComponent(tinyMCE.activeEditor.getContent({format : 'raw'}))},
success : function(data) {
if(data.status){
alert('success');
system.reload();
}else{
alert('Problem: '+data);}
}
});
});
$('#btn_delete').click(function(){
//Ask if delete all langs of this tag - 3 button dialog required
$.ajax({ type :'GET',
url : './sai.php',
data : { sai_mod: '.SYSTEM.SAI.saimod_sys_text',
action: 'delete',
id: $(this).attr('text_id'),
lang: $(this).attr('text_lang')},
success : function(data) {
if(data.status){
alert('success');
system.reload();
}else{
alert('Problem: '+data);}
}
});
});
};
function init_tinymce(){

View File

@ -1,12 +1,11 @@
<?php
namespace SYSTEM\SAI;
class saimod_sys_text extends \SYSTEM\SAI\SaiModule {
const NEW_ENTRY = 'new_text_entry';
public static function sai_mod__SYSTEM_SAI_saimod_sys_text(){
$vars = array();
$vars['tabopts'] = '';
$res = \SYSTEM\DBD\SYS_SAIMOD_TEXT_TAGS::QQ();
$vars['new_id'] = self::NEW_ENTRY;
$vars['new_id'] = \SYSTEM\PAGE\text::NEW_ENTRY;
$vars['new_lang'] = \SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DEFAULT_LANG);
while($r = $res->next()){
$vars['tabopts'] .= \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_text/tpl/tabopt.tpl'), $r);}
@ -26,7 +25,7 @@ class saimod_sys_text extends \SYSTEM\SAI\SaiModule {
return \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_text/tpl/saimod_sys_text_list.tpl'), array('entries' => $entries));
}
public static function sai_mod__SYSTEM_SAI_saimod_sys_text_action_edittext($id, $lang){
public static function sai_mod__SYSTEM_SAI_saimod_sys_text_action_edittext($lang,$id){
$langs = \SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_LANGS);
$vars = array();
$vars['tabopts'] = '';
@ -53,12 +52,11 @@ class saimod_sys_text extends \SYSTEM\SAI\SaiModule {
return \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_text/tpl/saimod_sys_text_edit_editor.tpl'), $vars);
}
//Dont save to id self::NEW_ENTRY
/*public static function sai_mod__SYSTEM_SAI_saimod_sys_text_action_save($id, $new_id, $lang, $tags){
return \SYSTEM\DBD\SYS_SAIMOD_LOCALE_ADD::QI(array($id, $category)) ? \SYSTEM\LOG\JsonResult::ok() : \SYSTEM\LOG\JsonResult::error(new \SYSTEM\LOG\WARNING("no data added"));}*/
public static function sai_mod__SYSTEM_SAI_saimod_sys_text_action_save($id, $new_id, $lang, $tags, $text){
return \SYSTEM\PAGE\text::save($id, $new_id, $lang, \json_decode($tags), urldecode($text)) ? \SYSTEM\LOG\JsonResult::ok() : \SYSTEM\LOG\JsonResult::fail();}
/*public static function sai_mod__SYSTEM_SAI_saimod_sys_text_action_delete($id, $lang = null){
return \SYSTEM\DBD\SYS_SAIMOD_LOCALE_DEL::QI(array($id)) ? \SYSTEM\LOG\JsonResult::ok() : \SYSTEM\LOG\JsonResult::error(new \SYSTEM\LOG\WARNING("could not delete the permitted data"));}*/
public static function sai_mod__SYSTEM_SAI_saimod_sys_text_action_delete($id, $lang = null){
return \SYSTEM\PAGE\text::delete($id, $lang) ? \SYSTEM\LOG\JsonResult::ok() : \SYSTEM\LOG\JsonResult::fail();}
public static function html_li_menu(){return '<li><a id="menu_text" href="#!text">Text</a></li>';}
public static function right_public(){return false;}

View File

@ -1,8 +1,8 @@
<b>Text ID:</b> <input type="text" value="${id}"/>
<b>Text ID:</b> <input id="input_new_id" type="text" value="${id}"/>
<textarea id="texteditor" name="texteditor">${content}</textarea>
<br>
<input type="text" placeholder="Tags..." value="${tags}" style="width: 98%;"/>
<input id="input_tags" type="text" placeholder="Tags..." value="${tags}" style="width: 98%;"/>
<br>
<button id="btn_back" class="btn" onClick="system.load('text');" style="margin-right: 15px; height: 32px; font-size: 13px; float: left;">Back</button>
<button id="btn_add" class="btn-danger" style="margin-right: 15px; height: 32px; font-size: 13px; float: right;">Delete</button>
<button id="btn_add" class="btn-success" style="margin-right: 15px; height: 32px; font-size: 13px; float: right;">Save</button>
<button id="btn_delete" text_id="${id}" text_lang="${lang}" class="btn-danger" style="margin-right: 15px; height: 32px; font-size: 13px; float: right;">Delete</button>
<button id="btn_save" text_id="${id}" text_lang="${lang}" class="btn-success" style="margin-right: 15px; height: 32px; font-size: 13px; float: right;">Save</button>