コード例 #1
0
 /**
  * Constructor
  *
  * @access public
  */
 function Zoo_visitor_cp()
 {
     // Creat EE Instance
     $this->EE =& get_instance();
     $this->EE->load->helper('zoo_visitor');
     $this->zoo_settings = get_zoo_settings($this->EE);
 }
コード例 #2
0
 /**
  * Extension Constructor
  */
 function Zoo_visitor_ext()
 {
     $this->EE =& get_instance();
     //$this->EE->load->add_package_path(PATH_THIRD . 'zoo_visitor/');
     $this->EE->load->library('zoo_visitor_lib');
     $this->EE->load->library('zoo_visitor_cp');
     $this->EE->load->helper('zoo_visitor');
     $this->zoo_settings = get_zoo_settings($this->EE);
 }
コード例 #3
0
 /**
  * Constructor
  *
  * @access    public
  */
 function Zoo_visitor_ft()
 {
     if (version_compare(APP_VER, '2.6.0', '<')) {
         parent::EE_Fieldtype();
     } else {
         EE_Fieldtype::__construct();
     }
     $this->EE->load->add_package_path(PATH_THIRD . 'zoo_visitor/');
     $this->EE->load->library('zoo_visitor_lib');
     $this->EE->load->helper('zoo_visitor');
     $this->EE->lang->loadfile('zoo_visitor');
     $this->zoo_settings = get_zoo_settings($this->EE);
     if (REQ == 'CP') {
         $this->EE->cp->add_to_head('<link rel="stylesheet" href="' . _theme_url($this->EE) . 'css/zoo_visitor.css" type="text/css" media="screen" /> ');
     }
 }
コード例 #4
0
 /**
  * Module Constructor
  */
 function Zoo_visitor()
 {
     // Make a local reference to the ExpressionEngine super object
     $this->EE =& get_instance();
     //$this->EE->load->add_package_path(PATH_THIRD . 'zoo_visitor/');
     $this->EE->load->library('zoo_visitor_lib');
     $this->EE->load->helper('zoo_visitor');
     $this->settings = get_zoo_settings($this->EE);
     $this->parse_variables = array();
     $this->parse_variables['error:username'] = '';
     $this->parse_variables['error:screen_name'] = '';
     $this->parse_variables['error:email'] = '';
     $this->parse_variables['error:email_confirm'] = '';
     $this->parse_variables['error:password'] = '';
     $this->parse_variables['error:current_password'] = '';
     $this->parse_variables['error:captcha'] = '';
     $this->parse_variables['error:accept_terms'] = '';
 }
コード例 #5
0
 /**
  * Save Invoice Module Settings
  */
 function settings_save()
 {
     $settings = array();
     unset($_POST["submit"]);
     $errors = "";
     foreach ($_POST as $key => $val) {
         if ($key == "screen_name_override") {
             $pattern = "/{(.*?)}/";
             preg_match_all($pattern, $val, $matches);
             $override_fields = isset($matches[1]) ? $matches[1] : array();
             $screen_name_override = '';
             $field_errors = '';
             if (count($override_fields) > 0 && $val != '') {
                 foreach ($override_fields as $field) {
                     $this->EE->db->where('field_name', $field);
                     //$this->EE->db->where('site_id',$this->EE->config->item('site_id'));
                     $query = $this->EE->db->get('channel_fields');
                     if ($query->num_rows() == 0) {
                         $field_errors .= "Field " . $field . " does not exist.<br/>";
                     } else {
                         $val = str_replace('{' . $field . '}', 'field_id_' . $query->row()->field_id, $val);
                     }
                 }
             }
             if ($field_errors != '') {
                 $this->EE->session->set_flashdata('settings_screen_name_field_errors', 'Notice: ' . $field_errors);
             }
             $this->EE->db->update(strtolower($this->class_name) . '_settings', array("var_value" => $val), "var = '" . $key . "' AND site_id = '" . $this->EE->config->item('site_id') . "'");
         } elseif ($key == "title_override") {
             $pattern = "/{(.*?)}/";
             preg_match_all($pattern, $val, $matches);
             $title_override_fields = isset($matches[1]) ? $matches[1] : array();
             $title_override = $val;
             $title_field_errors = '';
             if (count($title_override_fields) > 0 && $title_override != '') {
                 foreach ($title_override_fields as $field) {
                     $this->EE->db->where('field_name', $field);
                     //$this->EE->db->where('site_id',$this->EE->config->item('site_id'));
                     $query = $this->EE->db->get('channel_fields');
                     if ($query->num_rows() == 0) {
                         $title_field_errors .= "Field " . $field . " does not exist.<br/>";
                     } else {
                         $title_override = str_replace('{' . $field . '}', 'field_id_' . $query->row()->field_id, $title_override);
                     }
                 }
             }
             // if($title_field_errors != ''){
             //
             // 					$this->EE->session->set_flashdata('settings_title_field_errors', 'Notice: '.$title_field_errors);
             //
             // 				}
             $this->EE->db->update(strtolower($this->class_name) . '_settings', array("var_value" => $title_override), "var = '" . $key . "' AND site_id = '" . $this->EE->config->item('site_id') . "'");
             //check if it is not empty or hasn't changed
             if ($title_override != '' && $this->settings['title_override'] != $title_override) {
                 $this->settings = get_zoo_settings($this->EE, TRUE);
                 $this->EE->db->select('entry_id');
                 $this->EE->db->where('site_id', $this->EE->config->item('site_id'));
                 $this->EE->db->where('channel_id', $this->settings['member_channel_id']);
                 $this->EE->db->order_by('entry_id', 'asc');
                 $query = $this->EE->db->get('channel_titles');
                 if ($query->num_rows()) {
                     foreach ($query->result() as $row) {
                         $this->EE->zoo_visitor_lib->update_entry_title($row->entry_id);
                     }
                 }
             }
         } else {
             $this->EE->db->update(strtolower($this->class_name) . '_settings', array("var_value" => $val), "var = '" . $key . "' AND site_id = '" . $this->EE->config->item('site_id') . "'");
         }
     }
     $this->EE->session->set_flashdata('settings_message', 'success');
     $this->EE->functions->redirect(BASE . AMP . 'C=addons_modules' . AMP . 'M=show_module_cp' . AMP . 'module=' . $this->class_name . AMP . 'method=settings_form');
 }
