/**
  * Module Installer
  *
  * @access	public
  * @return	bool
  */
 function install()
 {
     $fields = array('list_id' => array('type' => 'int', 'constraint' => 7, 'unsigned' => TRUE, 'null' => FALSE, 'auto_increment' => TRUE), 'list_name' => array('type' => 'varchar', 'constraint' => '40', 'null' => FALSE), 'list_title' => array('type' => 'varchar', 'constraint' => '100', 'null' => FALSE), 'list_template' => array('type' => 'text', 'null' => FALSE));
     ee()->dbforge->add_field($fields);
     ee()->dbforge->add_key('list_id', TRUE);
     ee()->dbforge->add_key('list_name');
     ee()->dbforge->create_table('mailing_lists', TRUE);
     $fields = array('user_id' => array('type' => 'int', 'constraint' => 10, 'unsigned' => TRUE, 'null' => FALSE, 'auto_increment' => TRUE), 'list_id' => array('type' => 'int', 'constraint' => 7, 'unsigned' => TRUE, 'null' => FALSE), 'authcode' => array('type' => 'varchar', 'constraint' => '10', 'null' => FALSE), 'email' => array('type' => 'varchar', 'constraint' => '75', 'null' => FALSE), 'ip_address' => array('type' => 'varchar', 'constraint' => '45', 'null' => FALSE));
     ee()->dbforge->add_field($fields);
     ee()->dbforge->add_key('user_id', TRUE);
     ee()->dbforge->add_key('list_id');
     ee()->dbforge->create_table('mailing_list', TRUE);
     $fields = array('queue_id' => array('type' => 'int', 'constraint' => 10, 'unsigned' => TRUE, 'null' => FALSE, 'auto_increment' => TRUE), 'email' => array('type' => 'varchar', 'constraint' => '75', 'null' => FALSE), 'list_id' => array('type' => 'int', 'constraint' => 7, 'unsigned' => TRUE, 'null' => FALSE, 'default' => 0), 'authcode' => array('type' => 'varchar', 'constraint' => '10', 'null' => FALSE), 'date' => array('type' => 'int', 'constraint' => '10', 'null' => FALSE));
     ee()->dbforge->add_field($fields);
     ee()->dbforge->add_key('queue_id', TRUE);
     ee()->dbforge->create_table('mailing_list_queue', TRUE);
     if (!function_exists('mailinglist_template')) {
         if (!file_exists(APPPATH . 'language/' . ee()->config->item('deft_lang') . '/email_data.php')) {
             return FALSE;
         }
         require APPPATH . 'language/' . ee()->config->item('deft_lang') . '/email_data.php';
     }
     $data = array('list_name' => 'default', 'list_title' => 'Default Mailing List', 'list_template' => addslashes(mailinglist_template()));
     ee()->db->insert('mailing_lists', $data);
     $data = array('module_name' => 'Mailinglist', 'module_version' => $this->version, 'has_cp_backend' => 'y');
     ee()->db->insert('modules', $data);
     $data = array('class' => 'Mailinglist', 'method' => 'insert_new_email');
     ee()->db->insert('actions', $data);
     $data = array('class' => 'Mailinglist', 'method' => 'authorize_email');
     ee()->db->insert('actions', $data);
     $data = array('class' => 'Mailinglist', 'method' => 'unsubscribe');
     ee()->db->insert('actions', $data);
     return TRUE;
 }
