Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

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


Recommended Posts

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

 

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

 

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

catalog/controller/......

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

catalog/language/english/.....

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

 

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

 

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

Link to post
Share on other sites

Вот именно по такой и делал:) 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 ? :( как-бы не получается так как в примере что ты скинул по ссылки... или что-то еще не хватает?

Link to post
Share on other sites

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
Link to post
Share on other sites

12strun СПАСИБО!!!!!!! то что надо :eek: 

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.