public function __construct()
 {
     parent::__construct();
     if (!AT_Common::is_user_logged()) {
         AT_Common::redirect('/');
     }
 }
 public static function at_calltoaction($atts = null, $content = null)
 {
     if ($atts == 'generator') {
         return array("name" => __("Call to action", AT_ADMIN_TEXTDOMAIN), "base" => "at_calltoaction", 'icon' => "im-icon-spinner-4", "class" => "at-calltoaction-class", 'category' => __("Theme Short-Codes", AT_ADMIN_TEXTDOMAIN), "params" => array(array("type" => "dropdown", "heading" => __("Action", AT_ADMIN_TEXTDOMAIN), "param_name" => "action", "width" => 200, "value" => array("Search" => "banner_1", "Join" => "banner_2"), "description" => ''), array("type" => "dropdown", "heading" => __("Visibility", AT_ADMIN_TEXTDOMAIN), "param_name" => "visible", "width" => 200, "value" => array("Always visible" => "always", "Visible only for unauthorised visitors" => "guest", "Visible only for members" => "members"), "description" => ''), array("type" => "textfield", "heading" => __("Title", AT_ADMIN_TEXTDOMAIN), "param_name" => "title", "value" => "", "description" => __("Enter block caption.", AT_ADMIN_TEXTDOMAIN)), array("type" => "textfield", "heading" => __("Link", AT_ADMIN_TEXTDOMAIN), "param_name" => "url", "value" => "", "description" => __("Internal or external URI.", AT_ADMIN_TEXTDOMAIN)), array("type" => "textfield", "heading" => __("Button", AT_ADMIN_TEXTDOMAIN), "param_name" => "button", "value" => "", "description" => __("Button caption.", AT_ADMIN_TEXTDOMAIN)), array("type" => "textarea", "heading" => __("Description", AT_ADMIN_TEXTDOMAIN), "param_name" => "description", "value" => "", "description" => __("Please enter few words about action.", AT_ADMIN_TEXTDOMAIN)), array("type" => "textfield", "heading" => __("Extra class name", AT_ADMIN_TEXTDOMAIN), "param_name" => "el_class", "value" => "", "description" => __("If you wish to style particular content element differently, then use this field to add a class name and then refer to it in Custom CSS Shortcode or Masterkey Custom CSS option.", AT_ADMIN_TEXTDOMAIN))));
     }
     $shortcode_id = self::_shortcode_id();
     extract(shortcode_atts(array('title' => '', 'url' => '', 'visible' => 'guest', 'description' => '', 'button' => '', 'action' => '', 'el_class' => '', 'width' => '1/1'), $atts));
     $width = wpb_translateColumnWidthToSpan($width);
     $output = '<div class="main_banner ' . $action . ' ' . $el_class . '">';
     $output .= '<div class="text_wrapper">';
     if (!empty($title)) {
         $output .= '<p class="title">' . $title . '</p>';
     }
     if (!empty($description)) {
         $output .= '<p class="desc">' . $description . '</p>';
     }
     $output .= '</div>';
     if (!empty($url)) {
         $output .= '<a href="' . $url . '" class="btn4">' . $button . '</a>';
     }
     $output .= '</div>';
     // OUTPUT
     if (AT_Common::is_user_logged() == false && $visible == 'guest' || $visible == 'always' || $visible == 'member' && AT_Common::is_user_logged()) {
         return $output;
     }
 }
 public function __construct()
 {
     $this->core = AT_Core::get_instance();
     // if ( !$this->core->get_option( 'theme_is_activated', false ) && is_user_logged_in() ) {
     // 	AT_Notices::set_frontend_notice(
     // 		'<h3>'.__( 'New to AutoDealer?' , AT_TEXTDOMAIN ) . '</h3>' .
     // 		__( 'You almost ready to use full theme features. Please complete two last steps before move your website to production mode.' , AT_TEXTDOMAIN ) .
     // 		'<br />' .
     // 		sprintf(__( '<a href="%1$s">Click here to continue &rarr;</a>' , AT_TEXTDOMAIN ), get_admin_url() . 'admin.php?page=at_site_options_general'),
     // 		$class = 'notice'
     // 	);
     // 	Header('Location: ' . get_admin_url() . 'admin.php?page=at_site_options_general');
     // 	die();
     // 	// exit( __( 'Theme is not activated' , AT_TEXTDOMAIN ) );
     // }
     // SSL and ajax tricks
     // if ( ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] != rtrim( home_url(), '/' ) ) {
     // 	AT_Common::redirect( AT_Router::get_instance()->server('REQUEST_URI'), '301' );
     // }
     $this->uri = AT_Router::get_instance();
     if ($this->uri->get_method() != 'show_underconstruction' && $this->core->get_option('status_site', 'production') == 'underconstruction') {
         AT_Core::show_underconstruction();
     }
     $this->view = $this->core->view;
     $this->load = AT_Loader::get_instance();
     $this->session = AT_Session::get_instance();
     $this->registry = AT_Registry::get_instance();
     $this->load->library('breadcrumbs');
     $this->breadcrumbs = AT_Breadcrumbs::get_instance();
     $validation_rules = $this->load->helper('validation_rules', true);
     $this->validation = $this->load->library('form_validation', true, $validation_rules->rules);
     //$this->validation->set_rules();
     if (AT_Common::is_user_logged() && $this->core->get_option('theme_is_activated', false)) {
         $user_model = $this->load->model('user_model');
         $user_info = $user_model->get_user_by_id(AT_Common::get_logged_user_id());
         $this->registry->set('user_info', $user_info);
         if ($this->core->get_option('confirm_email_enable', true) && !in_array($this->uri->segments(1), array('confirm_email', 'unlogged')) && (is_null($user_info['date_active']) || empty($user_info['date_active']))) {
             AT_Common::redirect('auth/confirm_email');
         }
     }
 }
						            map: map, 
						            title: dealer_address
						        }); 
						      }
						    }
						  });
						}

					}
					google.maps.event.addDomListener(window, 'load', dealer_map_init);
			</script>
			<?php 
    }
    ?>
			<?php 
    if (AT_Common::is_user_logged() && AT_Common::get_logged_user_id() == $car_info['options']['_owner_id']) {
        ?>
			<a href="<?php 
        echo AT_Common::site_url('profile/vehicles/edit/' . $car_info['ID'] . '/');
        ?>
" class="btn2"><?php 
        echo __('Edit vehicle', AT_TEXTDOMAIN);
        ?>
</a>
			<?php 
    }
    ?>
			<div class="clear"></div>
		</div>
		<?php 
}
	<?php 
