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

От начинающих -> профессионалам

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

Хотелось бы узнать у вас, есть ли более-менее приличная и доходчивая литература по программированию в opencart?

буду рад любой информации... желательно на русском, если есть уроки, то тоже отлично!

 

У меня большие проблемы с контроллерами (реализация кода), поэтому пишу с помощью костылей "говнокод" в *.tpl,  что в корне не верно!

 

Хотелось бы научиться писать правильно!

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


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

смотри реализацию стандартных контроллеров.

http://docs.opencart.com

http://stackoverflow.com/questions/13478995/how-to-become-an-opencart-guru/13484904#13484904

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


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

Втом то и дело, что вроде что-то  понятно, а у меня никак не работает!

 

Спасибо.

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


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

Проблема такая...

 

1. к примеру: если в *tpl написать такой код, то все работает.

 

<?php
$host="localhost";
$user="**************";
$password="*****************";
$mybase="*****************";
$mytable="blog_data";
 
if (!mysql_connect($host, $user, $password))
{
echo "Error connection to MySQL server<br>";
echo "ERROR ".mysql_errno()." ".mysql_error()."\n";
}
mysql_select_db($mybase);
 
$my_query = mysql_query("SELECT * FROM " . $mytable)
or die(mysql_error());
 
while($data = mysql_fetch_array($my_query))
echo '<tr>';
echo '<td class=right height="16">' . $data['id'] . '</td>';
echo '<td class="center">' . $data['date'] . '</td>';
echo '<td class="left">' . $data['info_rus'] . '</td>';
echo '<td class="center">' . $data['on_off'] . '</td>';
echo '<td class="center"><a href="?blogedit&id='.$data['id'].'"><img src="view/image/edit.png" border="0"</a></td>';
echo '<td class="center"><a href="index.php?route=module/blog&token=,&id='.$data['id'].'"><img src="view/image/del.png" border="0"</a></td>';
echo '</tr>';
}
mysql_close();
?>
 
2. если все это пытаюсь наковырять в контроллере - то не работает, всю голову сломал.... уже сутки бьюсь! Из примеров понять не получается....
Может ли кто-нибудь Привести пример для моего случая, чтобы у меня в голове прояснилось.....

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


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

контроллер это набор функций  - обработчик данных
файл tpl - это шаблоны, в которых как правило выводятся уже  переменные из контроллера - "динамические данные" так сказать, которые могут меняться в зависимости от условий обработанных в контроллере

например вот код из контроллера с хлебными крошками для категорий:

$this->data['breadcrumbs'][] = array(
				'text'      => $category_info['name'],
				'href'      => $this->url->link('product/category', 'path=' . $this->request->get['path']),
				'separator' => $this->language->get('text_separator')
			);

где переменной text задано - имя категории

href - это ссылка на категорию

separator - стрелочка (декорация )

