function getName() { return 'NP_subSilver'; }
function getMinNucleusVersion() { return 330; }
function getAuthor() { return 'Katsumi'; }
- function getVersion() { return '0.2.9.7'; }
+ function getVersion() { return '0.3.0.0'; }
function getURL() {return 'http://japan.nucleuscms.org/bb/viewtopic.php?t=3257';}
function getDescription() { return $this->getName().' plugin'; }
function supportsFeature($what) { return (int)($what=='SqlTablePrefix'); }
function getEventList() {
- return array('QuickMenu','InitSkinParse','PostAuthentication',
+ return array('QuickMenu','InitSkinParse','PostAuthentication','AdminPrePageHead',
'SpamCheck','PostAddComment','ValidateForm',
'PreDeleteComment','PostDeleteComment','PreUpdateComment','PrepareCommentForEdit',
'PostAddItem','PostAddCategory');
/*]]>*/
</script><?php
}
-/* Following event is used to check the values of blog/category settings */
+/* Following event is used to check the values of blog/category settings as well as to redirect to another page */
var $noblogid=false;
+ var $returntoforum='';
function event_PostAuthentication(){
+ // Remember forum URI
+ global $member,$CONF,$itemid;
+ if ($member->isLoggedIn()) {
+ if (@$CONF['UsingAdminArea']) {
+ if (requestVar('subsilver_action')!='returntoforum') {
+ // Set the redirect URI and forget cookie URI
+ if (serverVar('REQUEST_METHOD')=='POST') $this->returntoforum=cookieVar($CONF['CookiePrefix'] . 'subsilver_uri');
+ setcookie($CONF['CookiePrefix'] . 'subsilver_uri', '', 0, $CONF['CookiePath'], $CONF['CookieDomain'], $CONF['CookieSecure']);
+ } // else the cookie remains.
+ } elseif ($itemid) {// Set the redirect URI to cookie when not in admin page.
+ setcookie($CONF['CookiePrefix'] . 'subsilver_uri', serverVar('REQUEST_URI'), 0, $CONF['CookiePath'], $CONF['CookieDomain'], $CONF['CookieSecure']);
+ }
+ }
// Set blogid for the search page.
global $blogid,$query,$DIR_NUCLEUS;
if (strpos(realpath('./'),realpath($DIR_NUCLEUS))!==0 && ($query || getVar('search_author')) && !$blogid) {
$this->noblogid=true;
}
// Restrict member's admin area.
- global $member,$DIR_PLUGINS,$HTTP_POST_VARS,$action;
+ global $DIR_PLUGINS,$action;
if ($member->isAdmin()) return;
if (strpos(realpath('./'),realpath($DIR_PLUGINS))===0) return;
if (strpos(realpath('./'),realpath($DIR_NUCLEUS))!==0) return;
$obj=&$this->loadClass('member');
return $obj->event_PostAuthentication();
}
+ function event_AdminPrePageHead(&$data){
+ if ($this->returntoforum){
+ // Note that this occurs when cookie is set in POST mode
+ // but requestVar('subsilver_action') isn't 'returntoforum'
+ redirect($this->returntoforum);
+ exit;
+ }
+ }
/* General stuffs when the skin parse */
function event_InitSkinParse(&$data){
// Reset global $blogid if it's set in event_PostAuthentication.
return $obj->posting('PostAddComment',$data);
} else {
$obj=&$this->loadClass('comments');
- return $obj->event_PostAddComment(&$data);
+ return $obj->event_PostAddComment($data);
}
}
// PostAddItem event occurs when a new blog is created.
/* Following events are used when the comment is modified */
function event_PreDeleteComment(&$data){
$obj=&$this->loadClass('comments');
- return $obj->event_PreDeleteComment(&$data);
+ return $obj->event_PreDeleteComment($data);
}
function event_PostDeleteComment(&$data){
$obj=&$this->loadClass('comments');
- return $obj->event_PostDeleteComment(&$data);
+ return $obj->event_PostDeleteComment($data);
}
function event_PrepareCommentForEdit(&$data){
$obj=&$this->loadClass('comments');
- return $obj->event_PrepareCommentForEdit(&$data);
+ return $obj->event_PrepareCommentForEdit($data);
}
function event_PreUpdateComment(&$data){
$obj=&$this->loadClass('comments');
- return $obj->event_PreUpdateComment(&$data);
+ return $obj->event_PreUpdateComment($data);
}
/* General class object manager */
var $classobjects=array();
</tr>
<tr>
<td align="left" valign="middle" width="50">
+ <%if(subSilver,member,can=postnew)%>
<form method="post" action="#nucleus_cf" style="position:absolute;">
<input type="hidden" name="subSilver_action" value="posting" />
<input type="image" src="<%skinfile(images/lang_english/post.gif)%>" alt="トピックの新規投稿" title="トピックの新規投稿" />
</form><img src="<%skinfile(images/lang_english/post.gif)%>" alt="トピックの新規投稿" title="トピックの新規投稿" />
+ <%endif%>
</td>
<td class="nav" align="left" valign="middle" width="100%"><span class="nav"> <a href="<%sitevar(url)%>" class="nav"><%sitevar(name)%> フォーラム一覧</a> -> <a class="nav" href="?catid=<%category(id)%>&blogid=<%blogsetting(id)%>"><%category(name)%></a></span></td>
<td class="nav" align="right" nowrap="nowrap" valign="bottom">
<table align="center" border="0" cellpadding="2" cellspacing="2" width="100%">
<tbody><tr>
<td align="left" valign="middle" width="50">
+ <%if(subSilver,member,can=postnew)%>
<form method="post" action="#nucleus_cf" style="position:absolute;">
<input type="hidden" name="subSilver_action" value="posting" />
<input type="image" src="<%skinfile(images/lang_english/post.gif)%>" alt="トピックの新規投稿" title="トピックの新規投稿" />
</form><img src="<%skinfile(images/lang_english/post.gif)%>" alt="トピックの新規投稿" title="トピックの新規投稿" />
+ <%endif%>
</td>
<td align="left" valign="middle" width="100%"><span class="nav"> <a href="<%sitevar(url)%>" class="nav"><%sitevar(name)%> フォーラム一覧</a> -> <a class="nav" href="?catid=<%category(id)%>&blogid=<%blogsetting(id)%>"><%category(name)%></a></span></td>
<td align="right" nowrap="nowrap" valign="middle"><br /><span class="nav"></span>
<table border="0" cellpadding="2" cellspacing="2" width="100%">
<tbody><tr>
<td colspan="2" align="left" valign="bottom"><a class="maintitle" href="?itemid=<%itemid%>"><%itemtitle%></a>
- <%if(admin)%><a href="<%adminurl%>?action=itemedit&itemid=<%itemid%>"><img src="<%skinfile(images/lang_english/icon_edit.gif)%>"/ alt="edit" title="edit" /></a><%endif%>
+ <%if(admin)%><a href="<%adminurl%>?action=itemedit&itemid=<%itemid%>&subsilver_action=returntoforum"><img src="<%skinfile(images/lang_english/icon_edit.gif)%>"/ alt="edit" title="edit" /></a><%endif%>
<br /><span class="gensmall"><b></b><br />
</span></td>
</tr>
<tbody><tr>
<td align="left" nowrap="nowrap" valign="bottom">
<span class="nav">
+ <%if(subSilver,member,can=postnew)%>
<input type="image" name="subSilver_action" value="posting" src="<%skinfile(images/lang_english/post.gif)%>" alt="トピックの新規投稿" title="トピックの新規投稿" onclick="
document.getElementById('subsilver_form_body').value='';
document.getElementById('subsilver_form_dummy').name=this.name;
return true;
" />
+ <%endif%>
+ <%if(subSilver,member,can=reply)%>
<input type="image" name="subSilver_action" value="commentform" src="<%skinfile(images/lang_english/reply.gif)%>" alt="返信" title="返信" onclick="
document.getElementById('subsilver_form_body').value='';
document.getElementById('subsilver_form_dummy').name=this.name;
document.getElementById('subsilver_form_dummy').value=this.value;
return true;
" />
+ <%endif%>
</span>
</td>
<td align="left" valign="middle"><span class="nav"> <a href="<%sitevar(url)%>" class="nav"><%sitevar(name)%> フォーラム一覧</a> -> <a class="nav" href="<%self%>?catid=<%category(id)%>&blogid=<%blogsetting(id)%>"><%category(name)%></a></span></td>
<tbody><tr>
<td align="left" nowrap="nowrap" valign="bottom">
<span class="nav">
+ <%if(subSilver,member,can=postnew)%>
<input type="image" name="subSilver_action" value="posting" src="<%skinfile(images/lang_english/post.gif)%>" alt="トピックの新規投稿" title="トピックの新規投稿" onclick="
document.getElementById('subsilver_form_body').value='';
document.getElementById('subsilver_form_dummy').name=this.name;
return true;
" />
+ <%endif%>
+ <%if(subSilver,member,can=reply)%>
<input type="image" name="subSilver_action" value="commentform" src="<%skinfile(images/lang_english/reply.gif)%>" alt="返信" title="返信" onclick="
document.getElementById('subsilver_form_body').value='';
document.getElementById('subsilver_form_dummy').name=this.name;
document.getElementById('subsilver_form_dummy').value=this.value;
return true;
" />
+ <%endif%>
</span>
</td>
<td align="right" nowrap="nowrap" valign="top">