Jump to content
Sign in to follow this  
Moonwalker

Вывод из ячейки БД в шапку админки

Recommended Posts

Добрый день, сообщество!

 

Необходимо реализовать вывод в шапку админки (куда именно воткнуть - пока не решил, но проблема не в этом) данные из определенной ячейки БД магазина.

При обновлении остатков (запросом в бд извне) в эту ячейку записывается текущая дата и время.

Соответственно, нужно взять эти данные и вывести в шапку админки сайта, чтобы можно было всегда видеть актуальность данных.

 

В БД еще ничего не создавал, поэтому есть варианты и отдельную таблицу с одним столбцом и одной строкой под эти данные сделать, и в какую-нибудь oc_setting засунуть (хотя, кажись, отдельная во избежание накладок будет логичнее).

Понимаю, что нужно править какой-то model (либо создавать отдельный), где делать запрос в БД для получения данных ячейки, затем править контроллер header.php и, соответственно, выводить в header.tpl.

Логику понимаю, но навыков для создания правильной таблицы, формирования нужных запросов в модели и их обработки в контроллере, не хватает ((

С записью даты и времени в бд как-раз проблем нет ))

 

Кто-нибудь направит на путь истинный?

Share this post


Link to post
Share on other sites

Ну, Вам тут вряд ли готовое решение за бесплатно наваяют.

А так конечно нужно понимать что за структура БД. У меня почему то сложилось впечатление, что у вас там 1 столбец всего с 1 записью. Какой тип данных будет лежать в таблице

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

Вот первая ссылка в гугле по созданию модулей в ОС http://s-engineer.ru/sozdaem-modul-v-opencart-2-x-ocmod/

 

Share this post


Link to post
Share on other sites
$mydata = $this->db->query("SELECT mydata FROM " . DB_PREFIX . "table_name");

Наверное так, если

8 минут назад, neonox сказал:

у вас там 1 столбец всего с 1 записью

 

  • +1 1

Share this post


Link to post
Share on other sites

Бд - та же самая, в которой магазин. Просто еще одна таблица, или даже строка в какой-нить имеющейся (еще не решил). Допустим, в БД магазина таблица "oc_updatedate", в ней один столбец и одна строка. В ней данные, которые надо выводить.Тип данных - короткий текст. Можно тот же varchar.

А какие еще детали нужны? Имя таблицы, столбца, ячейки? Условно, мне нужно из той же самой базы взять данные и вывести их в админке в шапке.

Ну и я не просил никого готовое решение бесплатно ваять )) Скорее, попросил дать направление.

Допустим, можно было задать задачу так: мне нужно в шапке в админке вывести название магазина (оно же, по сути, в той же бд хранится в определенной ячейке). А дальше по схеме уже просто беру данные из другой ячейки для вывода )) Или факс из настроек магазина, все равно не используется. Могу прямо туда нужные данные записывать.

За наводку на материал по созданию модулей спасибо. Но я особо модули не собирался писать, мне просто надо уже имеющиеся в бд данные вывести, протащив через controller и model, судя по всему ))

Share this post


Link to post
Share on other sites
15 минут назад, mazein сказал:
$mydata = $this->db->query("SELECT mydata FROM " . DB_PREFIX . "table_name");

Наверное так, если

 

Это, насколько я понимаю, уже в controller/common/header.php можно прописать? Минуя какой-либо model?

А потом через echo в header.tpl вывести?

Edited by Moonwalker

Share this post


Link to post
Share on other sites
9 минут назад, Moonwalker сказал:

controller/common/header.php

 

Да, для проверки можно прямо в контроллер, потом перенесёте в модель.

Это как бы то самое направление.

  • +1 1

Share this post


Link to post
Share on other sites
34 минуты назад, mazein сказал:

 

Да, для проверки можно прямо в контроллер, потом перенесёте в модель.

Это как бы то самое направление.

Дурацкий вопрос: а важно, в каком месте контроллера header.php прописывать? Потому как в месте, где вывожу <?php echo $mydata; ?>

показывает Notice: Undefined variable: mydata in ...

В контроллер воткнуто это:

$mydata = $this->db->query("SELECT * FROM oc_aaa");

 

По запросу SELECT * FROM oc_aaa извне получаю нужные данные, которые записаны в ячейке.

Чую, что где-то близко, а попасть не могу )) Такое ощущение, что запрос к бд нужно все-таки куда-то в модель воткнуть, а в контроллере просто обработать.

Edited by Moonwalker

Share this post


Link to post
Share on other sites

Насколько я понял, все данные передаются в массиве data

return $this->load->view('common/header', $data);

А у вас ваша переменная "висит в воздухе"

Что-то типа того надо сделать:

