$sql) { COM_errorLog("Creating $table table",1); DB_query($sql,1); if (DB_error()) { COM_errorLog("Error Creating $table table",1); plugin_uninstall_{plugin}(); return false; exit; } COM_errorLog("Success - Created $table table",1); } // Insert Default Data foreach ($DEFVALUES as $table => $sql) { COM_errorLog("Inserting default data into $table table",1); DB_query($sql,1); if (DB_error()) { COM_errorLog("Error inserting default data into $table table",1); plugin_uninstall_{plugin}(); return false; exit; } COM_errorLog("Success - inserting data into $table table",1); } // Create the plugin admin security group COM_errorLog("Attempting to create $pi_name admin group", 1); DB_query("INSERT INTO {$_TABLES['groups']} (grp_name, grp_descr) " . "VALUES ('$pi_name Admin', 'Users in this group can administer the $pi_name plugin')",1); if (DB_error()) { plugin_uninstall_{plugin}(); return false; exit; } COM_errorLog('...success',1); $group_id = DB_insertId(); // Save the grp id for later uninstall COM_errorLog('About to save group_id to vars table for use during uninstall',1); DB_query("INSERT INTO {$_TABLES['vars']} VALUES ('{$pi_name}_gid', $group_id)",1); if (DB_error()) { plugin_uninstall_{plugin}(); return false; exit; } COM_errorLog('...success',1); // Add plugin Features foreach ($NEWFEATURE as $feature => $desc) { COM_errorLog("Adding $feature feature",1); DB_query("INSERT INTO {$_TABLES['features']} (ft_name, ft_descr) " . "VALUES ('$feature','$desc')",1); if (DB_error()) { COM_errorLog("Failure adding $feature feature",1); plugin_uninstall_{plugin}(); return false; exit; } $feat_id = DB_insertId(); COM_errorLog("Success",1); COM_errorLog("Adding $feature feature to admin group",1); DB_query("INSERT INTO {$_TABLES['access']} (acc_ft_id, acc_grp_id) VALUES ($feat_id, $group_id)"); if (DB_error()) { COM_errorLog("Failure adding $feature feature to admin group",1); plugin_uninstall_{plugin}(); return false; exit; } COM_errorLog("Success",1); } // OK, now give Root users access to this plugin now! NOTE: Root group should always be 1 COM_errorLog("Attempting to give all users in Root group access to $pi_name admin group",1); DB_query("INSERT INTO {$_TABLES['group_assignments']} VALUES ($group_id, NULL, 1)"); if (DB_error()) { plugin_uninstall_{plugin}(); return false; exit; } // Register the plugin with Geeklog COM_errorLog("Registering $pi_name plugin with Geeklog", 1); DB_delete($_TABLES['plugins'],'pi_name','{plugin}'); DB_query("INSERT INTO {$_TABLES['plugins']} (pi_name, pi_version, pi_gl_version, pi_homepage, pi_enabled) " . "VALUES ('$pi_name', '$pi_version', '$gl_version', '$pi_url', 1)"); if (DB_error()) { plugin_uninstall_{plugin}(); return false; exit; } COM_errorLog("Succesfully installed the $pi_name Plugin!",1); return true; } /* * Main Function */ $display = COM_siteHeader(); $T = new Template($_CONF['path'] . 'plugins/{plugin}/templates'); $T->set_file('install', 'install.thtml'); $T->set_var('install_header', $LANG_PL00['install_header']); $T->set_var('img',$_CONF['site_url'] . '/{plugin}/images/{plugin}.gif'); $T->set_var('cgiurl', $_CONF['site_admin_url'] . '/plugins/{plugin}/install.php'); $T->set_var('admin_url', $_CONF['site_admin_url'] . '/plugins/{plugin}/index.php'); if ($action == 'install') { if (plugin_install_{plugin}()) { $T->set_var('installmsg1',$LANG_PL00['install_success']); } else { $T->set_var('installmsg1',$LANG_PL00['install_failed']); } } else if ($action == "uninstall") { plugin_uninstall_{plugin}('installed'); $T->set_var('installmsg1',$LANG_PL00['uninstall_msg']); } if (DB_count($_TABLES['plugins'], 'pi_name', '{plugin}') == 0) { $T->set_var('installmsg2', $LANG_PL00['uninstalled']); $T->set_var('readme', $LANG_PL00['readme']); $T->set_var('installdoc', $LANG_PL00['installdoc']); $T->set_var('btnmsg', $LANG_PL00['install']); $T->set_var('action','install'); } else { $T->set_var('installmsg2', $LANG_PL00['installed']); $T->set_var('btnmsg', $LANG_PL00['uninstall']); $T->set_var('action','uninstall'); } $T->parse('output','install'); $display .= $T->finish($T->get_var('output')); $display .= COM_siteFooter(true); echo $display; ?>