Перейти к содержанию
cha0s

как создать свой простой модуль

Рекомендуемые сообщения

Добрый день, расскажите как создать свой модуль простой хотя-бы который просто выводит надпись одну любую но только при нужном мне пути например /index.php?route=tratata/privet , как мне это? Можно набросать быстро? я понимаю что мне нужен для этого простой Controller, модель(пусть она только return 'dasdsadas'; делает), и шаблон... что-то не получается сделать чтоб работал путь... объясните плиз)

 

В АДМИНКЕ ОН МНЕ НЕ НУЖЕН, только на ФРОНТЕ, или мне надо обязательно чтоб он был и в админке?

 

мне надо файлы только размещать в

catalog/controller/......

catalog/model/........

catalog/language/english/.....

catalog/view/theme/.......

 

или еще где-то? чтоб у меня все работало? а где нужно прописывать route? ну чтоб модуль только работал при нужном мне пути....

 

этого только достаточно чтоб сделать чтоб это выполнялось по пути мне нужному route? если можно покажите самый простой пример данного примера... задача просто вывести какую-ту строку на фронте, когда заходят по нужному мне пути... в интернете мало информации как-то по этому вопросу, есть но не то что надо, и как-то не получается сделать( Версия опенкарта 1.5.4

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот именно по такой и делал:) route не работает... и там нету примеров Contollera, Modeli, и шаблона, взять описание модели например... 

 

class Modelpricelistprice extends Model {

}

 

это все описание) помогите сделать чтоб работало( можно даже опустить языковой раздел. Ладно покажу пример:

 

Controller

<?php
class ControllerModuleMyModule extends Controller {
	protected function index() {
		$this->language->load('module/my_module');
      	        $this->data['heading_title'] = $this->language->get('heading_title');


		$this->load->model('module/my_module');

		$this->data['customers'] = $this->model_module_my_module->getblalala();

		if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/my_module.tpl')) {
			$this->template = $this->config->get('config_template') . '/template/module/my_module.tpl';
		} else {
			$this->template = 'default/template/module/my_module.tpl';
		}

		$this->render();
	}
}
?>

Model

<?php

class ModelModuleMyModule extends Model {
	function getblalala() {
		return 'dasdasdasdasdaads';
	}
	
}

?>

View

<div class="box">
  <div class="box-heading"><?php echo $heading_title; ?></div>
  <div class="box-content" style="text-align: center;">
  testestetafasfsafafsafasfada
  </div>
</div>

Языковой не буду приводить там все просто, ну и теперь как мне сделать чтоб эта хрень выводилась мне по нужному мне /index.php?route=module/mymodule ? :( как-бы не получается так как в примере что ты скинул по ссылки... или что-то еще не хватает?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. catalog/controller/tratata/privet.php:

<?php 
class ControllerTratataPrivet extends Controller {
	public function index() {  
    $this->language->load('tratata/privet');
		$this->document->setTitle($this->language->get('heading_title'));
		
		$this->data['breadcrumbs'] = array();
    $this->data['breadcrumbs'][] = array(
      'text'      => $this->language->get('text_home'),
			'href'      => $this->url->link('common/home'),
      'separator' => false
    );
			
      $this->data['breadcrumbs'][] = array(
        'text'      => $this->language->get('heading_title'),
				'href'      => $this->url->link('tratata/privet'),      		
        'separator' => $this->language->get('text_separator')
      );		

		$this->data['heading_title'] = $this->language->get('heading_title');

			if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/tratata/privet.tpl')) {
				$this->template = $this->config->get('config_template') . '/template/tratata/privet.tpl';
			} else {
				$this->template = 'default/template/tratata/privet.tpl';
			}
			
			$this->children = array(
				'common/column_left',
				'common/column_right',
				'common/content_top',
				'common/content_bottom',
				'common/footer',
				'common/header'
			);
						
	  		$this->response->setOutput($this->render());
  }
}
?>

2. catalog/language/russian/tratata/privet.php:

<?php
$_['heading_title'] = 'Привет, Мир!';
?>

3. catalog/language/english/tratata/privet.php:

<?php
$_['heading_title'] = 'Hello, World!';
?>

4. catalog/view/theme/default/template/tratata/privet.tpl:

<?php echo $header; ?><?php echo $column_left; ?><?php echo $column_right; ?>
<div id="content"><?php echo $content_top; ?>
  <div class="breadcrumb">
    <?php foreach ($breadcrumbs as $breadcrumb) { ?>
    <?php echo $breadcrumb['separator']; ?><a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a>
    <?php } ?>
  </div>
  <h1><?php echo $heading_title; ?></h1>
  <?php echo $content_bottom; ?></div>
<?php echo $footer; ?>

Модуль доступен по адресу: mysite/index.php?route=tratata/privet

  • +1 4

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.