Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


ArtemPitov

Recommended Posts

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

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

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

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

 

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

Надіслати
Поділитися на інших сайтах

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

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

$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 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.