Jump to content
Sign in to follow this  
ArtemPitov

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

Recommended Posts

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

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

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

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

 

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

Share this post


Link to post
Share on other sites
.. что бы не можно было добавлять дубли модуля

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

Share this post


Link to post
Share on other sites

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

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

$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 Содержимое"

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

а чтобы
"мало кто может это делать" (с)
нужно модуль ваш чуток переписать, а именно, на примере того же 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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Спасибо ! 

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

$text_strings = array( ... );

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

Share this post


Link to post
Share on other sites

Не могу передать данные в таблицу 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; ?>

Share this post


Link to post
Share on other sites

              <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>

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Edited by ArtenPitov

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

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.