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

[Решено] Как получить данные с модуля (вопрос по PHP)

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

Доброго времени суток ! 

Написал простенький модуль, ссылки на соц. сети, эти ссылки нужно вывести в футере, есть два вопроса:

1) как получить данные модуля в футере

2) как сделать вывод модуля в админке только один раз (что бы не можно было добавлять дубли модуля). 

 

Всем спасибо!

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


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

- боксера могут обидеть не только лишь все! (с) :-D

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


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

если хардкорно, то, например, так

в контроллере футера:

$modId = id_вашего_модуля_в_БД;
$modName = 'название_модуля';
$this->load->model('extension/module');
$setting_info = $this->model_extension_module->getModule($modId);
$data['variable_for_template'] = $this->load->controller('module/' . $modName, $setting_info);

а в шаблоне футера используйте $variable_for_template

 

хотя для этого хватило бы и стандартного модуля "HTML Содержимое"

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


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

модуль ссылки только в футере выводит?

если да - проще сразу делать его для футера и "одиночным" (без выбора позиций и сериализации)

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


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

а чтобы
"мало кто может это делать" (с)
нужно модуль ваш чуток переписать, а именно, на примере того же html, вместо

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

		if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) {
			if (!isset($this->request->get['module_id'])) {
				$this->model_extension_module->addModule('html', $this->request->post);
			} else {
				$this->model_extension_module->editModule($this->request->get['module_id'], $this->request->post);
			}

			$this->session->data['success'] = $this->language->get('text_success');
 
...

писать что-то вроде

		$this->load->model('setting/setting');

		if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) {
			$this->model_setting_setting->editSetting('ваш_модуль', $this->request->post);

			$this->session->data['success'] = $this->language->get('text_success');
...

т.е. сохранять данные модуля в таблицу oc_setting вместо oc_module

ну и получать данные потом не мудрствуя, напрямую

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


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

AlexDW, Только ссылки для футера (по типу настройки для шаблона), подскажите пожалуйста как сделать его одиночным ?

savage4pro, спасибо, щяс попробую )

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


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

как вариант, качайте этот модуль и смотрите содержимое - что где и как

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


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

Спасибо ! 

Кстати вот это гениально и удобно

$text_strings = array( ... );

foreach ($text_strings as $text) {
   $data[$text] = $this->language->get($text);
}

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


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

Не могу передать данные в таблицу settings. подскажите пожалуйста, в чем косяк? 

 

contriller 

 

<?php
class ControllerModuleSocialLink extends Controller {
	private $error = array();

	public function index() {
		$this->load->language('module/social_link');

		$this->document->setTitle($this->language->get('heading_title'));

		$this->load->model('setting/setting');

		if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) {
			$this->model_setting_setting->editSetting('social_link', $this->request->post);

			$this->session->data['success'] = $this->language->get('text_success');

			$this->response->redirect($this->url->link('extension/module', 'token=' . $this->session->data['token'], 'SSL'));
		}

		$text_strings = array(
			'heading_title',
			'text_edit',
			'text_enabled',
			'text_disabled',
			'entry_link',
			'entry_status',
			'button_save',
			'button_cancel'
		);

		foreach ($text_strings as $text) {
			$data[$text] = $this->language->get($text);
		}
		
		if (isset($this->error['warning'])) {
			$data['error_warning'] = $this->error['warning'];
		} else {
			$data['error_warning'] = '';
		}

		$data['breadcrumbs'] = array();

		$data['breadcrumbs'][] = array(
			'text' => $this->language->get('text_home'),
			'href' => $this->url->link('common/dashboard', 'token=' . $this->session->data['token'], 'SSL')
		);

		$data['breadcrumbs'][] = array(
			'text' => $this->language->get('text_module'),
			'href' => $this->url->link('extension/module', 'token=' . $this->session->data['token'], 'SSL')
		);

		$data['breadcrumbs'][] = array(
			'text' => $this->language->get('heading_title'),
			'href' => $this->url->link('module/social_link', 'token=' . $this->session->data['token'], 'SSL')
		);

		$data['action'] = $this->url->link('module/social_link', 'token=' . $this->session->data['token'], 'SSL');

		$data['cancel'] = $this->url->link('extension/module', 'token=' . $this->session->data['token'], 'SSL');

		if (isset($this->request->post['vkontakte'])) {
			$data['vkontakte'] = $this->request->post['vkontakte'];
		} else {
			$data['vkontakte'] = $this->config->get('vkontakte');
		}

		if (isset($this->request->post['facebook'])) {
			$data['facebook'] = $this->request->post['facebook'];
		} else {
			$data['facebook'] = $this->config->get('facebook');
		}		

		if (isset($this->request->post['twitter'])) {
			$data['twitter'] = $this->request->post['twitter'];
		} else {
			$data['twitter'] = $this->config->get('twitter');
		}

		if (isset($this->request->post['google'])) {
			$data['google'] = $this->request->post['google'];
		} else {
			$data['google'] = $this->config->get('google');
		}

		if (isset($this->request->post['odnoklassniki'])) {
			$data['odnoklassniki'] = $this->request->post['odnoklassniki'];
		} else {
			$data['odnoklassniki'] = $this->config->get('odnoklassniki');
		}

		if (isset($this->request->post['instagram'])) {
			$data['instagram'] = $this->request->post['instagram'];
		} else {
			$data['instagram'] = $this->config->get('instagram');
		}

		if (isset($this->request->post['skype'])) {
			$data['skype'] = $this->request->post['skype'];
		} else {
			$data['skype'] = $this->config->get('skype');
		}
										
		if (isset($this->request->post['status'])) {
			$data['status'] = $this->request->post['status'];
		} else {
			$data['status'] = $this->config->get('status');
		}

