1
0
mirror of https://github.com/e107inc/e107.git synced 2025-08-07 23:26:41 +02:00

Minor fixes in Plugin Manager

This commit is contained in:
CaMer0n
2009-07-07 06:26:51 +00:00
parent 38198ae775
commit 8e634b6e70
3 changed files with 110 additions and 32 deletions

View File

@@ -11,8 +11,8 @@
| GNU General Public License (http://gnu.org). | GNU General Public License (http://gnu.org).
| |
| $Source: /cvs_backup/e107_0.8/e107_admin/plugin.php,v $ | $Source: /cvs_backup/e107_0.8/e107_admin/plugin.php,v $
| $Revision: 1.25 $ | $Revision: 1.26 $
| $Date: 2009-07-07 02:43:14 $ | $Date: 2009-07-07 06:26:50 $
| $Author: e107coders $ | $Author: e107coders $
+----------------------------------------------------------------------------+ +----------------------------------------------------------------------------+
*/ */
@@ -33,6 +33,7 @@ require_once("auth.php");
require_once(e_HANDLER.'plugin_class.php'); require_once(e_HANDLER.'plugin_class.php');
require_once(e_HANDLER.'file_class.php'); require_once(e_HANDLER.'file_class.php');
require_once(e_HANDLER."form_handler.php"); require_once(e_HANDLER."form_handler.php");
require_once (e_HANDLER.'message_handler.php');
$plugin = new e107plugin; $plugin = new e107plugin;
@@ -53,14 +54,16 @@ class pluginManager{
function pluginManager() function pluginManager()
{ {
global $user_pref,$admin_log; global $user_pref,$admin_log,$ns;
$tmp = explode('.', e_QUERY); $tmp = explode('.', e_QUERY);
$this -> action = $tmp[0]; $this -> action = $tmp[0];
$this -> id = intval($tmp[1]); $this -> id = intval($tmp[1]);
$this-> fields = array( $this-> fields = array(
// "plugin_status" => array("title" => "Status", "type"=>"image", "width" => "5%", "thclass" => "center", "url" => ""),
"plugin_checkboxes" => array("title" => "", "forced"=>TRUE, "width"=>"3%"),
"plugin_icon" => array("title" => EPL_ADLAN_82, "type"=>"image", "width" => "5%", "thclass" => "middle center", "url" => ""), "plugin_icon" => array("title" => EPL_ADLAN_82, "type"=>"image", "width" => "5%", "thclass" => "middle center", "url" => ""),
"plugin_name" => array("title" => EPL_ADLAN_10, "type"=>"text", "width" => "30", "thclass" => "middle", "url" => ""), "plugin_name" => array("title" => EPL_ADLAN_10, "type"=>"text", "width" => "30", "thclass" => "middle", "url" => ""),
"plugin_version" => array("title" => EPL_ADLAN_11, "type"=>"numeric", "width" => "5%", "thclass" => "middle", "url" => ""), "plugin_version" => array("title" => EPL_ADLAN_11, "type"=>"numeric", "width" => "5%", "thclass" => "middle", "url" => ""),
@@ -85,33 +88,52 @@ class pluginManager{
save_prefs('user'); save_prefs('user');
} }
$this -> fieldpref = (is_array($user_pref['admin_pluginmanager_columns'])) ? $user_pref['admin_pluginmanager_columns'] : array("plugin_icon","plugin_name","plugin_version","plugin_description","plugin_author","plugin_website","plugin_notes"); $this -> fieldpref = (is_array($user_pref['admin_pluginmanager_columns'])) ? $user_pref['admin_pluginmanager_columns'] : array("plugin_icon","plugin_name","plugin_version","plugin_description","plugin_author","plugin_website","plugin_notes");
if($this->action == "" || $this->action == "installed" || $this->action == "avail") if(isset($_POST['install-selected']))
{ {
foreach($_POST['plugin_checkbox'] as $val)
{
$this -> id = intval($val);
$this -> pluginInstall();
}
$this -> action = "installed";
}
/* if(isset($_POST['uninstall-selected']))
{
foreach($_POST['plugin_checkbox'] as $val)
{
$this -> id = intval($val);
$this -> pluginUninstall();
}
$this -> action = "installed";
$this -> pluginRenderList(); $this -> pluginRenderList();
} return;
// Complicated, as each uninstall system is different.
}*/
if($this->action == "uninstall") if($this->action == "uninstall")
{ {
$this -> pluginUninstall(); $this -> pluginUninstall();
$this -> action = "installed"; $this -> action = "installed";
$this -> pluginRenderList();
} }
if($this->action == "install") if($this->action == "install")
{ {
$this -> pluginInstall(); $this -> pluginInstall();
$this -> action = "installed"; $this -> action = "installed";
$this -> pluginRenderList();
} }
if($this->action == "upgrade") if($this->action == "upgrade")
{ {
$this -> pluginUpgrade(); $this -> pluginUpgrade();
$this -> action = "installed"; $this -> action = "installed";
$this -> pluginRenderList();
} }
if($this->action == "refresh") if($this->action == "refresh")
@@ -122,6 +144,23 @@ class pluginManager{
{ {
$this -> pluginUpload(); $this -> pluginUpload();
} }
if($emessage->hasMessage) // Would prefer a method like this, but it doesn't work.
{
$emessage = &eMessage::getInstance();
$ns->tablerender(NWSLAN_4, $emessage->render());
}
if($this->action != 'avail')
{
unset($this-> fields['plugin_checkboxes']);
}
if($this->action !='upload')
{
$this -> pluginRenderList();
}
} }
@@ -269,7 +308,9 @@ class pluginManager{
} }
$plugin->save_addon_prefs(); $plugin->save_addon_prefs();
$ns->tablerender(EPL_ADLAN_1.' '.$tp->toHtml($plug['plugin_name'], "", "defs,emotes_off,no_make_clickable"), $text);
$this->show_message($text, E_MESSAGE_SUCCESS);
// $ns->tablerender(EPL_ADLAN_1.' '.$tp->toHtml($plug['plugin_name'], "", "defs,emotes_off,no_make_clickable"), $text);
$text = ''; $text = '';
} }
@@ -386,14 +427,16 @@ class pluginManager{
$text = $plugin->install_plugin($this->id); $text = $plugin->install_plugin($this->id);
if ($text === FALSE) if ($text === FALSE)
{ // Tidy this up { // Tidy this up
$ns->tablerender(LAN_INSTALL_FAIL, "Error messages above this line"); $this->show_message("Error messages above this line", E_MESSAGE_ERROR);
// $ns->tablerender(LAN_INSTALL_FAIL, );
} }
else else
{ {
$plugin ->save_addon_prefs(); $plugin ->save_addon_prefs();
// if($eplug_conffile){ $text .= "&nbsp;<a href='".e_PLUGIN."$eplug_folder/$eplug_conffile'>[".LAN_CONFIGURE."]</a>"; } // if($eplug_conffile){ $text .= "&nbsp;<a href='".e_PLUGIN."$eplug_folder/$eplug_conffile'>[".LAN_CONFIGURE."]</a>"; }
$admin_log->log_event('PLUGMAN_01', $this->id.':'.$eplug_folder, E_LOG_INFORMATIVE, ''); $admin_log->log_event('PLUGMAN_01', $this->id.':'.$eplug_folder, E_LOG_INFORMATIVE, '');
$ns->tablerender(EPL_ADLAN_33, $text); $this->show_message($text, E_MESSAGE_SUCCESS);
// $ns->tablerender(EPL_ADLAN_33, $text);
} }
} }
@@ -626,22 +669,35 @@ class pluginManager{
$installed = $plugin->getall(1); $installed = $plugin->getall(1);
$caption = EPL_ADLAN_22; $caption = EPL_ADLAN_22;
$text .= $this->pluginRenderPlugin($installed); $text .= $this->pluginRenderPlugin($installed);
$button_mode = "uninstall-selected";
$button_caption = EPL_ADLAN_85;
$button_action = "delete";
} }
if($this->action == "avail") if($this->action == "avail")
{ {
$uninstalled = $plugin->getall(0); $uninstalled = $plugin->getall(0);
$caption = EPL_ADLAN_23; $caption = EPL_ADLAN_23;
$text .= $this->pluginRenderPlugin($uninstalled); $text .= $this->pluginRenderPlugin($uninstalled);
$button_mode = "install-selected";
$button_caption = EPL_ADLAN_84;
$button_action = "update";
} }
$text .= " $text .= "
</tbody> </tbody>
</table> </table>";
if($this->action == "avail")
{
$text .= "<div class='buttons-bar left'>".$frm->admin_button($button_mode, $button_caption, $button_action)."</div>";
}
$text .= "
</fieldset> </fieldset>
</form> </form>
"; ";
$ns->tablerender(EPL_ADLAN_16." : ".$caption, $text); $emessage = &eMessage::getInstance();
$ns->tablerender(EPL_ADLAN_16." : ".$caption,$emessage->render(). $text);
} }
@@ -649,7 +705,7 @@ class pluginManager{
function pluginRenderPlugin($pluginList) function pluginRenderPlugin($pluginList)
{ {
global $tp, $imode, $plugin; global $tp, $imode, $plugin, $frm;
if (empty($pluginList)) return ''; if (empty($pluginList)) return '';
@@ -699,6 +755,13 @@ class pluginManager{
} }
$text .= "<tr>"; $text .= "<tr>";
if(is_array($this-> fields['plugin_checkboxes']))
{
$rowid = "plugin_checkbox[".$plug['plugin_id']."]";
$text .= "<td class='center middle'>".$frm->checkbox($rowid, $plug['plugin_id'])."</td>\n";
}
// $text .= (in_array("plugin_status",$this->fieldpref)) ? "<td class='center'>".$img."</td>" : ""; // $text .= (in_array("plugin_status",$this->fieldpref)) ? "<td class='center'>".$img."</td>" : "";
$text .= (in_array("plugin_icon",$this->fieldpref)) ? "<td class='center middle'>".$plugin_icon."</td>" : ""; $text .= (in_array("plugin_icon",$this->fieldpref)) ? "<td class='center middle'>".$plugin_icon."</td>" : "";
$text .= (in_array("plugin_name",$this->fieldpref)) ? "<td class='middle'>".$plugName."</td>" : ""; $text .= (in_array("plugin_name",$this->fieldpref)) ? "<td class='middle'>".$plugName."</td>" : "";
@@ -900,7 +963,14 @@ class pluginManager{
<td class='forumheader3'>{$del_text}</td> <td class='forumheader3'>{$del_text}</td>
</tr> </tr>
<tr> <tr>
<td colspan='2' class='forumheader' style='text-align:center'><input class='button' type='submit' name='uninstall_confirm' value=\"".EPL_ADLAN_3."\" />&nbsp;&nbsp;<input class='button' type='submit' name='uninstall_cancel' value='".EPL_ADLAN_62."' onclick=\"location.href='".e_SELF."'; return false;\"/></td> <td colspan='2' class='forumheader' style='text-align:center'>";
$text .= "<input class='button' type='submit' name='uninstall_confirm' value=\"".EPL_ADLAN_3."\" />&nbsp;&nbsp;
<input class='button' type='submit' name='uninstall_cancel' value='".EPL_ADLAN_62."' onclick=\"location.href='".e_SELF."'; return false;\"/>";
// $frm->admin_button($name, $value, $action = 'submit', $label = '', $options = array());
$text .= "</td>
</tr> </tr>
</table> </table>
</form> </form>
@@ -910,7 +980,12 @@ class pluginManager{
exit; exit;
} }
function show_message($message, $type = E_MESSAGE_INFO, $session = false)
{
// ##### Display comfort ---------
$emessage = &eMessage::getInstance();
$emessage->add($message, $type, $session);
}
} // end of Class. } // end of Class.

View File

@@ -9,8 +9,8 @@
* Form Handler * Form Handler
* *
* $Source: /cvs_backup/e107_0.8/e107_handlers/form_handler.php,v $ * $Source: /cvs_backup/e107_0.8/e107_handlers/form_handler.php,v $
* $Revision: 1.28 $ * $Revision: 1.29 $
* $Date: 2009-07-07 02:43:14 $ * $Date: 2009-07-07 06:26:50 $
* $Author: e107coders $ * $Author: e107coders $
* *
*/ */
@@ -583,14 +583,17 @@ class e_form
foreach($columnsArray as $key=>$fld) foreach($columnsArray as $key=>$fld)
{ {
$checked = (in_array($key,$columnsDefault)) ? TRUE : FALSE; if($fld['forced'] !== TRUE)
$text .= $this->checkbox('e-columns[]', $key, $checked). $fld['title']."<br />"; {
$checked = (in_array($key,$columnsDefault)) ? TRUE : FALSE;
$text .= $this->checkbox('e-columns[]', $key, $checked). $fld['title']."<br />\n";
}
} }
$text .= "<div id='button' style='text-align:right'>"; // has issues with the checkboxes. $text .= "<div id='button' style='text-align:right'>\n"; // has issues with the checkboxes.
$text .= $this->admin_button('submit-e-columns','Save','Save'); $text .= $this->admin_button('submit-e-columns','Save','Save');
$text .= "</div>"; $text .= "</div>\n";
$text .= "</div></div>"; $text .= "</div></div>";
return $text; return $text;
} }
@@ -600,9 +603,9 @@ class e_form
foreach($fieldarray as $key=>$val) foreach($fieldarray as $key=>$val)
{ {
if(in_array($key,$columnPref)) if(in_array($key,$columnPref) || $key=='options' || $val['forced']==TRUE)
{ {
$text .= "\n<col style='width: ".$val['width']."'></col>"; $text .= "\n<col style='width: ".$val['width'].";'></col>";
} }
} }
return $text; return $text;
@@ -613,11 +616,11 @@ class e_form
foreach($fieldarray as $key=>$val) foreach($fieldarray as $key=>$val)
{ {
if(in_array($key,$columnPref) || $key == "options") if(in_array($key,$columnPref) || $key == "options" || ($val['forced']==TRUE))
{ {
$cl = ($val['thclass']) ? "class='".$val['thclass']."'" : ""; $cl = ($val['thclass']) ? "class='".$val['thclass']."'" : "";
$text .= "\n\t<th id='$key' {$cl}>"; $text .= "\n\t<th id='$key' {$cl}>";
$text .= ($val['url']) ? "<a href='".$val['url']."'>" : ""; $text .= ($val['url']) ? "<a href='".$val['url']."'>" : ""; // Really this column-sorting link should be auto-generated, or be autocreated via unobtrusive js.
$text .= $val['title']; $text .= $val['title'];
$text .= ($key == "options") ? $this->columnSelector($fieldarray,$columnPref) : ""; $text .= ($key == "options") ? $this->columnSelector($fieldarray,$columnPref) : "";

View File

@@ -4,8 +4,8 @@
| e107 website system - Language File. | e107 website system - Language File.
| |
| $Source: /cvs_backup/e107_0.8/e107_languages/English/admin/lan_plugin.php,v $ | $Source: /cvs_backup/e107_0.8/e107_languages/English/admin/lan_plugin.php,v $
| $Revision: 1.9 $ | $Revision: 1.10 $
| $Date: 2009-07-07 02:22:57 $ | $Date: 2009-07-07 06:26:51 $
| $Author: e107coders $ | $Author: e107coders $
+----------------------------------------------------------------------------+ +----------------------------------------------------------------------------+
*/ */
@@ -100,8 +100,8 @@ define ('EPL_ADLAN_80','Delete extended user fields created by plugin:');
define ('EPL_ADLAN_81','Xhtml'); define ('EPL_ADLAN_81','Xhtml');
define ('EPL_ADLAN_82','Icon'); define ('EPL_ADLAN_82','Icon');
define ('EPL_ADLAN_83','Notes'); define ('EPL_ADLAN_83','Notes');
define ('EPL_ADLAN_84',''); define ('EPL_ADLAN_84','Install Selected');
define ('EPL_ADLAN_85',''); define ('EPL_ADLAN_85','Uninstall Selected');
define('LAN_UPGRADE_SUCCESSFUL', 'Upgrade Successful'); define('LAN_UPGRADE_SUCCESSFUL', 'Upgrade Successful');