if (!empty($items)) {
    ?>
	<ul>
	<?php 
    foreach ($items as $key => $value) {
        echo '<li class="' . ($active == $key ? 'active' : '') . ' ' . $key . '"><a href="' . $value['url'] . '">' . $value['name'] . '</a></li>';
    }
    ?>
	</ul>
<?php 
}
?>
</div>
<?php 
if (AT_Common::is_user_logged() && $this->get_option('want_be_dealer_enable', true)) {
    ?>
	<?php 
    $user_info = $this->registry->get('user_info');
    ?>
	<?php 
    if (!$user_info['is_dealer']) {
        ?>
		<?php 
        $this->add_script('jquery-ui-core');
        ?>
		<?php 
        $this->add_script('jquery-ui-dialog');
        ?>
		<?php 
        $this->add_script('request_dealer', 'assets/js/request_dealer.js', array('jquery', 'jquery-ui-core', 'jquery-ui-dialog'));
 public function confirm_email($confirm_code = '')
 {
     if (AT_Common::is_user_logged() && $this->core->get_option('confirm_email_enable', true)) {
         $user_info = $this->registry->get('user_info');
         if (!empty($user_info['date_active'])) {
             AT_Common::redirect('/profile');
         }
         if ($this->uri->is_ajax_request() && !empty($_POST)) {
             try {
                 $user_model = $this->load->model('user_model');
                 $user_info = $this->registry->get('user_info');
                 if (isset($_POST['action']) && $_POST['action'] == 'send_again') {
                     $mail_model = $this->load->model('mail_model');
                     $code = $user_model->get_confirm_email_code($user_info['id'], $user_info['email']);
                     $data = array('username' => $user_info['name'], 'confirm_url' => AT_Common::site_url('auth/confirm_email/' . $code . '/'), 'confirm_code' => $code);
                     if (!$mail_model->send('template_mail_confirm_email', $user_info['email'], $data)) {
                         throw new Exception(serialize(array('code' => __('Error send email! Try later.', AT_TEXTDOMAIN))));
                     }
                     $response = array('status' => 'OK', 'message' => __('Message was sent!', AT_TEXTDOMAIN));
                 } else {
                     if (!$this->validation->run('confirm_email')) {
                         throw new Exception(serialize($this->validation->get_errors()));
                     }
                     $code = $user_model->get_confirm_email_code($user_info['id'], $user_info['email']);
                     if ($_POST['code'] != $code) {
                         throw new Exception(serialize(array('code' => __('Сode is not valid.', AT_TEXTDOMAIN))));
                     }
                     $user_model->update($user_info['id'], array('date_active' => current_time('mysql')));
                     $response = array('status' => 'OK', 'message' => __('Сode is valid!', AT_TEXTDOMAIN), 'redirect_url' => AT_Common::site_url('profile/'));
                 }
             } catch (Exception $e) {
                 $response = array('status' => 'ERROR', 'message' => unserialize($e->getMessage()));
             }
             $this->view->add_json($response)->display();
             exit;
         }
         if (!empty($confirm_code)) {
             $user_model = $this->load->model('user_model');
             $user_info = $this->registry->get('user_info');
             $code = $user_model->get_confirm_email_code($user_info['id'], $user_info['email']);
             if ($confirm_code == $code) {
                 $user_model->update($user_info['id'], array('date_active' => current_time('mysql')));
                 AT_Common::redirect('profile/');
             }
         }
         $this->view->use_layout('header_content2_footer');
         $this->view->add_block('content', 'auth/confirm_email', array('background' => $this->_get_rand_bg()));
     } else {
         AT_Common::redirect('/');
     }
 }
        ?>
</span></a>
					<?php 
    }
    ?>
				</div>
			<?php 
}
?>
			</div>
			<?php 