а все это контролируется функцией перебора массива array(

ну а в шаблоне мы уже выводим следующий код:
 

 <?php foreach ($breadcrumbs as $breadcrumb) { ?>
    <?php echo $breadcrumb['separator']; ?><a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a>
    <?php } ?>

где каждый отрезок начинающийся с <?php и заканчивающийся ?> - является переменной .

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


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

контроллер это набор функций  - обработчик данных

файл tpl - это шаблоны, в которых как правило выводятся уже  переменные из контроллера - "динамические данные" так сказать, которые могут меняться в зависимости от условий обработанных в контроллере

например вот код из контроллера с хлебными крошками для категорий:

$this->data['breadcrumbs'][] = array(
				'text'      => $category_info['name'],
				'href'      => $this->url->link('product/category', 'path=' . $this->request->get['path']),
				'separator' => $this->language->get('text_separator')
			);

где переменной text задано - имя категории

href - это ссылка на категорию

separator - стрелочка (декорация )

а все это контролируется функцией перебора массива array(

ну а в шаблоне мы уже выводим следующий код:

 

 <?php foreach ($breadcrumbs as $breadcrumb) { ?>
    <?php echo $breadcrumb['separator']; ?><a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a>
    <?php } ?>

где каждый отрезок начинающийся с <?php и заканчивающийся ?> - является переменной .

Спасибо, но с крошками вроде все понятно, не получается работать с данными из таблиц. :ugeek:

Где-то я что-то упускаю.....

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


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

Изучаем model

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


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

Изучаем model

Ага, уже сутки... а у меня не работает...

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


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

Где я что не понимаю......

 

 

К примеру: Вывести данные из строки с id=1. Данные: id, date, on_off, info_rus.

В контроллере:

$info_data = array();
 
$my_query = $this->db->query("SELECT * FROM ". DB_PREFIX . "blog_data WHERE id = 1");
 
foreach ($my_query->rows as $result) {
$info_data[] = array(
'id' => $result['id'],
'date' => $result['date'],
'info_rus' => $result['info_rus'],
'on_off' => $result['on_off']
);
}

 
 
 
В шаблоне:
 
<?php echo $info_data['id']; ?>
<?php echo $info_data['date']; ?>
<?php echo $info_data['info_rus']; ?>
<?php echo $info_data['on_off']; ?>
 
 
В итоге не работает!
Notice: Undefined variable: info_data

 

Где же я косячу???? 

 

Хелп!

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


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

$this->data['info_data']=$info_data;

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


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

Спасибо, но пока еще не работает...

 

post-680463-0-59549800-1394389035_thumb.jpg

$this->data['info_data']=$info_data;

теперь 

Notice: Undefined index: id

Notice: Undefined index: date

 

итд....

 

 

вот так и не понимаю...

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


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

Спасибо ВСЕМ!!!!!! ОГРОМНОЕ!!!!

Заработало....

 
$this->data['info_data'] = array(
'id' => $result['id'],
'date' => $result['date'],
'info_rus' => $result['info_rus'],
'on_off' => $result['on_off']
);

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


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

еще вопрос:

Можно ли в моем случае вывести не одну строку с данными с указанным id, а все строки таблицы со всеми id?

 

Понимаю, что цикл нужно задать в шаблоне через foreach, но у меня опять не работает....

 

можно ли пример?

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


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

$my_query = $this->db->query("SELECT * FROM ". DB_PREFIX . "blog_data");

$this->data['info_data'] = $my_query->rows;

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


Ссылка на сообщение
Поделиться на другие сайты
$my_query = $this->db->query("SELECT * FROM ". DB_PREFIX . "blog_data");
$this->data['info_data'] = $my_query->rows;

Вери благодарен!

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


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

Сегодня столкнулся с ещё одной проблемкой...

не могу записать в таблицу текущую дату и время, возможно проблема и у меня на машине, а возможно и нет...

 

 

$this->db->query("INSERT INTO oc_blog_data SET  
date = 'CURRENT_TIMESTAMP',
name = '" . $this->request->post['name'] . "',
on_off = '" . $this->request->post['on_off'] . "',
pr_on_off = '" . $this->request->post['pr_on_off'] . "',
pr_simb_or_word = '" . $this->request->post['pr_simb_or_word'] . "',
pr_limit = '" . $this->request->post['pr_limit'] . "',
info_rus = '" . $this->request->post['info_rus'] . "',
teg_h1 = '" . $this->request->post['teg_h1'] . "',
teg_title = '" . $this->request->post['teg_title'] . "',
teg_keywords = '" . $this->request->post['teg_keywords'] . "',
teg_description = '" . $this->request->post['teg_description'] . "'
  ");
 
в итоге в колонку date пишутся нули!
 
 
причем если в шаблоне запустить...
 
mysql_query("INSERT INTO $table (date, name, on_off, pr_on_off, pr_simb_or_word, pr_limit, info_rus, teg_h1, teg_title, teg_keywords, teg_description)
VALUES (CURRENT_TIMESTAMP, 'Заголовок', 'on', 'on', 'simb', '200', 'Это информация, точнее сам текст всего этого самого, бла, бла, бла.', 'Teg H1', 'Teg Title', 'Teg Keywords', 'Teg Description'
)");
 
то все нормально!
 
Вроде один SQL запрос, одна, база.... как быть?....

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


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

'CURRENT_TIMESTAMP' != CURRENT_TIMESTAMP

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


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

А так?

date = NOW(),

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


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

'CURRENT_TIMESTAMP' != CURRENT_TIMESTAMP

 Извини - но непонял!

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


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

А так?

date = NOW(),

Да, Так все сразу получилось!!!! Спасибо!     изучать и изучать!

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


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

......и в который раз засыпаюсь на ерунде! трачу немеренное количество времени.....

 
1). $query = $this->db->query("SELECT * FROM ". DB_PREFIX . "blog_data WHERE id = 5"); - работает!
 
2). $this->data['url_id'] = $this->request->get['id'];
     $query = $this->db->query("SELECT * FROM ". DB_PREFIX . "blog_data WHERE id = '" . (int)$url_id . "'"); - не работает!
 
3). $query = $this->db->query("SELECT * FROM ". DB_PREFIX . "blog_data WHERE id = '" . $this->request->get['id'] . "'"); - не работает!
 
 
Где косяк???

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


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

Лишние кавычки да?)

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


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

Лишние кавычки да?)

угу 8-)))

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


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

Задача такая!

делаю к примеру запрос:

 

$query = $this->db->query("SELECT * FROM ". DB_PREFIX . "blog_data WHERE id = " . $this->request->get['post_id'] . "");

 

где post_id к примеру = 1,

а в таблице такого id нет!

 

как мне сделать на условие на наличие ошибки в запросе?

 

заранее огромное спасибо...

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

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

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

×

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

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