示例#2
0
 function do_update()
 {
     global $DB, $UD, $conf;
     $Q[] = "CREATE TABLE exp_extensions (\n\t\t\textension_id int(10) unsigned NOT NULL auto_increment,\n\t\t\tclass varchar(50) NOT NULL default '',\n\t\t\tmethod varchar(50) NOT NULL default '',\n\t\t\thook varchar(50) NOT NULL default '',\n\t\t\tsettings text NOT NULL,\n\t\t\tpriority int(2) NOT NULL default '10',\n\t\t\tversion varchar(10) NOT NULL default '',\n\t\t\tenabled char(1) NOT NULL default 'y',\n\t\t\tPRIMARY KEY  (extension_id)\n\t\t)";
     $Q[] = "CREATE TABLE exp_search_log (\n\t\t\tid int(10) NOT NULL auto_increment,\n\t\t\tmember_id int(10) unsigned NOT NULL,\n\t\t\tscreen_name varchar(50) NOT NULL,\n\t\t\tip_address varchar(16) default '0' NOT NULL,\n\t\t\tsearch_date int(10) NOT NULL,\n\t\t\tsearch_type varchar(32) NOT NULL,\n\t\t\tsearch_terms varchar(200) NOT NULL,\n\t\t\tPRIMARY KEY  (id)\n\t\t)";
     $Q[] = "CREATE TABLE exp_entry_versioning (\n\t\t version_id int(10) unsigned NOT NULL auto_increment,  \n\t\t entry_id int(10) unsigned NOT NULL,\n\t\t weblog_id int(4) unsigned NOT NULL,\n\t\t author_id int(10) unsigned NOT NULL,\n\t\t version_date int(10) NOT NULL,\n\t\t version_data mediumtext NOT NULL,\n\t\t PRIMARY KEY (version_id),\n\t\t KEY (entry_id)\n\t\t)";
     $Q[] = "CREATE TABLE exp_relationships (\n\t\t rel_id int(6) unsigned NOT NULL auto_increment,\n\t\t rel_parent_id int(10) NOT NULL default '0',\n\t\t rel_child_id int(10) NOT NULL default '0',\n\t\t rel_type varchar(12) NOT NULL,\n\t\t rel_data mediumtext NOT NULL,\n\t\t PRIMARY KEY (rel_id),\n\t\t KEY (rel_parent_id),\n\t\t KEY (rel_child_id)\n\t\t)";
     /** -------------------------------
     		/**  Is the Forum module installed?
     		/** -------------------------------*/
     $query = $DB->query("SELECT COUNT(*) AS count FROM exp_modules WHERE module_name = 'Forum'");
     if ($query->row['count'] > 0) {
         $Q[] = "ALTER TABLE exp_forum_topics ADD INDEX(last_post_author_id);";
         $query = $DB->query("SELECT forum_permissions, forum_id FROM exp_forums");
         foreach ($query->result as $row) {
             $perms = unserialize(stripslashes($row['forum_permissions']));
             $perms['can_post_reply'] = $perms['can_post_topics'];
             $DB->query("UPDATE exp_forums SET forum_permissions = '" . addslashes(serialize($perms)) . "' \n\t\t\t\t\t\t\tWHERE forum_id = '" . $DB->escape_str($row['forum_id']) . "'");
         }
     }
     /** -------------------------------
     		/**  Is the Gallery module installed?
     		/** -------------------------------*/
     $query = $DB->query("SELECT COUNT(*) AS count FROM exp_modules WHERE module_name = 'Gallery'");
     if ($query->row['count'] > 0) {
         $Q[] = "ALTER TABLE exp_galleries ADD COLUMN gallery_cf_one char(1) NOT NULL default 'n'";
         $Q[] = "ALTER TABLE exp_galleries ADD COLUMN gallery_cf_one_label varchar(80) NOT NULL";
         $Q[] = "ALTER TABLE exp_galleries ADD COLUMN gallery_cf_one_type char(1) NOT NULL default 'i'";
         $Q[] = "ALTER TABLE exp_galleries ADD COLUMN gallery_cf_one_list text NOT NULL";
         $Q[] = "ALTER TABLE exp_galleries ADD COLUMN gallery_cf_one_rows tinyint(2) default '8'";
         $Q[] = "ALTER TABLE exp_galleries ADD COLUMN gallery_cf_one_formatting char(10) NOT NULL default 'xhtml'";
         $Q[] = "ALTER TABLE exp_galleries ADD COLUMN gallery_cf_one_auto_link char(1) NOT NULL default 'y'";
         $Q[] = "ALTER TABLE exp_galleries ADD COLUMN gallery_cf_two char(1) NOT NULL default 'n'";
         $Q[] = "ALTER TABLE exp_galleries ADD COLUMN gallery_cf_two_label varchar(80) NOT NULL";
         $Q[] = "ALTER TABLE exp_galleries ADD COLUMN gallery_cf_two_type char(1) NOT NULL default 'i'";
         $Q[] = "ALTER TABLE exp_galleries ADD COLUMN gallery_cf_two_list text NOT NULL";
         $Q[] = "ALTER TABLE exp_galleries ADD COLUMN gallery_cf_two_rows tinyint(2) default '8'";
         $Q[] = "ALTER TABLE exp_galleries ADD COLUMN gallery_cf_two_formatting char(10) NOT NULL default 'xhtml'";
         $Q[] = "ALTER TABLE exp_galleries ADD COLUMN gallery_cf_two_auto_link char(1) NOT NULL default 'y'";
         $Q[] = "ALTER TABLE exp_galleries ADD COLUMN gallery_cf_three char(1) NOT NULL default 'n'";
         $Q[] = "ALTER TABLE exp_galleries ADD COLUMN gallery_cf_three_label varchar(80) NOT NULL";
         $Q[] = "ALTER TABLE exp_galleries ADD COLUMN gallery_cf_three_type char(1) NOT NULL default 'i'";
         $Q[] = "ALTER TABLE exp_galleries ADD COLUMN gallery_cf_three_list text NOT NULL";
         $Q[] = "ALTER TABLE exp_galleries ADD COLUMN gallery_cf_three_rows tinyint(2) default '8'";
         $Q[] = "ALTER TABLE exp_galleries ADD COLUMN gallery_cf_three_formatting char(10) NOT NULL default 'xhtml'";
         $Q[] = "ALTER TABLE exp_galleries ADD COLUMN gallery_cf_three_auto_link char(1) NOT NULL default 'y'";
         $Q[] = "ALTER TABLE exp_galleries ADD COLUMN gallery_cf_four char(1) NOT NULL default 'n'";
         $Q[] = "ALTER TABLE exp_galleries ADD COLUMN gallery_cf_four_label varchar(80) NOT NULL";
         $Q[] = "ALTER TABLE exp_galleries ADD COLUMN gallery_cf_four_type char(1) NOT NULL default 'i'";
         $Q[] = "ALTER TABLE exp_galleries ADD COLUMN gallery_cf_four_list text NOT NULL";
         $Q[] = "ALTER TABLE exp_galleries ADD COLUMN gallery_cf_four_rows tinyint(2) default '8'";
         $Q[] = "ALTER TABLE exp_galleries ADD COLUMN gallery_cf_four_formatting char(10) NOT NULL default 'xhtml'";
         $Q[] = "ALTER TABLE exp_galleries ADD COLUMN gallery_cf_four_auto_link char(1) NOT NULL default 'y'";
         $Q[] = "ALTER TABLE exp_galleries ADD COLUMN gallery_cf_five char(1) NOT NULL default 'n'";
         $Q[] = "ALTER TABLE exp_galleries ADD COLUMN gallery_cf_five_label varchar(80) NOT NULL";
         $Q[] = "ALTER TABLE exp_galleries ADD COLUMN gallery_cf_five_type char(1) NOT NULL default 'i'";
         $Q[] = "ALTER TABLE exp_galleries ADD COLUMN gallery_cf_five_list text NOT NULL";
         $Q[] = "ALTER TABLE exp_galleries ADD COLUMN gallery_cf_five_rows tinyint(2) default '8'";
         $Q[] = "ALTER TABLE exp_galleries ADD COLUMN gallery_cf_five_formatting char(10) NOT NULL default 'xhtml'";
         $Q[] = "ALTER TABLE exp_galleries ADD COLUMN gallery_cf_five_auto_link char(1) NOT NULL default 'y'";
         $Q[] = "ALTER TABLE exp_galleries ADD COLUMN gallery_cf_six char(1) NOT NULL default 'n'";
         $Q[] = "ALTER TABLE exp_galleries ADD COLUMN gallery_cf_six_label varchar(80) NOT NULL";
         $Q[] = "ALTER TABLE exp_galleries ADD COLUMN gallery_cf_six_type char(1) NOT NULL default 'i'";
         $Q[] = "ALTER TABLE exp_galleries ADD COLUMN gallery_cf_six_list text NOT NULL";
         $Q[] = "ALTER TABLE exp_galleries ADD COLUMN gallery_cf_six_rows tinyint(2) default '8'";
         $Q[] = "ALTER TABLE exp_galleries ADD COLUMN gallery_cf_six_formatting char(10) NOT NULL default 'xhtml'";
         $Q[] = "ALTER TABLE exp_galleries ADD COLUMN gallery_cf_six_auto_link char(1) NOT NULL default 'y'";
         $Q[] = "ALTER TABLE exp_gallery_entries ADD COLUMN custom_field_one text NOT NULL";
         $Q[] = "ALTER TABLE exp_gallery_entries ADD COLUMN custom_field_two text NOT NULL";
         $Q[] = "ALTER TABLE exp_gallery_entries ADD COLUMN custom_field_three text NOT NULL";
         $Q[] = "ALTER TABLE exp_gallery_entries ADD COLUMN custom_field_four text NOT NULL";
         $Q[] = "ALTER TABLE exp_gallery_entries ADD COLUMN custom_field_five text NOT NULL";
         $Q[] = "ALTER TABLE exp_gallery_entries ADD COLUMN custom_field_six text NOT NULL";
     }
     $Q[] = "ALTER TABLE exp_weblog_titles CHANGE COLUMN edit_date edit_date varchar(19) NOT NULL";
     $Q[] = "ALTER TABLE exp_weblog_titles ADD COLUMN view_count_one int(10) unsigned NOT NULL default '0'";
     $Q[] = "ALTER TABLE exp_weblog_titles ADD COLUMN view_count_two int(10) unsigned NOT NULL default '0'";
     $Q[] = "ALTER TABLE exp_weblog_titles ADD COLUMN view_count_three int(10) unsigned NOT NULL default '0'";
     $Q[] = "ALTER TABLE exp_weblog_titles ADD COLUMN view_count_four int(10) unsigned NOT NULL default '0'";
     $Q[] = "ALTER TABLE exp_weblog_titles ADD COLUMN versioning_enabled char(1) NOT NULL default 'n'";
     $Q[] = "ALTER TABLE exp_weblog_titles ADD COLUMN dst_enabled varchar(1) NOT NULL default 'n'";
     $Q[] = "ALTER TABLE exp_search ADD COLUMN `custom_fields` TEXT NOT NULL AFTER `query`";
     $Q[] = "ALTER TABLE exp_weblog_fields ADD COLUMN field_pre_populate char(1) NOT NULL default 'n'";
     $Q[] = "ALTER TABLE exp_weblog_fields ADD COLUMN field_pre_blog_id int(6) unsigned NOT NULL";
     $Q[] = "ALTER TABLE exp_weblog_fields ADD COLUMN field_pre_field_id int(6) unsigned NOT NULL";
     $Q[] = "ALTER TABLE exp_throttle ADD COLUMN locked_out char(1) NOT NULL default 'n'";
     $Q[] = "ALTER TABLE exp_weblogs ADD COLUMN enable_versioning char(1) NOT NULL default 'n'";
     $Q[] = "ALTER TABLE exp_weblogs ADD COLUMN enable_qucksave_versioning char(1) NOT NULL default 'n'";
     $Q[] = "ALTER TABLE exp_weblogs ADD COLUMN max_revisions smallint(4) unsigned NOT NULL default 10";
     $Q[] = "ALTER TABLE exp_member_fields ADD COLUMN m_field_description text NOT NULL";
     $Q[] = "ALTER TABLE exp_member_groups ADD COLUMN can_edit_categories char(1) NOT NULL default 'n'";
     $Q[] = "ALTER TABLE exp_member_groups ADD COLUMN can_delete_categories char(1) NOT NULL default 'n'";
     $Q[] = "ALTER TABLE exp_member_groups ADD COLUMN include_in_memberlist char(1) NOT NULL default 'y'";
     $Q[] = "ALTER TABLE exp_weblog_fields ADD COLUMN field_related_to varchar(12) NOT NULL default 'blog'";
     $Q[] = "ALTER TABLE exp_weblog_fields ADD COLUMN field_related_id int(6) unsigned NOT NULL";
     $Q[] = "ALTER TABLE exp_weblog_fields ADD COLUMN field_related_orderby varchar(12) NOT NULL default 'date'";
     $Q[] = "ALTER TABLE exp_weblog_fields ADD COLUMN field_related_sort varchar(4) NOT NULL default 'desc'";
     $Q[] = "ALTER TABLE exp_weblog_fields ADD COLUMN field_related_max smallint(4) NOT NULL";
     $Q[] = "INSERT INTO exp_specialty_templates(template_id, template_name, data_title, template_data) VALUES ('', 'admin_notify_mailinglist', '" . addslashes(trim(admin_notify_mailinglist_title())) . "', '" . addslashes(admin_notify_mailinglist()) . "')";
     $Q[] = "ALTER TABLE exp_comments ADD INDEX (`weblog_id`)";
     $Q[] = "DELETE FROM exp_throttle";
     $Q[] = "DELETE FROM exp_search";
     // Run the queries
     foreach ($Q as $sql) {
         $DB->query($sql);
     }
     // Update mailing list templates
     $query = $DB->query("SELECT COUNT(*) AS count FROM exp_modules WHERE module_name = 'Mailinglist'");
     if ($query->row['count'] > 0) {
         $DB->query("ALTER TABLE exp_mailing_lists ADD COLUMN list_template text NOT NULL");
         $query = $DB->query("SELECT list_id FROM exp_mailing_lists");
         if ($query->num_rows > 0) {
             foreach ($query->result as $row) {
                 $DB->query("UPDATE exp_mailing_lists SET list_template ='" . addslashes(mailinglist_template()) . "' WHERE list_id = '" . $row['list_id'] . "'");
             }
         }
     }
     // Fetch email character set so we can add it to config file
     $charset = 'utf-8';
     if (!class_exists('EEmail')) {
         if (include './core/core.email.php') {
             $EMAIL = new EEmail(FALSE);
             $charset = $EMAIL->charset;
         }
     }
     // Update config data
     $data['allow_extensions'] = 'n';
     $data['email_charset'] = $charset;
     $data['honor_entry_dst'] = "y";
     $data['allow_member_localization'] = "y";
     $data['banish_masked_ips'] = 'y';
     $data['max_page_loads'] = "10";
     $data['time_interval'] = "8";
     $data['lockout_time'] = '30';
     $data['banishment_type'] = "message";
     $data['banishment_url'] = "";
     $data['banishment_message'] = "You have exceeded the allowed page load frequency.";
     $data['enable_search_log'] = "y";
     $data['max_logged_searches'] = "500";
     $data['webmaster_name'] = '';
     $data['censor_replacement'] = '';
     $data['mailinglist_enabled'] = 'y';
     $data['mailinglist_notify'] = 'n';
     $data['mailinglist_notify_emails'] = '';
     $data['memberlist_order_by'] = "total_posts";
     $data['memberlist_sort_order'] = "desc";
     $data['memberlist_row_limit'] = "20";
     $UD->append_config_file($data);
     unset($conf);
     include 'config' . EXT;
     // This config item is no longer needed
     unset($conf['tmpl_display_mode']);
     $UD->update_config_file(array(), $conf);
     return TRUE;
 }