ifauto/ifblogsetting/ifitempropertyタグを、if/else/elseif/ifnot/ifnotelse/endifを利用して置き換える修正。これにより、PageFactoryクラスが親となるBaseActionsクラスのプライベートメンバーに直接アクセスする必要がなくなった。
以下で投稿されたパッチの適用。
http://sourceforge.jp/projects/nucleus-jp/lists/archive/developers/2012-April/000874.html
'extrahead',
'helplink',
'init',
- 'ifautosave',
- 'ifblogsetting',
- 'ifitemproperty',
'itemoptions',
'itemtime',
'jsbuttonbar',
}
/**
- * PageFactory::parse_ifblogsetting()
- * Indicates the start of a conditional block of data. It will be added to
- * the output only if the blogsetting with the given name equals the
- * given value (default for value = 1 = true)
- * the name of the blogsetting is the column name in the nucleus_blog table
- * the conditional block ends with an <endif> var
- *
- * @param string $name
- * @return void
- */
- public function parse_ifblogsetting($name, $value=1)
- {
- $this->addIfCondition(($this->blog->getSetting($name) == $value));
- return;
- }
-
- /**
- * PageFactory::parse_ifitemproperty()
- *
- * @param string $namge
- * @return void
- */
- public function parse_ifitemproperty($name,$value=1)
- {
- $this->addIfCondition(($this->variables[$name] == $value));
- return;
- }
-
- /**
- * PageFactory::parse_ifautosave()
- *
- * @param string $name
- * @return void
+ * PageFactory::checkCondition()
+ * Checks conditions for if statements
+ *
+ * @param string $field type of <%if%>
+ * @param string $name property of field
+ * @param string $value value of property
+ * @return boolean
*/
- function parse_ifautosave($name,$value=1)
+ protected function checkCondition($field, $name = '', $value = 1)
{
global $member;
- $this->addIfCondition($member->getAutosave() == $value);
- return;
+
+ $condition = 0;
+ switch ( $field )
+ {
+ case 'blogsetting':
+ $condition = (boolean) ($this->blog->getSetting($name) == $value);
+ break;
+ case 'autosave':
+ $condition = (boolean) ($member->getAutosave() == $value);
+ break;
+ case 'itemproperty':
+ if ( array_key_exists($name, $this->variables) )
+ {
+ $condition = (boolean) ($this->variables[$name] == $value);
+ }
+ break;
+ default:
+ break;
+ }
+ return $condition;
}
/**
\r
<%init%>\r
<script type="text/javascript" src="javascript/numbercheck.js"></script>\r
-<%ifautosave()%><script type="text/javascript" src="javascript/xmlhttprequest.js"></script><%endif%>\r
+<%if(autosave)%><script type="text/javascript" src="javascript/xmlhttprequest.js"></script><%endif%>\r
\r
<form id="addform" method="post" action="index.php" >\r
\r
<tr>\r
<th colspan="2"><%text(_ADD_CREATENEW)%></th>\r
</tr>\r
- <%ifautosave()%><tr>\r
+ <%if(autosave)%><tr>\r
<td><%text(_AUTOSAVEDRAFT)%></td>\r
<td><span id="info"><%text(_AUTOSAVEDRAFT_NOTYETSAVED)%></span></td>\r
</tr><%endif%>\r
</td>\r
</tr><tr>\r
\r
-<%ifblogsetting(bcomments)%>\r
+<%if(blogsetting, bcomments)%>\r
<td><%text(_ADD_DISABLE_COMMENTS)%></td>\r
<td>\r
<input name="closed" type="radio" tabindex="30" value="1" id="closed_yes" /><label for="closed_yes"><%text(_YES)%></label>\r
<input id="inputminutes" name="minutes" tabindex="67" size="2" value="<%currenttime(minutes)%>" onchange="document.forms[0].act_future.checked=true;" />\r
(dd/mm/yyyy hh:mm)\r
\r
- <%ifblogsetting(ballowpast,0)%>\r
+ <%if(blogsetting, ballowpast,0)%>\r
<br />\r
<%text(_ADD_NOPASTDATES)%>\r
<%endif%>\r
<td>\r
<input tabindex="60" type="submit" value="<%text(_ADD_ADDITEM)%>" \r
onclick="return checkSubmit();" />\r
- <%ifautosave()%>\r
+ <%if(autosave)%>\r
<input tabindex="80" type="button" name="autosavenow" value="<%text(_AUTOSAVEDRAFT_NOW)%>"\r
onclick="autoSaveDraft();" />\r
<%endif%>\r
\r
</div>\r
</form>\r
-<%ifautosave()%>\r
+<%if(autosave)%>\r
<script type="text/javascript">\r
var xmlhttprequest = new Array();\r
xmlhttprequest[0] = createHTTPHandler(); // AutoDraft handler\r
\r
<%init%>\r
<script type="text/javascript" src="javascript/numbercheck.js"></script>\r
-<%ifautosave()%><script type="text/javascript" src="javascript/xmlhttprequest.js"></script><%endif%>\r
+<%if(autosave)%><script type="text/javascript" src="javascript/xmlhttprequest.js"></script><%endif%>\r
\r
<form id="editform" method="post" action="index.php">\r
<div>\r
<table><tr>\r
<th colspan="2"><%text(_EDIT_ITEM)%></th>\r
</tr>\r
-<%ifautosave()%><tr>\r
+<%if(autosave)%><tr>\r
<td><%text(_AUTOSAVEDRAFT)%></td>\r
<td><span id="info"><%text(_AUTOSAVEDRAFT_NOTYETSAVED)%></span></td>\r
</tr><%endif%>\r
</td>\r
</tr><tr>\r
\r
-<%ifblogsetting(bcomments)%>\r
+<%if(blogsetting, bcomments)%>\r
<td>\r
<%text(_ADD_DISABLE_COMMENTS)%>\r
</td>\r
\r
<input type="submit" tabindex="60" value="<%text(_EDIT_SUBMIT)%>" onclick="return checkSubmit();" />\r
\r
-<%ifitemproperty(draft)%>\r
+<%if(itemproperty, draft)%>\r
<br /><br />\r
<input name="actiontype" value="addnow" type="radio" id="act_now" /><label for="act_now" tabindex="61"><%text(_ADD_ADDNOW)%></label>\r
<br />\r
<input id="inputhour" name="hour" tabindex="74" size="2" value="<%currenttime(hours)%>" onchange="document.forms[0].act_future.checked=true;" />:\r
<input id="inputminutes" name="minutes" tabindex="75" size="2" value="<%currenttime(minutes)%>" onchange="document.forms[0].act_future.checked=true;" />\r
(dd/mm/yyyy hh:mm)\r
- <%ifblogsetting(ballowpast,0)%>\r
+ <%if(blogsetting, ballowpast,0)%>\r
<br />\r
<%text(_ADD_NOPASTDATES)%>\r
<%endif%>\r
<input name="actiontype" value="delete" type="radio" id="act_delete" tabindex="61" /><label for="act_delete"><%text(_BMLET_DELETE)%></label>\r
<%endif%>\r
\r
-<%ifitemproperty(draft,0)%>\r
+<%if(itemproperty, draft,0)%>\r
<br /><br />\r
<input name="actiontype" value="edit" type="radio" checked="checked" id="act_edit" tabindex="61" /><label for="act_edit"><%text(_BMLET_EDIT)%></label>\r
- <%ifblogsetting(ballowpast)%>\r
+ <%if(blogsetting, ballowpast)%>\r
<br />\r
<input name="actiontype" value="changedate" type="radio" id="act_changedate" tabindex="70" /><label for="act_changedate"><%text(_ADD_CHANGEDATE)%></label> <%helplink(changedate)%>\r
<div class="indent">\r
<td>\r
<input tabindex="60" type="submit" value="<%text(_EDIT_SUBMIT)%>" \r
onclick="return checkSubmit();" />\r
- <%ifautosave()%><input tabindex="80" type="button" name="autosavenow" value="<%text(_AUTOSAVEDRAFT_NOW)%>"\r
+ <%if(autosave)%><input tabindex="80" type="button" name="autosavenow" value="<%text(_AUTOSAVEDRAFT_NOW)%>"\r
onclick="autoSaveDraft();" /><%endif%>\r
</td>\r
\r
</div>\r
</form>\r
\r
-<%ifautosave()%><script type="text/javascript">\r
+<%if(autosave)%><script type="text/javascript">\r
var xmlhttprequest = new Array();\r
xmlhttprequest[0] = createHTTPHandler(); // AutoDraft handler\r
xmlhttprequest[1] = createHTTPHandler(); // UpdateTicket handler\r
<script type="text/javascript" src="javascript/bookmarklet.js"></script>\r
<script type="text/javascript" src="javascript/edit.js"></script>\r
<script type="text/javascript" src="javascript/numbercheck.js"></script>\r
- <%ifautosave()%><script type="text/javascript" src="javascript/xmlhttprequest.js"></script><%endif%>\r
+ <%if(autosave)%><script type="text/javascript" src="javascript/xmlhttprequest.js"></script><%endif%>\r
<%init%>\r
<%extrahead%>\r
<script type="text/javascript">\r
<div id="body" class="contentblock">\r
\r
<table>\r
- <%ifautosave()%><tr>\r
+ <%if(autosave)%><tr>\r
<td><%text(_AUTOSAVEDRAFT)%></td>\r
<td><span id="info"><%text(_AUTOSAVEDRAFT_NOTYETSAVED)%></span></td>\r
</tr><%endif%>\r
<td><%categories%></td>\r
</tr>\r
<tr>\r
- <%ifautosave()%><td><%text(_AUTOSAVEDRAFT_NOW)%></td>\r
+ <%if(autosave)%><td><%text(_AUTOSAVEDRAFT_NOW)%></td>\r
<td><input tabindex="80" type="button" name="autosavenow" value="<%text(_AUTOSAVEDRAFT_NOW)%>" onclick="autoSaveDraft();" /></td><%endif%>\r
</tr>\r
</table>\r
</div>\r
<div id="options" class="contentblock">\r
<table>\r
- <%ifblogsetting(bcomments)%>\r
+ <%if(blogsetting, bcomments)%>\r
<tr>\r
<td><%text(_ADD_DISABLE_COMMENTS)%></td>\r
<td>\r
<input id="inputhour" name="hour" size="2" value="<%currenttime(hours)%>" onchange="document.forms[0].act_future.checked=true;" />:\r
<input id="inputminutes" name="minutes" size="2" value="<%currenttime(minutes)%>" onchange="document.forms[0].act_future.checked=true;" />\r
(dd/mm/yyyy hh:mm)\r
- <%ifblogsetting(ballowpast,0)%>\r
+ <%if(blogsetting, ballowpast,0)%>\r
<br />\r
<%text(_ADD_NOPASTDATES)%>\r
<%endif%>\r
\r
</div></form>\r
\r
- <%ifautosave()%><script type="text/javascript">\r
+ <%if(autosave)%><script type="text/javascript">\r
var xmlhttprequest = new Array();\r
xmlhttprequest[0] = createHTTPHandler(); // AutoDraft handler\r
xmlhttprequest[1] = createHTTPHandler(); // UpdateTicket handler\r
<script type="text/javascript" src="javascript/bookmarklet.js"></script>\r
<script type="text/javascript" src="javascript/edit.js"></script>\r
<script type="text/javascript" src="javascript/numbercheck.js"></script>\r
- <%ifautosave()%><script type="text/javascript" src="javascript/xmlhttprequest.js"></script><%endif%>\r
+ <%if(autosave)%><script type="text/javascript" src="javascript/xmlhttprequest.js"></script><%endif%>\r
<%init%>\r
<%extrahead%>\r
<script type="text/javascript">\r
\r
<div id="body" class="contentblock">\r
<table>\r
- <%ifautosave()%><tr>\r
+ <%if(autosave)%><tr>\r
<td><%text(_AUTOSAVEDRAFT)%></td>\r
<td><span id="info"><%text(_AUTOSAVEDRAFT_NOTYETSAVED)%></span></td>\r
</tr><%endif%>\r
<td><%categories%></td>\r
</tr>\r
<tr>\r
- <%ifautosave()%><td><%text(_AUTOSAVEDRAFT_NOW)%></td>\r
+ <%if(autosave)%><td><%text(_AUTOSAVEDRAFT_NOW)%></td>\r
<td><input tabindex="80" type="button" name="autosavenow" value="<%text(_AUTOSAVEDRAFT_NOW)%>" onclick="autoSaveDraft();" /></td><%endif%>\r
</tr>\r
</table>\r
</div>\r
<div id="options" class="contentblock">\r
<table>\r
- <%ifblogsetting(bcomments)%>\r
+ <%if(blogsetting, bcomments)%>\r
<tr>\r
<td><%text(_ADD_DISABLE_COMMENTS)%></td>\r
<td>\r
<ul class="nobullets">\r
<li><input name="actiontype" value="edit" type="radio" checked="checked" id="act_edit" /><label for="act_edit"><%text(_BMLET_EDIT)%></label></li>\r
<li><input name="actiontype" value="delete" type="radio" id="act_delete" /><label for="act_delete"><%text(_BMLET_DELETE)%></label></li>\r
- <%ifblogsetting(ballowpast)%>\r
+ <%if(blogsetting, ballowpast)%>\r
<li>\r
<input name="actiontype" value="changedate" type="radio" id="act_changedate" tabindex="70" /><label for="act_changedate"><%text(_BMLET_CHANGEDATE)%></label> <%helplink(changedate)%>\r
<div class="indent">\r
\r
</div></form>\r
\r
- <%ifautosave()%><script type="text/javascript">\r
+ <%if(autosave)%><script type="text/javascript">\r
var xmlhttprequest = new Array();\r
xmlhttprequest[0] = createHTTPHandler(); // AutoDraft handler\r
xmlhttprequest[1] = createHTTPHandler(); // UpdateTicket handler\r