コード例 #6
0
 function create_member_entry($mem_row)
 {
     $sql = 'SELECT ct.entry_id FROM exp_channel_titles ct WHERE ct.channel_id = "' . $this->zoo_settings['member_channel_id'] . '" AND ct.author_id = "' . $mem_row->member_id . '"';
     $query = $this->EE->db->query($sql);
     if ($query->num_rows() == 0) {
         $data = array();
         $data['site_id'] = $this->EE->config->item('site_id');
         $data['channel_id'] = $this->zoo_settings['member_channel_id'];
         $data['author_id'] = $mem_row->member_id;
         // @todo double check if this is validated
         $data['entry_date'] = $mem_row->join_date;
         $data['title'] = "temp-sync";
         $data['url_title'] = "temp-sync";
         $this->EE->db->insert('exp_channel_titles', $data);
         $insert_id = $this->EE->db->insert_id();
         $data = array();
         $data['site_id'] = $this->EE->config->item('site_id');
         $data['entry_id'] = $insert_id;
         $data['channel_id'] = $this->zoo_settings['member_channel_id'];
         // ==================
         // = GET FIELD DATA =
         // ==================
         $this->zoo_settings = get_zoo_settings($this->EE, TRUE);
         // =======================================
         // = loop through standard member fields =
         // =======================================
         if ($this->zoo_settings['sync_standard_member_fields'] != '') {
             $standard_member_fields = explode('|', $this->zoo_settings['sync_standard_member_fields']);
             $standard_member_fields_filter = array();
             foreach ($standard_member_fields as $standard_field) {
                 $parts = explode(':', $standard_field);
                 $channel_field_id = $parts[1];
                 if ($this->EE->db->field_exists('field_id_' . $channel_field_id, 'exp_channel_data')) {
                     $standard_member_fields_filter[] = $standard_field;
                 }
             }
             $standard_member_fields = $standard_member_fields_filter;
             $sql_standard = 'SELECT * FROM exp_members WHERE member_id = "' . $mem_row->member_id . '"';
             $query_standard = $this->EE->db->query($sql_standard);
             if ($query_standard->num_rows() > 0) {
                 $row_standard = $query_standard->row_array();
                 foreach ($standard_member_fields as $standard_field) {
                     $parts = explode(':', $standard_field);
                     $member_field_name = $parts[0];
                     $channel_field_id = $parts[1];
                     if (isset($row_standard[$member_field_name])) {
                         if ($member_field_name == 'avatar_filename') {
                             $data['field_id_' . $channel_field_id] = $row_standard[$member_field_name];
                         } else {
                             $data['field_id_' . $channel_field_id] = $row_standard[$member_field_name];
                         }
                     }
                 }
             }
         }
         // =====================================
         // = loop through custom member fields =
         // =====================================
         if ($this->zoo_settings['sync_custom_member_fields'] != '') {
             $custom_member_fields = explode('|', $this->zoo_settings['sync_custom_member_fields']);
             $custom_member_fields_filter = array();
             foreach ($custom_member_fields as $custom_field) {
                 $parts = explode(':', $custom_field);
                 $channel_field_id = $parts[1];
                 if ($this->EE->db->field_exists('field_id_' . $channel_field_id, 'exp_channel_data')) {
                     $custom_member_fields_filter[] = $custom_field;
                 }
             }
             $custom_member_fields = $custom_member_fields_filter;
             $sql_custom = 'SELECT * FROM exp_member_data WHERE member_id = "' . $mem_row->member_id . '"';
             $query_custom = $this->EE->db->query($sql_custom);
             if ($query_custom->num_rows() > 0) {
                 $row_custom = $query_custom->row_array();
                 foreach ($custom_member_fields as $custom_field) {
                     $parts = explode(':', $custom_field);
                     $member_field_id = $parts[0];
                     $channel_field_id = $parts[1];
                     if (isset($row_custom['m_field_id_' . $member_field_id])) {
                         $data['field_id_' . $channel_field_id] = $row_custom['m_field_id_' . $member_field_id];
                     }
                 }
             }
         }
         $this->EE->db->insert('exp_channel_data', $data);
         return $insert_id;
     } else {
         return FALSE;
     }
 }