name = 'dashavailability'; $this->tab = 'dashboard'; $this->version = '1.0.0'; $this->ps_versions_compliancy = array('min' => '1.6', 'max' => '1.6'); $this->author = 'Webkul'; $this->bootstrap = true; parent::__construct(); $this->displayName = $this->l('Dashboard Availability'); $this->description = $this->l('Adds a block with a graphical representation of availability of your hotel`s room.'); $this->confirmUnsinstall = $this->l('Are you sure you want to uninstall?'); $this->allow_push = true; } public function install() { return (parent::install() && $this->registerHook('dashboardZoneTwo') && $this->registerHook('dashboardData') && $this->registerHook('actionAdminControllerSetMedia') ); } public function hookActionAdminControllerSetMedia() { if (get_class($this->context->controller) == 'AdminDashboardController') { $this->context->controller->addJs($this->_path.'views/js/'.$this->name.'.js'); } $this->context->controller->addCSS($this->_path.'views/css/'.$this->name.'.css'); } public function hookDashboardZoneTwo($params) { Media::addJsDef(array( 'dashAvailAajaxUrl' => $this->context->link->getModuleLink($this->name, 'chartdata'), )); $this->context->smarty->assign(array( 'dateFromBar' => date('Y-m-d', strtotime('now')), )); return $this->display(__FILE__, 'dashboard_zone_two.tpl'); } public function hookDashboardData($params) { $days = $params["dashboard_use_push"]; if (!$days) { $days = 5; } $dateFrom = $params["extra"]; if (!$dateFrom || $dateFrom == 'undefined') { $dateFrom = $params["date_from"]; } if (Configuration::get("PS_DASHBOARD_SIMULATION")) { $from = strtotime($dateFrom." 00:00:00"); $to = strtotime($dateFrom."+".$days." days 23:59:59"); $data = array(); for ($date = $from; $date <= $to; $date = strtotime("+1 days", $date)) { $availability_data["values"][] = array($date, round(rand(0, 20))); } $availability_data = array_merge( $availability_data, array( "id" => "availabilities", "key" => $this->l("Availabilities"), "border_color" => "#11f0fc", "color" => "#72C3F0", ) ); $data[] = $availability_data; } else { $availability_data = AdminStatsController::getAvailBarChartData( $days, $dateFrom ); $availability_data = array_merge( $availability_data, array( "id" => "availabilities", "key" => $this->l("Availabilities"), "border_color" => "#11f0fc", "color" => "#72C3F0", ) ); $data[] = $availability_data; } $data = array( 'chart_type' => 'line_chart_availability', 'date_format' => $this->context->language->date_format_lite, 'data' => $data ); return array( 'data_chart' => array('availableBarChart' => $data), ); } }