Создание модуля панели администратора в OpenCart

Создание модуля панели администратора в OpenCart

От автора: в этой статья я покажу, как создать в OpenCart панель администратора. Модули панели администратора обеспечивают высокоуровневый интерфейс событий и статистики в магазине. Некоторые полезные модули панели администратора уже встроены в ядро, однако иногда хочется отображать более специфичную информацию. Поэтому вам необходим кастомный модуль панели администратора.

Сегодня мы создадим пример модуля админки и интегрируем его в панель. Для простоты мы сделаем блок недавних покупателей в магазине. Будем работать в последней версии OpenCart. Предполагаю, что вы знаете основы процесса разработки модулей в OpenCart.

Что такое модуль панели администратора?

После авторизации на back end вы попадаете на экран, где отображаются блоки «Total Orders», «Total Sales», «World Map» и т.д. Эти блоки – это отдельные модули админки, выводящие полезную информацию о том, что происходит в магазине. Статистика – один из основных примеров использования этих модулей.

С технической стороны модуль админки похож на другие модули в OpenCart, они следуют той же структуре и системе именования. Но что отличает их так это то, что они прикреплены к панели администратора на back end.

Интернет-магазин на OpenCart!

Создайте интернет-магазин на самой популярной CMS – OpenCart с нуля!

Приступить к созданию

Начнем с обычного процесса разработки кастомного модуля для админки. В конце прикрепим наш модуль к панели администратора.

Создание кастомного модуля панели администратора

Создайте файл admin/controller/dashboard/recentcustomers.php со следующим кодом. Наш модуль будет называться recentcustomers.

<?php
class ControllerDashboardRecentcustomers extends Controller {
  public function index() {
 $this->load->language('dashboard/recentcustomers');
 
 $data['heading_title'] = $this->language->get('heading_title');
 
 $data['column_customer_id'] = $this->language->get('column_customer_id');
 $data['column_customer_name'] = $this->language->get('column_customer_name');
 $data['column_customer_email'] = $this->language->get('column_customer_email');
 $data['column_date_added'] = $this->language->get('column_date_added');
 $data['text_no_results'] = $this->language->get('text_no_results');
 
 $data['recentcustomers'] = array();
 
 $this->load->model('report/recentcustomers');
 $results = $this->model_report_recentcustomers->getRecentCustomers();
 
 foreach ($results as $result) {
 $data['recentcustomers'][] = array(
 'customer_id' => $result['customer_id'],
 'name' => $result['firstname'] . '&nbsp;' . $result['lastname'],
 'email' => $result['email'],
 'date_added' => $result['date_added']
 );
 }
 
 return $this->load->view('dashboard/recentcustomers.tpl', $data);
  }
}

Довольно простой контроллер! Здесь важно отметить, что мы загружаем модель recentcustomers и вызываем метод getRecentCustomers для получения последних покупателей.

Создайте языковой файл admin/language/english/dashboard/recentcustomers.php.

<?php
// Heading
$_['heading_title'] = 'Recent Customers';
 
// Text
$_['column_customer_id'] = 'Customer ID';
$_['column_customer_name'] = 'Customer Name';
$_['column_customer_email'] = 'Customer Email';
$_['column_date_added'] = 'Date Added';
$_['text_no_results'] = 'No customer(s) found.'; 

Здесь просто задаются лейблы, которые мы будем выводить в файле представления.

Создайте файл модели admin/model/report/recentcustomers.php со следующим кодом.

<?php
class ModelReportRecentcustomers extends Model {
  public function getRecentCustomers() {
 $query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "customer` ORDER BY date_added DESC LIMIT 5");
 
 return $query->rows;
  }
}

В модели мы определили метод getRecentCustomers, который будет просто вытягивать пять последних покупателей в магазине.

Интернет-магазин на OpenCart!

Создайте интернет-магазин на самой популярной CMS – OpenCart с нуля!

Приступить к созданию

Создайте файл представления admin/view/template/dashboard/recentcustomers.tpl.

<div class="panel panel-default">
  <div class="panel-heading">
 <h3 class="panel-title"><i class="fa fa-users"></i> <?php echo $heading_title; ?></h3>
  </div>
  <div class="table-responsive">
 <table class="table">
 <thead>
 <tr>
 <td class="text-right"><?php echo $column_customer_id; ?></td>
 <td><?php echo $column_customer_name; ?></td>
 <td><?php echo $column_customer_email; ?></td>
 <td><?php echo $column_date_added; ?></td>
 </tr>
 </thead>
 <tbody>
 <?php if ($recentcustomers) { ?>
 <?php foreach ($recentcustomers as $customer) { ?>
 <tr>
 <td class="text-right"><?php echo $customer['customer_id']; ?></td>
 <td><?php echo $customer['name']; ?></td>
 <td><?php echo $customer['email']; ?></td>
 <td><?php echo $customer['date_added']; ?></td>
 </tr>
 <?php } ?>
 <?php } else { ?>
 <tr>
 <td class="text-center" colspan="6"><?php echo $text_no_results; ?></td>
 </tr>
 <?php } ?>
 </tbody>
 </table>
  </div>
</div>

В файле представления мы в цикле бегаем по записям покупателей и выводим их в красивую адаптивную таблицу.

С кастомным модулем закончили! Как вы могли заметить, процесс точно такой же, как при создании любого другого модуля. В следующем разделе мы увидим, как прикрепить наш кастомный модуль к админке!

Прикрепление модуля к панели администратора

Чтобы прикрепить кастомный модуль к админке, необходимо изменить пару файлов ядра в back end. Для простоты мы посмотрим на необходимые изменения в файлах ядра. Ни в коем случае не меняйте файлы ядра напрямую, используйте для этого OCMOD.

Откройте файл admin/controller/common/dashboard.php в текстовом редакторе. Найдите $data['recent'] = $this->load->controller(‘dashboard/recent’); и вставьте следующий код после строки.

$data['recentcustomers'] = $this->load->controller('dashboard/recentcustomers');

Здесь происходит инициализация нашего блока Recent Customers.

Отредактируйте файл admin/view/template/common/dashboard.tpl. Найдите <div class=»col-lg-8 col-md-12 col-sm-12 col-sx-12″><?php echo $recent; ?></div> и после этой строки вставьте:

<div class="col-lg-8 col-md-12 col-sm-12 col-sx-12">
  <?php echo $recentcustomers; ?>
</div>

Почти закончили! Теперь обновите панель администратора, должен отобразиться красивый модуль Recent Customers, как показано ниже.

Заключение

Сегодня мы узнали, как создать кастомный модуль админки в OpenCart. Отличный способ собирать информацию со всего магазина и следить за происходящим. Уверен, информация была полезна. Не забывайте делиться комментариями и предложениями!

Автор: Sajal Soni

Источник: http://code.tutsplus.com/

Редакция: Команда webformyself.

Интернет-магазин на OpenCart!

Создайте интернет-магазин на самой популярной CMS – OpenCart с нуля!

Приступить к созданию
Самые свежие новости IT и веб-разработки на нашем Telegram-канале

OpenCart: быстрый старт, первые результаты

Создайте свой первый интернет-магазин на OpenCart с полного нуля!

Получить

Метки:

Похожие статьи:

Комментарии Вконтакте:

Комментарии Facebook:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Я не робот.

Spam Protection by WP-SpamFree