Здравствуйте! у меня такая ошибка именно в этих строках: права 755, менял на 777. не помогло.
Warning: fopen(/var/www/druzi-13977/data/www/druzi-shop.org/download/test) [function.fopen]: failed to open stream: Is a directory in /var/www/druzi-13977/data/www/druzi-shop.org/admin/controller/common/home.php on line 99
Warning: fwrite() expects parameter 1 to be resource, boolean given in /var/www/druzi-13977/data/www/druzi-shop.org/admin/controller/common/home.php on line 101
Warning: fclose() expects parameter 1 to be resource, boolean given in /var/www/druzi-13977/data/www/druzi-shop.org/admin/controller/common/home.php on line 103
Warning: unlink(/var/www/druzi-13977/data/www/druzi-shop.org/download/test) [function.unlink]: Is a directory in/var/www/druzi-13977/data/www/druzi-shop.org/admin/controller/common/home.php on line 110
<?php
class ControllerCommonHome extends Controller {
public function index() {
$this->load->language('common/home');
$this->document->setTitle($this->language->get('heading_title'));
$this->data['heading_title'] = $this->language->get('heading_title');
$this->data['text_overview'] = $this->language->get('text_overview');
$this->data['text_statistics'] = $this->language->get('text_statistics');
$this->data['text_latest_10_orders'] = $this->language->get('text_latest_10_orders');
$this->data['text_total_sale'] = $this->language->get('text_total_sale');
$this->data['text_total_sale_year'] = $this->language->get('text_total_sale_year');
$this->data['text_total_order'] = $this->language->get('text_total_order');
$this->data['text_total_customer'] = $this->language->get('text_total_customer');
$this->data['text_total_customer_approval'] = $this->language->get('text_total_customer_approval');
$this->data['text_total_review_approval'] = $this->language->get('text_total_review_approval');
$this->data['text_total_affiliate'] = $this->language->get('text_total_affiliate');
$this->data['text_total_affiliate_approval'] = $this->language->get('text_total_affiliate_approval');
$this->data['text_day'] = $this->language->get('text_day');
$this->data['text_week'] = $this->language->get('text_week');
$this->data['text_month'] = $this->language->get('text_month');
$this->data['text_year'] = $this->language->get('text_year');
$this->data['text_no_results'] = $this->language->get('text_no_results');
$this->data['column_order'] = $this->language->get('column_order');
$this->data['column_customer'] = $this->language->get('column_customer');
$this->data['column_status'] = $this->language->get('column_status');
$this->data['column_date_added'] = $this->language->get('column_date_added');
$this->data['column_total'] = $this->language->get('column_total');
$this->data['column_firstname'] = $this->language->get('column_firstname');
$this->data['column_lastname'] = $this->language->get('column_lastname');
$this->data['column_action'] = $this->language->get('column_action');
$this->data['entry_range'] = $this->language->get('entry_range');
// Check install directory exists
if (is_dir(dirname(DIR_APPLICATION) . '/install')) {
$this->data['error_install'] = $this->language->get('error_install');
} else {
$this->data['error_install'] = '';
}
// Check image directory is writable
$file = DIR_IMAGE . 'test';
$handle = fopen($file, 'a+');
fwrite($handle, '');
fclose($handle);
if (!file_exists($file)) {
$this->data['error_image'] = sprintf($this->language->get('error_image'). DIR_IMAGE);
} else {
$this->data['error_image'] = '';
unlink($file);
}
// Check image cache directory is writable
$file = DIR_IMAGE . 'cache/test';
$handle = fopen($file, 'a+');
fwrite($handle, '');
fclose($handle);
if (!file_exists($file)) {
$this->data['error_image_cache'] = sprintf($this->language->get('error_image_cache'). DIR_IMAGE . 'cache/');
} else {
$this->data['error_image_cache'] = '';
unlink($file);
}
// Check cache directory is writable
$file = DIR_CACHE . 'test';
$handle = fopen($file, 'a+');
fwrite($handle, '');
fclose($handle);
if (!file_exists($file)) {
$this->data['error_cache'] = sprintf($this->language->get('error_image_cache'). DIR_CACHE);
} else {
$this->data['error_cache'] = '';
unlink($file);
}
// Check download directory is writable
$file = DIR_DOWNLOAD . 'test';
$handle = fopen($file, 'a+');
fwrite($handle, '');
fclose($handle);
if (!file_exists($file)) {
$this->data['error_download'] = sprintf($this->language->get('error_download'). DIR_DOWNLOAD);
} else {
$this->data['error_download'] = '';
unlink($file);
}
// Check logs directory is writable
$file = DIR_LOGS . 'test';
$handle = fopen($file, 'a+');
fwrite($handle, '');
fclose($handle);
if (!file_exists($file)) {
$this->data['errorlogs'] = sprintf($this->language->get('error_logs'). DIR_LOGS);
} else {
$this->data['error_logs'] = '';
unlink($file);
}
$this->data['breadcrumbs'] = array();
$this->data['breadcrumbs'][] = array(
'text' => $this->language->get('text_home'),
'href' => $this->url->link('common/home', 'token=' . $this->session->data['token'], 'SSL'),
'separator' => false
);
$this->data['token'] = $this->session->data['token'];
$this->load->model('sale/order');
$this->data['total_sale'] = $this->currency->format($this->model_sale_order->getTotalSales(), $this->config->get('config_currency'));
$this->data['total_sale_year'] = $this->currency->format($this->model_sale_order->getTotalSalesByYear(date('Y')), $this->config->get('config_currency'));
$this->data['total_order'] = $this->model_sale_order->getTotalOrders();
$this->load->model('sale/customer');
$this->data['total_customer'] = $this->model_sale_customer->getTotalCustomers();
$this->data['total_customer_approval'] = $this->model_sale_customer->getTotalCustomersAwaitingApproval();
$this->load->model('catalog/review');
$this->data['total_review'] = $this->model_catalog_review->getTotalReviews();
$this->data['total_review_approval'] = $this->model_catalog_review->getTotalReviewsAwaitingApproval();
$this->load->model('sale/affiliate');
$this->data['total_affiliate'] = $this->model_sale_affiliate->getTotalAffiliates();
$this->data['total_affiliate_approval'] = $this->model_sale_affiliate->getTotalAffiliatesAwaitingApproval();
$this->data['orders'] = array();
$data = array(
'sort' => 'o.date_added',
'order' => 'DESC',
'start' => 0,
'limit' => 10
);
$results = $this->model_sale_order->getOrders($data);
foreach ($results as $result) {
$action = array();
$action[] = array(
'text' => $this->language->get('text_view'),
'href' => $this->url->link('sale/order/info', 'token=' . $this->session->data['token'] . '&order_id=' . $result['order_id'], 'SSL')
);
$this->data['orders'][] = array(
'order_id' => $result['order_id'],
'customer' => $result['customer'],
'status' => $result['status'],
'date_added' => date($this->language->get('date_format_short'), strtotime($result['date_added'])),
'total' => $this->currency->format($result['total'], $result['currency_code'], $result['currency_value']),
'action' => $action
);
}
if ($this->config->get('config_currency_auto')) {
$this->load->model('localisation/currency');
$this->model_localisation_currency->updateCurrencies();
}
$this->template = 'common/home.tpl';
$this->children = array(
'common/header',
'common/footer'
);
$this->response->setOutput($this->render());
}
public function chart() {
$this->load->language('common/home');
$data = array();
$data['order'] = array();
$data['customer'] = array();
$data['xaxis'] = array();
$data['order']['label'] = $this->language->get('text_order');
$data['customer']['label'] = $this->language->get('text_customer');
if (isset($this->request->get['range'])) {
$range = $this->request->get['range'];
} else {
$range = 'month';
}
switch ($range) {
case 'day':
for ($i = 0; $i < 24; $i++) {
$query = $this->db->query("SELECT COUNT(*) AS total FROM `" . DB_PREFIX . "order` WHERE order_status_id > '0' AND (DATE(date_added) = DATE(NOW()) AND HOUR(date_added) = '" . (int)$i . "') GROUP BY HOUR(date_added) ORDER BY date_added ASC");
if ($query->num_rows) {
$data['order']['data'][] = array($i, (int)$query->row['total']);
} else {
$data['order']['data'][] = array($i, 0);
}
$query = $this->db->query("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "customer WHERE DATE(date_added) = DATE(NOW()) AND HOUR(date_added) = '" . (int)$i . "' GROUP BY HOUR(date_added) ORDER BY date_added ASC");
if ($query->num_rows) {
$data['customer']['data'][] = array($i, (int)$query->row['total']);
} else {
$data['customer']['data'][] = array($i, 0);
}
$data['xaxis'][] = array($i, date('H', mktime($i, 0, 0, date('n'), date('j'), date('Y'))));
}
break;
case 'week':
$date_start = strtotime('-' . date('w') . ' days');
for ($i = 0; $i < 7; $i++) {
$date = date('Y-m-d', $date_start + ($i * 86400));
$query = $this->db->query("SELECT COUNT(*) AS total FROM `" . DB_PREFIX . "order` WHERE order_status_id > '0' AND DATE(date_added) = '" . $this->db->escape($date) . "' GROUP BY DATE(date_added)");
if ($query->num_rows) {
$data['order']['data'][] = array($i, (int)$query->row['total']);
} else {
$data['order']['data'][] = array($i, 0);
}
$query = $this->db->query("SELECT COUNT(*) AS total FROM `" . DB_PREFIX . "customer` WHERE DATE(date_added) = '" . $this->db->escape($date) . "' GROUP BY DATE(date_added)");
if ($query->num_rows) {
$data['customer']['data'][] = array($i, (int)$query->row['total']);
} else {
$data['customer']['data'][] = array($i, 0);
}
$data['xaxis'][] = array($i, date('D', strtotime($date)));
}
break;
default:
case 'month':
for ($i = 1; $i <= date('t'); $i++) {
$date = date('Y') . '-' . date('m') . '-' . $i;
$query = $this->db->query("SELECT COUNT(*) AS total FROM `" . DB_PREFIX . "order` WHERE order_status_id > '0' AND (DATE(date_added) = '" . $this->db->escape($date) . "') GROUP BY DAY(date_added)");
if ($query->num_rows) {
$data['order']['data'][] = array($i, (int)$query->row['total']);
} else {
$data['order']['data'][] = array($i, 0);
}
$query = $this->db->query("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "customer WHERE DATE(date_added) = '" . $this->db->escape($date) . "' GROUP BY DAY(date_added)");
if ($query->num_rows) {
$data['customer']['data'][] = array($i, (int)$query->row['total']);
} else {
$data['customer']['data'][] = array($i, 0);
}
$data['xaxis'][] = array($i, date('j', strtotime($date)));
}
break;
case 'year':
for ($i = 1; $i <= 12; $i++) {
$query = $this->db->query("SELECT COUNT(*) AS total FROM `" . DB_PREFIX . "order` WHERE order_status_id > '0' AND YEAR(date_added) = '" . date('Y') . "' AND MONTH(date_added) = '" . $i . "' GROUP BY MONTH(date_added)");
if ($query->num_rows) {
$data['order']['data'][] = array($i, (int)$query->row['total']);
} else {
$data['order']['data'][] = array($i, 0);
}
$query = $this->db->query("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "customer WHERE YEAR(date_added) = '" . date('Y') . "' AND MONTH(date_added) = '" . $i . "' GROUP BY MONTH(date_added)");
if ($query->num_rows) {
$data['customer']['data'][] = array($i, (int)$query->row['total']);
} else {
$data['customer']['data'][] = array($i, 0);
}
$data['xaxis'][] = array($i, date('M', mktime(0, 0, 0, $i, 1, date('Y'))));
}
break;
}
$this->response->setOutput(json_encode($data));
}
public function login() {
$route = '';
if (isset($this->request->get['route'])) {
$part = explode('/', $this->request->get['route']);
if (isset($part[0])) {
$route .= $part[0];
}
if (isset($part[1])) {
$route .= '/' . $part[1];
}
}
$ignore = array(
'common/login',
'common/forgotten',
'common/reset'
);
if (!$this->user->isLogged() && !in_array($route, $ignore)) {
return $this->forward('common/login');
}
if (isset($this->request->get['route'])) {
$ignore = array(
'common/login',
'common/logout',
'common/forgotten',
'common/reset',
'error/not_found',
'error/permission'
);
$config_ignore = array();
if ($this->config->get('config_token_ignore')) {
$config_ignore = unserialize($this->config->get('config_token_ignore'));
}
$ignore = array_merge($ignore, $config_ignore);
if (!in_array($route, $ignore) && (!isset($this->request->get['token']) || !isset($this->session->data['token']) || ($this->request->get['token'] != $this->session->data['token']))) {
return $this->forward('common/login');
}
} else {
if (!isset($this->request->get['token']) || !isset($this->session->data['token']) || ($this->request->get['token'] != $this->session->data['token'])) {
return $this->forward('common/login');
}
}
}
public function permission() {
if (isset($this->request->get['route'])) {
$route = '';
$part = explode('/', $this->request->get['route']);
if (isset($part[0])) {
$route .= $part[0];
}
if (isset($part[1])) {
$route .= '/' . $part[1];
}
$ignore = array(
'common/home',
'common/login',
'common/logout',
'common/forgotten',
'common/reset',
'error/not_found',
'error/permission'
);
if (!in_array($route, $ignore) && !$this->user->hasPermission('access', $route)) {
return $this->forward('error/permission');
}
}
}
}
?>