		$data['header'] = $this->load->controller('common/header');
		$data['column_left'] = $this->load->controller('common/column_left');
		$data['footer'] = $this->load->controller('common/footer');

		$this->response->setOutput($this->load->view('module/social_link.tpl', $data));

	}

	protected function validate() {
		if (!$this->user->hasPermission('modify', 'module/social_link')) {
			$this->error['warning'] = $this->language->get('error_permission');
		}

		return !$this->error;
	}
}

 

tpl

 

<?php echo $header; ?><?php echo $column_left; ?>
<div id="content">
  <div class="page-header">
    <div class="container-fluid">
      <div class="pull-right">
        <button type="submit" form="form-social" data-toggle="tooltip" title="<?php echo $button_save; ?>" class="btn btn-primary"><i class="fa fa-save"></i></button>
        <a href="<?php echo $cancel; ?>" data-toggle="tooltip" title="<?php echo $button_cancel; ?>" class="btn btn-default"><i class="fa fa-reply"></i></a></div>
        <h1><?php echo $heading_title; ?></h1>
        <ul class="breadcrumb">
          <?php foreach ($breadcrumbs as $breadcrumb) { ?>
          <li><a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a></li>
          <?php } ?>
        </ul>
      </div>
    </div>

    <div class="container-fluid">
      <?php if ($error_warning) { ?>
      <div class="alert alert-danger"><i class="fa fa-exclamation-circle"></i> <?php echo $error_warning; ?>
        <button type="button" class="close" data-dismiss="alert">×</button>
      </div>
      <?php } ?>

      <div class="panel panel-default">
        <div class="panel-heading"><h3 class="panel-title"><i class="fa fa-pencil"></i> <?php echo $text_edit; ?></h3></div>
        <div class="panel-body">

          <form action="<?php echo $action; ?>" method="post" enctype="multipart/form-data" id="form-social" class="form-horizontal">

            <div class="form-group">  
              <label class="col-sm-1 control-label" for="vkontakte" ><i class="fa fa-vk fa-2x"></i></label>
              <div class="col-sm-3">
                <input name="vkontakte" placeholder="<?php echo $entry_link; ?>" id="vkontakte" class="form-control" value="<?php echo $vkontakte; ?>">
              </div>

              <label class="col-sm-1 control-label" for="facebook" ><i class="fa fa-facebook fa-2x"></i></label>
              <div class="col-sm-3"><input name="facebook" placeholder="<?php echo $entry_link; ?>" id="facebook" class="form-control" value="<?php echo $facebook; ?>">
              </div>

              <label class="col-sm-1 control-label" for="twitter" ><i class="fa fa-twitter fa-2x"></i></label>
              <div class="col-sm-3"><input name="twitter" placeholder="<?php echo $entry_link; ?>" id="twitter" class="form-control" value="<?php echo $twitter; ?>">
              </div>
            </div>

            <div class="form-group">  
              <label class="col-sm-1 control-label" for="google" ><i class="fa fa-google-plus fa-2x"></i></label>
              <div class="col-sm-3">
                <input name="google" placeholder="<?php echo $entry_link; ?>" id="google" class="form-control" value="<?php echo $google; ?>">
              </div>

              <label class="col-sm-1 control-label" for="odnoklassniki" ><i class="fa fa-odnoklassniki fa-2x"></i></label>
              <div class="col-sm-3">
                <input name="odnoklassniki" placeholder="<?php echo $entry_link; ?>" 
                id="odnoklassniki" class="form-control" value="<?php echo $odnoklassniki; ?>">
              </div>

              <label class="col-sm-1 control-label" for="instagram" >
                <i class="fa fa-instagram fa-2x"></i></label>
                <div class="col-sm-3">
                  <input name="instagram" placeholder="<?php echo $entry_link; ?>" 
                  id="instagram" class="form-control" value="<?php echo $instagram; ?>">
                </div>
              </div>

              <div class="form-group">  
                <label class="col-sm-1 control-label" for="skype" >
                  <i class="fa fa-skype fa-2x"></i></label>
                  <div class="col-sm-3">
                    <input name="skype" placeholder="<?php echo $entry_link; ?>" 
                    id="skype" class="form-control" value="<?php echo $skype; ?>">
                  </div>

                  <label class="col-sm-1 control-label" for="status"><?php echo $entry_status; ?></label>
                  <div class="col-sm-7">
                    <select name="status" id="status" class="form-control">
                      <?php if ($status) { ?>
                      <option value="1" selected="selected"><?php echo $text_enabled; ?></option>
                      <option value="0"><?php echo $text_disabled; ?></option>
                      <?php } else { ?>
                      <option value="1"><?php echo $text_enabled; ?></option>
                      <option value="0" selected="selected"><?php echo $text_disabled; ?></option>
                      <?php } ?>
                    </select>
                  </div>
                  
                </div>
              </form>
            </div>
          </div>
        </div>
      </div>

      <?php echo $footer; ?>

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


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

              <label class="col-sm-1 control-label" for="facebook" ><i class="fa fa-facebook fa-2x"></i></label>
              <div class="col-sm-3"><input name="facebook" placeholder="<?php echo $entry_link; ?>" id="facebook" class="form-control" value="<?php echo $facebook; ?>">
              </div>
->>
              <label class="col-sm-1 control-label" for="input-facebook" ><i class="fa fa-facebook fa-2x"></i></label>
              <div class="col-sm-3"><input name="sociallink_facebook" placeholder="<?php echo $entry_link; ?>" id="input-facebook" class="form-control" value="<?php echo $facebook; ?>">
              </div>

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


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

спасибо, немного не так нужно было, но направили в правильное русло !

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


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

Спасибо ! вышло именно то что нужно !!!

Изменено пользователем ArtenPitov

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


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.

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

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

×

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

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