$data['mydata'] = $this-> тут ваше обращение в модель ( я пытаюсь разобраться вместе с вами., есть похожая задача)

или

$mydata = $this->db->query("SELECT * FROM oc_aaa");

$data['mydata'] = $mydata;

Edited by jaffagold

Share this post


Link to post
Share on other sites
$mydata = $this->db->query("SELECT * FROM " . DB_PREFIX . "table_name");
	foreach ($mydata->rows as $mydataa) { 
		$data['mydatab'] = $mydataa['column_name']; 
	}

<?php echo $mydatab; ?>

так точно будет работать

  • +1 2

Share this post


Link to post
Share on other sites
29 минут назад, mazein сказал:
$mydata = $this->db->query("SELECT * FROM " . DB_PREFIX . "table_name");
	foreach ($mydata->rows as $mydataa) { 
		$data['mydatab'] = $mydataa['column_name']; 
	}

<?php echo $mydatab; ?>

так точно будет работать

 

Notice: Undefined variable: mydatab in... (((

Может, критично, куда в контроллере вставлять?

Share this post


Link to post
Share on other sites

Я пошагово делаю такие вещи при экспериментах

//		
		$data['mytab'] = 123454321;
//
		$mydata = $this->db->query("SELECT * FROM " . DB_PREFIX . "USER");
			foreach ($mydata->rows as $mydataa) { 
		$data['mytab2'] = $mydataa['username']; 
	}
//

и в tpl-ке

<div class="container">
    <?php echo $currency; ?>
    <?php echo $language; ?>
	<?php echo $mytab; ?>
	<?php echo $mytab2; ?>
  тут неважно

Выводит 123454321 admin

Share this post


Link to post
Share on other sites
10 часов назад, jaffagold сказал:

Я пошагово делаю такие вещи при экспериментах

 

Первый кусок ты в каком файле в какое место вставляешь?

Share this post


Link to post
Share on other sites
Скрытый текст

<?php
class ControllerCommonHeader extends Controller {
    public function index() {
        // Analytics
        $this->load->model('extension/extension');

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

        $analytics = $this->model_extension_extension->getExtensions('analytics');

        foreach ($analytics as $analytic) {
            if ($this->config->get($analytic['code'] . '_status')) {
                $data['analytics'][] = $this->load->controller('extension/analytics/' . $analytic['code'], $this->config->get($analytic['code'] . '_status'));
            }
        }

        if (isset($this->request->server['HTTPS']) && (($this->request->server['HTTPS'] == 'on') || ($this->request->server['HTTPS'] == '1'))) {
            $server = $this->config->get('config_ssl');
        } else {
            $server = $this->config->get('config_url');
        }

        if (is_file(DIR_IMAGE . $this->config->get('config_icon'))) {
            $this->document->addLink($server . 'image/' . $this->config->get('config_icon'), 'icon');
        }

        $data['title'] = $this->document->getTitle();

        $data['base'] = $server;
        $data['description'] = $this->document->getDescription();
        $data['keywords'] = $this->document->getKeywords();
        $data['links'] = $this->document->getLinks();
        $data['styles'] = $this->document->getStyles();
        $data['scripts'] = $this->document->getScripts();
        $data['lang'] = $this->language->get('code');
        $data['direction'] = $this->language->get('direction');

        $data['name'] = $this->config->get('config_name');
//        
        $data['mytab'] = 123454321;
//
        $mydata = $this->db->query("SELECT * FROM " . DB_PREFIX . "USER");
            foreach ($mydata->rows as $mydataa) { 
        $data['mytab2'] = $mydataa['username']; 
    }
//    

header.php ( ocstore 23021) 

Обновляю модификаторы  и обновляю сайт Crl+F5

Edited by jaffagold
  • +1 1

Share this post


Link to post
Share on other sites

Хм, видимо, забыл уточнить версию. У меня ocStore 1.5.5.1 Там, видать, логика малек иначе.

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

Share this post


Link to post
Share on other sites
4 минуты назад, Moonwalker сказал:

У меня ocStore 1.5.5.1

 

очень вовремя

 

$mydata = $this->db->query("SELECT * FROM " . DB_PREFIX . "table_name");
	foreach ($mydata->rows as $mydataa) { 
		$this->data['mydatab'] = $mydataa['column_name']; 
	}

<?php echo $mydatab; ?>

 

  • +1 1

Share this post


Link to post
Share on other sites
1 час назад, mazein сказал:

 

очень вовремя

 

Так мне казалось, я не в ветке 2.х спрашивал ))) Там свои "Общие вопросы" ))

Да, этот вариант работает )) Благодарствую. Жалко, лишь один плюсик можно поставить в карму.

С меня пузырь ;)

Edited by Moonwalker

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

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.