if ($add_car_button) {
    ?>
			<div class="add_car">
				<?php 
    if (AT_Common::is_user_logged()) {
        ?>
				<a href="<?php 
        echo AT_Common::site_url('/profile/vehicles/add/');
        ?>
" class="btn2"><?php 
        echo __('+ Add auto', AT_TEXTDOMAIN);
        ?>
</a>
				<?php 
    }
    ?>
			</div>
			<?php 
}
?>
 public function add()
 {
     wp_enqueue_script('jquery-ui-core');
     wp_enqueue_script('jquery-ui-sortable');
     if ($this->uri->is_ajax_request() && !empty($_POST)) {
         try {
             // Dinamic Validator
             // if ( empty( $_POST['post_title'] ) || empty( $_POST['post_content'] ) ) {
             // 	throw new Exception( 'Enter Title && Content!' );
             // }
             if (!AT_Common::get_logged_user_id()) {
                 throw new Exception('You dont\'t autorized!');
             }
             $car_model = $this->load->model('car_model');
             $reference_model = $this->load->model('reference_model');
             $manufacturer = $reference_model->get_manufacturer_by_id($_POST['_manufacturer_id']);
             $model = $reference_model->get_model_by_id($_POST['_model_id']);
             $version = isset($_POST['_version']) ? $_POST['_version'] : '';
             $_POST['post_title'] = trim($manufacturer['name'] . ' ' . $model['name'] . ' ' . $version);
             //throw new Exception( $_POST['post_title'] );
             if (isset($_POST['_price'])) {
                 $_POST['_price'] = str_replace(array(',', ' '), array('', ''), strip_tags($_POST['_price']));
             }
             if ($this->_get_limit_publish()) {
                 $_POST['post_status'] = 'publish';
             } else {
                 $_POST['post_status'] = 'archive';
             }
             $car_id = $car_model->add_car_info(array_merge($_POST, array('_owner_id' => AT_Common::get_logged_user_id())));
             if (isset($_POST['photos'])) {
                 $photo_model = $this->load->model('photo_model');
                 $sort = 0;
                 foreach ($_POST['photos'] as $key => $photo) {
                     $sort++;
                     $key = explode('/', $key);
                     if (count($key) > 1) {
                         continue;
                     }
                     if (($photo_id = $photo_model->resize_uploaded_image(AT_DIR_THEME . '/uploads/' . $key[0], $car_id, 'car', $photo_model->car_sizes)) && $photo) {
                         $photo_model->set_photo_main_by_id($car_id, 'car', $photo_id);
                         $photo_model->set_photo_sort($key, $sort);
                     } else {
                         $photo_model->set_photo_sort($key, $sort);
                     }
                 }
             }
             if ($this->_get_limit_publish()) {
                 $redirect_url = AT_Common::site_url('profile/vehicles');
             } else {
                 $redirect_url = AT_Common::site_url('profile/vehicles/archive');
             }
             $response = array('status' => 'OK', 'redirect_url' => $redirect_url);
         } catch (Exception $e) {
             $response = array('status' => 'ERROR', 'message' => $e->getMessage());
         }
         $this->view->add_json($response)->display();
         exit;
     }
     $this->view->use_layout('header_content_footer');
     if (AT_Common::is_user_logged()) {
         $this->breadcrumbs->add_item(__('My Vehicles', AT_TEXTDOMAIN), 'profile/vehicles/');
     }
     $this->breadcrumbs->add_item(__('Add Car', AT_TEXTDOMAIN), '');
     $reference_model = $this->load->model('reference_model');
     $user_model = $this->load->model('user_model');
     $owner_info = $user_model->get_user_by_id(AT_Common::get_logged_user_id());
     $this->view->add_block('content', 'vehicles/add', array('manufacturers' => $reference_model->get_manufacturers(), 'equipments' => $reference_model->get_equipments(), 'body_types' => $reference_model->get_body_types(), 'fuels' => $reference_model->get_fuels(), 'transmissions' => $reference_model->get_transmissions(), 'doors' => $reference_model->get_doors(), 'technical_conditions' => $reference_model->get_technical_conditions(), 'currencies' => $reference_model->get_currencies(), 'transport_types' => $reference_model->get_transport_types(), 'regions' => $reference_model->get_regions(), 'drive' => $reference_model->get_drive(), 'colors' => $reference_model->get_colors(), 'affiliates' => $owner_info['is_dealer'] ? $user_model->get_dealer_affiliates(AT_Common::get_logged_user_id()) : array(), 'owner_info' => $owner_info));
     $menu_model = $this->load->model('menu_model');
     $this->view->add_block('right_side', 'general/navigation', $menu_model->get_menu('main', 'vehicles'));
 }