LegosJedi Posted February 11, 2007 Share Posted February 11, 2007 Okay, I'm making a plugin for MyBB, and, I'm getting the "unexpected $end" error, but I can't figure out why. I've looked through my code, and, as far as I can tell, everything has been closed off just fine. I've got a feeling that somethings up with my <<<EOF thing I have going. I was using that cause addslashes() wasn't working for me. Anyway, here's my code, see if you can help me: <?php if(!defined("IN_MYBB")) { die("Direct initialization of this file is not allowed.<br /><br />Please make sure IN_MYBB is defined."); } $plugins->add_hook('global_start', 'modcp_link'); $plugins->add_hook("admin_index_navigation_end", "modcp_admin_nav"); // ######### Begin the Functions ########## function modcp_info() { return array( "name" => "Mod CP Plugin", "description" => "A plugin that gives the Moderators their own Control Panel", "website" => "http://www.mybboard.com", "author" => "LegosJed", "authorsite" => "http://www.mybboard.com", "version" => "0.1", ); } function modcp_activate() { global $db, $config; // Erase previous settings modcp_deactivate(); // Setup setting group $setting_group = array( 'gid' => 'NULL', 'name' => 'modcp', 'title' => 'Mod CP', 'description' => 'Settings that will add a Mod CP, and give it certain privilages.', 'disporder' => '99', 'isdefault' => 'no' ); $db->insert_query(TABLE_PREFIX."settinggroups", $insertarray); $setting_gid = $db->insert_id(); // Setup settings $setting_1 = array( 'name' => 'modcp_onoff', 'title' => 'Mod CP - On/Off Switch', 'description' => 'Enables or disables the Mod CP', 'optionscode' => 'onoff', 'value' => 'on', 'disporder' => 0, 'gid' => $setting_gid ); $setting_2 = array( 'name' => 'modcp_ban', 'title' => 'Mod CP - Ban User', 'description' => 'Can the Mod CP ban users?', 'optionscode' => 'yesno', 'value' => 'yes', 'disporder' => 1, 'gid' => $setting_gid ); $setting_3 = array( 'name' => 'modcp_ban_ip', 'title' => 'Mod CP - Ban IPs', 'description' => 'Can the Mod CP ban IP addresses?', 'optionscode' => 'yesno', 'value' => 'yesno', 'disporder' => 2, 'gid' => $setting_gid ); $setting_4 = array( 'name' => 'modcp_ban_email', 'title' => 'Mod CP - Ban Email', 'description' => 'Can the Mod CP ban Email addresses?', 'optionscode' => 'yesno', 'value' => 'yes', 'disporder' => 3, 'gid' => $setting_gid ); $setting_5 = array( 'name' => 'modcp_announce', 'title' => 'Mod CP - Forum Announcements', 'description' => 'Can the Mod CP add forum announcements?', 'optionscode' => 'yesno', 'value' => 'yes', 'disporder' => 4, 'gid' => $setting_gid ); $setting_6 = array( 'name' => 'modcp_thread_queue', 'title' => 'Mod CP - Thread Queue', 'description' => 'Can the Mod CP setup a thread queue?', 'optionscode' => 'yesno', 'value' => 'yes', 'disporder' => 5, 'gid' => $setting_gid ); $setting_7 = array( 'name' => 'modcp_post_queue', 'title' => 'Mod CP - Post Queue', 'description' => 'Can the Mod CP setup a post queue?', 'optionscode' => 'yesno', 'value' => 'yes', 'disporder' => 5, 'gid' => $setting_gid ); // Insert settings $db->insert_query(TABLE_PREFIX."settings", $setting_1); $db->insert_query(TABLE_PREFIX."settings", $setting_2); $db->insert_query(TABLE_PREFIX."settings", $setting_3); $db->insert_query(TABLE_PREFIX."settings", $setting_4); $db->insert_query(TABLE_PREFIX."settings", $setting_5); $db->insert_query(TABLE_PREFIX."settings", $setting_6); // Setup tables $tables_1 = "CREATE TABLE mybb_modoptions ( uid int(10) NOT NULL default '0', cpstyle varchar(50) NOT NULL default '', notes text NOT NULL default '', permsset int(1) NOT NULL default '0', caneditann char(3) NOT NULL default '', canmodposts char(3) NOT NULL default '', caneditusers char(3) NOT NULL default '', canban char(3) NOT NULL default '', PRIMARY KEY (uid) ) TYPE=MyISAM;"; $tables_2 = "CREATE TABLE mybb_modsessions ( sid varchar(32) NOT NULL default '', uid int unsigned NOT NULL default '0', loginkey varchar(50) NOT NULL default '', ip varchar(40) NOT NULL default '', dateline bigint(30) NOT NULL default '0', lastactive bigint(30) NOT NULL default '0' ) TYPE=MyISAM;"; // Create Tables $db->query($tables_1); $db->query($tables_2); // Populate new tables $smods_query = $db->query('SELECT * FROM '.TABLE_PREFIX.'users WHERE usergroup=3'); $mods_query = $db->query('SELECT * FROM '.TABLE_PREFIX.'users WHERE usergroup=6'); if($db->mun_rows($smods_query)) { $smods_array = $db->fetch_array($smods_query); foreach($smods_array as $smods) { $query = array( 'uid' => $smods['uid'], 'cpstyle' => 'Axiom', 'notes' => '', 'permsset' => '1', 'caneditann' => 'yes', 'canmodposts' => 'yes', 'caneditusers' => 'yes', 'canban' => 'yes', ); $db->insert_query(TABLE_PREFIX.'modoptions', $query); } } if($db->mun_rows($mods_query)) { $mods_array = $db->fetch_array($mods_query); foreach($mods_array as $mods) { $query = array( 'uid' => $mods['uid'], 'cpstyle' => 'Axiom', 'notes' => '', 'permsset' => '1', 'caneditann' => 'yes', 'canmodposts' => 'yes', 'caneditusers' => 'yes', 'canban' => 'yes', ); $db->insert_query(TABLE_PREFIX.'modoptions', $query); } } // Edit existing template require_once MYBB_ROOT."/inc/adminfunctions_templates.php"; find_replace_templatesets("header_welcomeblock_member", '#welcome_usercp}</strong></a>#', "$0\n{$modcplink}"); // Setup new template $template = <<<EOF — <a href="{\$mybb->settings['bburl']}/{\$config['mod_dir']}/index.php">{\$lang->welcome_mod}</a> EOF; $template_1 = array( array( "title" => "header_welcomeblock_member_mod", "template" => $template, "version" => $mybb->version_code, "status" => "", "dateline" => time(), ); // Insert new template $db->insert_query(TABLE_PREFIX.'templates', $template_1); // Set Mod CP directory $config[mod_dir] = 'mod'; echo "<script language=\"JavaScript\"> parent.nav.location.href = \"./index.php?".SID."&action=navigation\"; </script>"; } function modcp_deactivate() { global $db; $db->delete_query(TABLE_PREFIX."settinggroups", "name='modcp' OR name='Mod CP'"); $db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name IN( 'modcp_onoff', 'modcp_ban', 'modcp_ban_ip', 'modcp_ban_email', 'modcp_announce', 'modcp_thread_queue', 'modcp_post_queue' )"); $db->delete_query(TABLE_PREFIX."templates", "title='header_welcomeblock_member_mod'"); // Attempt to modify header template require_once MYBB_ROOT."/inc/adminfunctions_templates.php"; find_replace_templatesets("header_welcomeblock_member", '#{$modcplink}#', '', 0); if(isset($config[mod_dir])) { unset($config[mod_dir]); } echo "<script language=\"JavaScript\"> parent.nav.location.href = \"./index.php?".SID."&action=navigation\"; </script>"; } function modcp_link() { if($mybb->usergroup['cancp'] == "yes" || $mybb->usergroup['issupermod'] == "yes" || $mybb->usergroup['gid'] == 6) { eval("\$modcplink = \"".$templates->get("header_welcomeblock_member_mod")."\";"); } } function modcp_admin_nav() { global $menu, $mybb, $lang; $language = $mybb->settings['bblanguage']; if(!$lang->language_exists($language."/admin/ban.lang.php")) { $language = 'english'; } $lang->set_language($language, "admin"); $lang->load("ban"); end($menu); $key = key($menu)+10; $menu[$key] = array( "title" => $lang->modcp_admin, "items" => array( 10 => array("title" => $lang->modcp_options, "url" => "admin_ban.php?".SID."&action=cpopt"), 20 => array("title" => $lang->mod_options, "url" => "admin_ban.php?".SID."&action=opt"), ), ); } ?> Quote Link to comment Share on other sites More sharing options...
wildteen88 Posted February 12, 2007 Share Posted February 12, 2007 the ending HEREDOC delimiter must be on its own on the line with nothing else on it, including spaces. // Setup new template $template = <<<EOF — <a href="{\$mybb->settings['bburl']}/{\$config['mod_dir']}/index.php">{\$lang->welcome_mod}</a> EOF; Should be: // Setup new template $template = <<<EOF — <a href="{\$mybb->settings['bburl']}/{\$config['mod_dir']}/index.php">{\$lang->welcome_mod}</a> EOF; Quote Link to comment Share on other sites More sharing options...
LegosJedi Posted February 13, 2007 Author Share Posted February 13, 2007 Oooohhhhhh. Thanks. I never would have known that. Quote Link to comment Share on other sites More sharing options...
LegosJedi Posted February 13, 2007 Author Share Posted February 13, 2007 Sorry for the double post, but there's no 'edit' button. Anyway, now, I'm trying to figure out how to check to see if a table exists. I was doing something like this: <?php $tables = $db->query("SHOW TABLES"); $mod1 = stristr($tables, 'mybb_modoptions'); $mod2 = stristr($tables, 'mybb_modsessions'); if($mod1) { $db->query("DROP TABLE ".TABLE_PREFIX."modoptions"); } if($mod2) { $db->query("DROP TABLE ".TABLE_PREFIX."modsessions"); } ?> But that doesn't seem to work. Quote Link to comment Share on other sites More sharing options...
wildteen88 Posted February 13, 2007 Share Posted February 13, 2007 You can just use MySQL to that for you in a query for that. Look into DROP TABLE IF EXISTS Quote Link to comment Share on other sites More sharing options...
LegosJedi Posted February 14, 2007 Author Share Posted February 14, 2007 Ah. Thanks alot! Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.