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

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


Recommended Posts

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

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

 

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

 

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

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

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

 

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:

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

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

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

 

 

К примеру: Вывести данные из строки с 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

 

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

 

Хелп!

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

еще вопрос:

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

 

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

 

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

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

$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 запрос, одна, база.... как быть?....
Надіслати
Поділитися на інших сайтах

А так?

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'] . "'"); - не работает!
 
 
Где косяк???
Надіслати
Поділитися на інших сайтах

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

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

 

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

 

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

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

 

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

 

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

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

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

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

×
×
  • Створити...

Important Information

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