+#17692 - Append skill list.
#18685 - Change charset from SJIS to UTF8 at changes list.
#18684 - Missing skill range value scale.
#18681 - Remove admin mode.
+#17692 - すきるりすとを追加
#18685 - このふぁいるの文字こーどを SJIS から UTF8 に変更
#18684 - すきるれんぢの小数点以下が消えていたので修正
#18681 - 管理画面を削除
--- /dev/null
+<?php
+/**
+ * @file
+ * @package sd3rd
+ * @version $Id$
+**/
+
+if(!defined('XOOPS_ROOT_PATH'))
+{
+ exit;
+}
+
+require_once SD3RD_TRUST_PATH . '/class/AbstractListAction.class.php';
+
+/**
+ * Sd3rd_SkillListAction
+**/
+class Sd3rd_SkillListAction extends Sd3rd_AbstractListAction
+{
+ /**
+ * &_getHandler
+ *
+ * @param void
+ *
+ * @return Sd3rd_SkillHandler
+ **/
+ protected function &_getHandler()
+ {
+ $handler =& $this->mAsset->getObject('handler', 'Skill');
+ return $handler;
+ }
+
+ /**
+ * &_getFilterForm
+ *
+ * @param void
+ *
+ * @return Sd3rd_SkillFilterForm
+ **/
+ protected function &_getFilterForm()
+ {
+ $filter =& $this->mAsset->getObject('filter', 'Skill',false);
+ $filter->prepare($this->_getPageNavi(), $this->_getHandler());
+ return $filter;
+ }
+
+ /**
+ * _getBaseUrl
+ *
+ * @param void
+ *
+ * @return string
+ **/
+ protected function _getBaseUrl()
+ {
+ return './index.php?action=SkillList';
+ }
+
+ /**
+ * executeViewIndex
+ *
+ * @param XCube_RenderTarget &$render
+ *
+ * @return void
+ **/
+ public function executeViewIndex(/*** XCube_RenderTarget ***/ &$render)
+ {
+ $render->setTemplateName($this->mAsset->mDirname . '_skill_list.html');
+ #cubson::lazy_load_array('skill', $this->mObjects);
+ $render->setAttribute('objects', $this->mObjects);
+ $render->setAttribute('pageNavi', $this->mFilter->mNavi);
+ $render->setAttribute('linkHandler',$this->mAsset->getObject('handler','SkillElement'));
+ $render->setAttribute('elementHandler',$this->_getMasterHandler('Element'));
+ $render->setAttribute('targetHandler',$this->_getMasterHandler('Target'));
+ $render->setAttribute('kindHandler',$this->_getMasterHandler('Kind'));
+ $render->setAttribute('updateHandler',$this->mAsset->getObject('handler','Update'));
+ }
+}
+
+?>
abstract class Sd3rd_AbstractAction
{
public /*** XCube_Root ***/ $mRoot = null;
-
public /*** Sd3rd_Module ***/ $mModule = null;
-
public /*** Sd3rd_AssetManager ***/ $mAsset = null;
/**
}
/**
+ * _getMasterHandler
+ *
+ * @param string $name
+ *
+ * @return Sd3rd_AbstractMasterHandler
+ **/
+ protected function _getMasterHandler(/*** string ***/ $name)
+ {
+ $handler = $this->mAsset->getObject('handler',$name);
+ $handler->setupList();
+ return $handler;
+ }
+
+ /**
* prepare
*
* @param void
}
$this->_mCache[$obj->get($this->_mValueColumn)] = $obj->get($this->_mIdColumn);
}
+
+ /**
+ * Setup master item list.
+ *
+ * @param void
+ *
+ * @return void
+ **/
+ public function setupList()
+ {
+ foreach($this->getObjects($this->_makeDefaultCriteria()) as $obj)
+ {
+ $this->_mCache[$obj->get($this->_mIdColumn)] = $obj;
+ }
+ }
+
+ /**
+ * Create CriteriaElement instance for list.
+ *
+ * @param void
+ *
+ * @return CriteriaElement
+ **/
+ protected function _makeDefaultCriteria()
+ {
+ $cri = new CriteriaCompo();
+ $cri->addSort($this->_mValueColumn,'ASC');
+ $cri->addSort($this->_mIdColumn,'ASC');
+ return $cri;
+ }
+
+ /**
+ * Get master item list.
+ *
+ * @param void
+ *
+ * @return XoopsSimpleObject{}
+ **/
+ public function getList()
+ {
+ return $this->_mCache;
+ }
+
+ /**
+ * Convert from id to value.
+ *
+ * @param mixed $id
+ *
+ * @return mixed
+ **/
+ public function convertToMaster(/*** mixed ***/ $id)
+ {
+ return isset($this->_mCache[$id]) ? $this->_mCache[$id]->getShow($this->_mValueColumn) : null;
+ }
}
?>
--- /dev/null
+<?php
+/**
+ * @file
+ * @package sd3rd
+ * @version $Id$
+**/
+
+if(!defined('XOOPS_ROOT_PATH'))
+{
+ exit();
+}
+
+require_once SD3RD_TRUST_PATH . '/class/AbstractMasterHandler.class.php';
+
+/**
+ * Object of element.
+**/
+class Sd3rd_ElementObject extends XoopsSimpleObject
+{
+ /**
+ * Constructor of this class.
+ *
+ * @param void
+ *
+ * @return void
+ **/
+ public function __construct()
+ {
+ $this->initVar('element_id',XOBJ_DTYPE_INT,'',false);
+ $this->initVar('element_name',XOBJ_DTYPE_STRING,'',false);
+ }
+}
+
+/**
+ * Element master handler.
+**/
+class Sd3rd_ElementHandler extends Sd3rd_AbstractMasterHandler
+{
+ public /*** string ***/ $mClass = 'Sd3rd_ElementObject';
+ public /*** string ***/ $mPrimary = 'element_id';
+ protected /*** bool ***/ $_mCanCreate = false;
+ protected /*** string ***/ $_mIdColumn = 'element_id';
+ protected /*** string ***/ $_mValueColumn = 'element_name';
+
+ /**
+ * Create Sd3rd_ElementObject instance.
+ *
+ * @param int $id
+ * @param string $name
+ *
+ * @return Sd3rd_ElementObject
+ **/
+ protected function _create(/*** int ***/ $id,/*** string ***/ $name)
+ {
+ $obj = $this->create();
+ $obj->set($this->_mIdColumn,$id);
+ $obj->set($this->_mValueColumn,$name);
+ return $obj;
+ }
+
+ /**
+ * Create object list.
+ *
+ * @param CriteriaElement $cri
+ * @param int $limit
+ * @param int $offset
+ *
+ * @return XoopsSimpleObject[]
+ **/
+ public function getObjects(/*** CriteriaElement ***/ $cri = null,/*** int ***/ $limit = null,/*** int ***/ $offset = null)
+ {
+ $list = array(
+ $this->_create(-3,_MD_SD3RD_LANG_ELEMENT_RANDOM),
+ $this->_create(-2,_MD_SD3RD_LANG_ELEMENT_UNDEFINED),
+ $this->_create(-1,_MD_SD3RD_LANG_ELEMENT_EMPTY),
+ );
+ for($i = 0;$i <= 12;$i++)
+ {
+ $list[] = $this->_create($i,constant('_MD_SD3RD_LANG_ELEMENT_' . $i));
+ }
+ return $list;
+ }
+}
+
+?>
$this->initVar('tp', XOBJ_DTYPE_INT, '', false);
$this->initVar('register_time', XOBJ_DTYPE_INT, '', false);
}
+
+ /**
+ * Get formated range value.
+ *
+ * @param void
+ *
+ * @return string
+ **/
+ public function getRange()
+ {
+ static $map = array(-10 => '-',0 => _MD_SD3RD_LANG_WEAPON);
+ $range = $this->get('range');
+ return isset($map[$range]) ? $map[$range] : sprintf('%1.1f',$range * 0.1);
+ }
}
/**
$this->mTable = strtr($this->mTable,array('{dirname}' => $dirname));
parent::__construct($db);
}
+
+ /**
+ * Get skill element id list.
+ *
+ * @param int $id
+ *
+ * @return int[]
+ **/
+ public function getList(/*** int ***/ $id)
+ {
+ $list = array();
+ foreach($this->getObjects(new Criteria($this->mPrimary,$id)) as $obj)
+ {
+ $list[] = $obj->get('element_id');
+ }
+ return $list;
+ }
}
?>
--- /dev/null
+<?php
+/**
+ * @file
+ * @package sd3rd
+ * @version $Id$
+**/
+
+if(!defined('XOOPS_ROOT_PATH'))
+{
+ exit;
+}
+
+require_once SD3RD_TRUST_PATH . '/class/AbstractFilterForm.class.php';
+
+define('SD3RD_SKILL_SORT_KEY_SKILL_NAME', 1);
+define('SD3RD_SKILL_SORT_KEY_DEFAULT', SD3RD_SKILL_SORT_KEY_SKILL_NAME);
+
+/**
+ * Sd3rd_SkillFilterForm
+**/
+class Sd3rd_SkillFilterForm extends Sd3rd_AbstractFilterForm
+{
+ public /*** string[] ***/ $mSortKeys = array(
+ SD3RD_SKILL_SORT_KEY_SKILL_NAME => 'skill_name',
+ );
+
+ /**
+ * getDefaultSortKey
+ *
+ * @param void
+ *
+ * @return void
+ **/
+ public function getDefaultSortKey()
+ {
+ return SD3RD_SKILL_SORT_KEY_DEFAULT;
+ }
+
+ /**
+ * fetch
+ *
+ * @param void
+ *
+ * @return void
+ **/
+ public function fetch()
+ {
+ parent::fetch();
+ $request =& XCube_Root::getSingleton()->mContext->mRequest;
+
+ if(($value = $request->getRequest('range')) !== null)
+ {
+ if(preg_match('/^-?\d+$/',$value))
+ {
+ $value = intval($value);
+ $this->_mCriteria->add(new Criteria('range',$value));
+ }
+ else
+ {
+ $value = null;
+ }
+ }
+ $this->mNavi->addExtra('range',$value);
+
+ if(($value = $request->getRequest('target')) !== null)
+ {
+ if(ctype_digit($value))
+ {
+ $value = intval($value);
+ $this->_mCriteria->add(new Criteria('target_id',$value));
+ }
+ else
+ {
+ $value = null;
+ }
+ }
+ $this->mNavi->addExtra('target',$value);
+
+ if(($value = $request->getRequest('kind')) !== null)
+ {
+ if(ctype_digit($value))
+ {
+ $value = intval($value);
+ $this->_mCriteria->add(new Criteria('kind_id',$value));
+ }
+ else
+ {
+ $value = null;
+ }
+ }
+ $this->mNavi->addExtra('kind',$value);
+
+ if(($value = $request->getRequest('register_time')) !== null)
+ {
+ if(ctype_digit($value))
+ {
+ $value = intval($value);
+ $this->_mCriteria->add(new Criteria('register_time',$value));
+ }
+ }
+ $this->mNavi->addExtra('register_time', $value);
+
+ $this->_mCriteria->addSort($this->getSort(), $this->getOrder());
+ }
+}
+
+?>
define('_MD_SD3RD_LANG_MODIFY_ACT', "MODIFY_ACT");
define('_MD_SD3RD_LANG_MODIFY_AVOID', "MODIFY_AVOID");
define('_MD_SD3RD_LANG_MOVE_COST', "MOVE_COST");
+define('_MD_SD3RD_LANG_ADD_A_NEW_SKILL', "ADD_A_NEW_SKILL");
+define('_MD_SD3RD_LANG_SKILL_ID', "SKILL_ID");
+define('_MD_SD3RD_LANG_SKILL_NAME', "SKILL_NAME");
+define('_MD_SD3RD_LANG_RANGE', "RANGE");
+define('_MD_SD3RD_LANG_TARGET_ID', "TARGET_ID");
+define('_MD_SD3RD_LANG_KIND_ID', "KIND_ID");
+define('_MD_SD3RD_LANG_TP', "TP");
+define('_MD_SD3RD_LANG_WEAPON', "WEAPON");
+define('_MD_SD3RD_LANG_ELEMENT_0', "ELEMENT_0");
+define('_MD_SD3RD_LANG_ELEMENT_1', "ELEMENT_1");
+define('_MD_SD3RD_LANG_ELEMENT_2', "ELEMENT_2");
+define('_MD_SD3RD_LANG_ELEMENT_3', "ELEMENT_3");
+define('_MD_SD3RD_LANG_ELEMENT_4', "ELEMENT_4");
+define('_MD_SD3RD_LANG_ELEMENT_5', "ELEMENT_5");
+define('_MD_SD3RD_LANG_ELEMENT_6', "ELEMENT_6");
+define('_MD_SD3RD_LANG_ELEMENT_7', "ELEMENT_7");
+define('_MD_SD3RD_LANG_ELEMENT_8', "ELEMENT_8");
+define('_MD_SD3RD_LANG_ELEMENT_9', "ELEMENT_9");
+define('_MD_SD3RD_LANG_ELEMENT_10', "ELEMENT_10");
+define('_MD_SD3RD_LANG_ELEMENT_11', "ELEMENT_11");
+define('_MD_SD3RD_LANG_ELEMENT_12', "ELEMENT_12");
+define('_MD_SD3RD_LANG_ELEMENT_EMPTY', "ELEMENT_EMPTY");
+define('_MD_SD3RD_LANG_ELEMENT_RANDOM', "ELEMENT_RANDOM");
+define('_MD_SD3RD_LANG_ELEMENT_UNDEFINED', "ELEMENT_UNDEFINED");
+define('_MD_SD3RD_LANG_ELEMENT', "ELEMENT");
?>
define('_MI_SD3RD_LANG_CREDITS', "CREDITS");
define('_MI_SD3RD_TPL_ABILITY_LIST', "ABILITY_LIST");
define('_MI_SD3RD_TPL_COSTUME_LIST', "COSTUME_LIST");
+define('_MI_SD3RD_TPL_SKILL_LIST', "SKILL_LIST");
?>
define('_MD_SD3RD_LANG_MODIFY_ACT', "行動");
define('_MD_SD3RD_LANG_MODIFY_AVOID', "回避");
define('_MD_SD3RD_LANG_MOVE_COST', "移動");
+define('_MD_SD3RD_LANG_ADD_A_NEW_SKILL', "ADD_A_NEW_SKILL");
+define('_MD_SD3RD_LANG_SKILL_ID', "SKILL_ID");
+define('_MD_SD3RD_LANG_SKILL_NAME', "すきる名");
+define('_MD_SD3RD_LANG_RANGE', "射程");
+define('_MD_SD3RD_LANG_TARGET_ID', "対象");
+define('_MD_SD3RD_LANG_KIND_ID', "攻種");
+define('_MD_SD3RD_LANG_TP', "TP");
+define('_MD_SD3RD_LANG_WEAPON', "武器");
+define('_MD_SD3RD_LANG_ELEMENT_0', "水");
+define('_MD_SD3RD_LANG_ELEMENT_1', "炎");
+define('_MD_SD3RD_LANG_ELEMENT_2', "木");
+define('_MD_SD3RD_LANG_ELEMENT_3', "風");
+define('_MD_SD3RD_LANG_ELEMENT_4', "鉄");
+define('_MD_SD3RD_LANG_ELEMENT_5', "命");
+define('_MD_SD3RD_LANG_ELEMENT_6', "地");
+define('_MD_SD3RD_LANG_ELEMENT_7', "雷");
+define('_MD_SD3RD_LANG_ELEMENT_8', "光");
+define('_MD_SD3RD_LANG_ELEMENT_9', "星");
+define('_MD_SD3RD_LANG_ELEMENT_10', "闇");
+define('_MD_SD3RD_LANG_ELEMENT_11', "花");
+define('_MD_SD3RD_LANG_ELEMENT_12', "無");
+define('_MD_SD3RD_LANG_ELEMENT_EMPTY', "武器");
+define('_MD_SD3RD_LANG_ELEMENT_RANDOM', "?");
+define('_MD_SD3RD_LANG_ELEMENT_UNDEFINED', "-");
+define('_MD_SD3RD_LANG_ELEMENT', "属性");
?>
define('_MI_SD3RD_LANG_CREDITS', "CREDITS");
define('_MI_SD3RD_TPL_ABILITY_LIST', "ABILITY_LIST");
define('_MI_SD3RD_TPL_COSTUME_LIST', "COSTUME_LIST");
+define('_MI_SD3RD_TPL_SKILL_LIST', "SKILL_LIST");
?>
define('_MD_SD3RD_LANG_MODIFY_ACT', "¹ÔÆ°");
define('_MD_SD3RD_LANG_MODIFY_AVOID', "²óÈò");
define('_MD_SD3RD_LANG_MOVE_COST', "°ÜÆ°");
+define('_MD_SD3RD_LANG_ADD_A_NEW_SKILL', "ADD_A_NEW_SKILL");
+define('_MD_SD3RD_LANG_SKILL_ID', "SKILL_ID");
+define('_MD_SD3RD_LANG_SKILL_NAME', "¤¹¤¤ë̾");
+define('_MD_SD3RD_LANG_RANGE', "¼ÍÄø");
+define('_MD_SD3RD_LANG_TARGET_ID', "ÂоÝ");
+define('_MD_SD3RD_LANG_KIND_ID', "¹¶¼ï");
+define('_MD_SD3RD_LANG_TP', "TP");
+define('_MD_SD3RD_LANG_WEAPON', "Éð´ï");
+define('_MD_SD3RD_LANG_ELEMENT_0', "¿å");
+define('_MD_SD3RD_LANG_ELEMENT_1', "±ê");
+define('_MD_SD3RD_LANG_ELEMENT_2', "ÌÚ");
+define('_MD_SD3RD_LANG_ELEMENT_3', "É÷");
+define('_MD_SD3RD_LANG_ELEMENT_4', "Ŵ");
+define('_MD_SD3RD_LANG_ELEMENT_5', "̿");
+define('_MD_SD3RD_LANG_ELEMENT_6', "ÃÏ");
+define('_MD_SD3RD_LANG_ELEMENT_7', "Íë");
+define('_MD_SD3RD_LANG_ELEMENT_8', "¸÷");
+define('_MD_SD3RD_LANG_ELEMENT_9', "˱");
+define('_MD_SD3RD_LANG_ELEMENT_10', "°Ç");
+define('_MD_SD3RD_LANG_ELEMENT_11', "²Ö");
+define('_MD_SD3RD_LANG_ELEMENT_12', "̵");
+define('_MD_SD3RD_LANG_ELEMENT_EMPTY', "Éð´ï");
+define('_MD_SD3RD_LANG_ELEMENT_RANDOM', "¡©");
+define('_MD_SD3RD_LANG_ELEMENT_UNDEFINED', "¡Ý");
+define('_MD_SD3RD_LANG_ELEMENT', "°À");
?>
define('_MI_SD3RD_LANG_CREDITS', "CREDITS");
define('_MI_SD3RD_TPL_ABILITY_LIST', "ABILITY_LIST");
define('_MI_SD3RD_TPL_COSTUME_LIST', "COSTUME_LIST");
+define('_MI_SD3RD_TPL_SKILL_LIST', "SKILL_LIST");
?>
--- /dev/null
+<form action="./index.php" method="get">
+ <fieldset>
+ <input type="hidden" name="action" value="SkillList" />
+ <label for="sd3rd_skill_register_time">Date</label> :
+ <select id="sd3rd_skill_register_time" name="register_time">
+ <option value=""<{if $pageNavi->mExtra.register_time === null}> selected="selected"<{/if}>>--</option>
+ <{foreach from=$updateHandler->getList() item=u}>
+ <option value="<{$u->getShow('update_time')}>"<{if $pageNavi->mExtra.register_time === $u->get('update_time')}> selected="selected"<{/if}>><{$u->format()}></option>
+ <{/foreach}>
+ </select>
+ <label id="sd3rd_skill_range">Range</label> :
+ <select id="sd3rd_skill_range" name="range">
+ <option value=""<{if $pageNavi->mExtra.range === null}> selected="selected"<{/if}>>--</option>
+ <option value="-10"<{if $pageNavi->mExtra.range === -10}> selected="selected"<{/if}>>-</option>
+ <option value="0"<{if $pageNavi->mExtra.range === 0}> selected="selected"<{/if}>><{$smarty.const._MD_SD3RD_LANG_WEAPON}></option>
+ <{foreach from=10|range:40:5 item=r}>
+ <option value="<{$r|xoops_escape}>"<{if $r === $pageNavi->mExtra.range}> selected="selected"<{/if}>><{'%1.1f'|sprintf:$r*0.1}></option>
+ <{/foreach}>
+ </select>
+ <label id="sd3rd_skill_target">Target</label> :
+ <select id="sd3rd_skill_target" name="target">
+ <option value=""<{if $pageNavi->mExtra.target === null}> selected="selected"<{/if}>>--</option>
+ <{foreach from=$targetHandler->getList() item=t}>
+ <option value="<{$t->getShow('target_id')}>"<{if $t->get('target_id') === $pageNavi->mExtra.target}> selected="selected"<{/if}>><{$t->getShow('target_name')}></option>
+ <{/foreach}>
+ </select>
+ <label id="sd3rd_skill_kind">Kind</label> :
+ <select id="sd3rd_skill_kind" name="kind">
+ <option value=""<{if $pageNavi->mExtra.kind === null}> selected="selected"<{/if}>>--</option>
+ <{foreach from=$kindHandler->getList() item=k}>
+ <option value="<{$k->getShow('kind_id')}>"<{if $k->get('kind_id') === $pageNavi->mExtra.kind}> selected="selected"<{/if}>><{$k->getShow('kind_name')}></option>
+ <{/foreach}>
+ </select>
+ <input type="submit" />
+ </fieldset>
+</form>
+
+<{if count($objects) > 0}>
+ <div class="pagenavi"><{xoops_pagenavi pagenavi=$pageNavi}></div>
+ <table class="outer" summary="">
+ <thead>
+ <tr>
+ <th><{$smarty.const._MD_SD3RD_LANG_SKILL_NAME}></th>
+ <th><{$smarty.const._MD_SD3RD_LANG_DESCRIPTION}></th>
+ <th><{$smarty.const._MD_SD3RD_LANG_ELEMENT}></th>
+ <th><{$smarty.const._MD_SD3RD_LANG_RANGE}></th>
+ <th><{$smarty.const._MD_SD3RD_LANG_TARGET_ID}></th>
+ <th><{$smarty.const._MD_SD3RD_LANG_KIND_ID}></th>
+ <th><{$smarty.const._MD_SD3RD_LANG_TP}></th>
+ </tr>
+ </thead>
+ <tbody>
+ <{foreach item=obj from=$objects}>
+ <tr class="<{cycle values='odd,even'}>">
+ <td><{$obj->getShow('skill_name')}></td>
+ <td><{$obj->getShow('description')}></td>
+ <td>
+ <{foreach from=$linkHandler->getList($obj->get('skill_id')) item=e}>
+ <{$elementHandler->convertToMaster($e)}>
+ <{/foreach}>
+ </td>
+ <td><{$obj->getRange()}></td>
+ <td><{$targetHandler->convertToMaster($obj->get('target_id'))}></td>
+ <td><{$kindHandler->convertToMaster($obj->get('kind_id'))}></td>
+ <td><{$obj->getShow('tp')}></td>
+ </tr>
+ <{/foreach}>
+ </tbody>
+ </table>
+ <div class="pagenavi"><{xoops_pagenavi pagenavi=$pageNavi}></div>
+<{/if}>
##[cubson:templates]
array('file' => '{dirname}_ability_list.html','description' => _MI_SD3RD_TPL_ABILITY_LIST),
array('file' => '{dirname}_costume_list.html','description' => _MI_SD3RD_TPL_COSTUME_LIST),
+ array('file' => '{dirname}_skill_list.html','description' => _MI_SD3RD_TPL_SKILL_LIST),
##[/cubson:templates]
);