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

[Решено] Пару вопросов от новичка


giks

Recommended Posts

Добрый день. Знакомство с opencart я начал буквально вчера и есть пару вопросов на которые хотел бы получить ответы.

 

1. Увидев .tpl я подумал сразу о smarty, но оказалось используется нативный шаблонизатор php. Ок. Поизучав вьюхи, я увидел самый обычный код php+html. Так вот, в чем собственно суть таких шаблонов .tpl?  С таким успехом вьюхи можно было бы хранить в обычных .php файлах(как в том же yii). Что еще удивило, так это синтаксис циклов и условий((((( Такое ощущений что разработчики не слышали про альтернативный синтаксис который используется в связке с html. Ну да ладно.....

 

2.Вызов методов библиотек. Вроде все просто, НО если я вызываю библиотеку encryption->encrypt() то все норм и я получаю хэш, но если я вызываю,к примеру, user->getUserName() то получаю ошибку типа вызов non-object. Не могу понять почему так.....

 

3.Загадка для меня. Я указываю в админке адрес магаза часы работы и т.п. Где собственно эти значения лежат??? В файлах нет, значит в базе. Посмотрел базу-и там пусто. Как так вообще?!

 

4. ЧПУ. Если использовать uri c запросом route то все понятно ?route=папка/контроллер/метод. Но если перехожу на чпу то формируется какой то непонятный uri, хотя по идее должно быть типа host/controller/method. То есть как происходит вызов метода при чпу.

Спасибо за внимание!

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


1. ... Так вот, в чем собственно суть таких шаблонов .tpl? ...

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

3. ...

БД, таблица префикс_setting
Надіслати
Поділитися на інших сайтах


Добрый день. Знакомство с opencart я начал буквально вчера и есть пару вопросов на которые хотел бы получить ответы.

 

1. Увидев .tpl я подумал сразу о smarty, но оказалось используется нативный шаблонизатор php. Ок. Поизучав вьюхи, я увидел самый обычный код php+html. Так вот, в чем собственно суть таких шаблонов .tpl?  С таким успехом вьюхи можно было бы хранить в обычных .php файлах(как в том же yii). Что еще удивило, так это синтаксис циклов и условий((((( Такое ощущений что разработчики не слышали про альтернативный синтаксис который используется в связке с html. Ну да ладно.....

Условное разделение. Дайте любое расширение - лишь бы работало

Хм.. а чем Вам мешает нельтернативный синтаксис. Или Вы привыкли к альтернативному?

 

2.Вызов методов библиотек. Вроде все просто, НО если я вызываю библиотеку encryption->encrypt() то все норм и я получаю хэш, но если я вызываю,к примеру, user->getUserName() то получаю ошибку типа вызов non-object. Не могу понять почему так.....

потому что объекта user не существует во фронте

3.Загадка для меня. Я указываю в админке адрес магаза часы работы и т.п. Где собственно эти значения лежат??? В файлах нет, значит в базе. Посмотрел базу-и там пусто. Как так вообще?!

Ни можИт быть..

Смотрю в книгу - вижу...?

4. ЧПУ. Если использовать uri c запросом route то все понятно ?route=папка/контроллер/метод. Но если перехожу на чпу то формируется какой то непонятный uri, хотя по идее должно быть типа host/controller/method. То есть как происходит вызов метода при чпу.

Спасибо за внимание!

Это Вам так хочется? Насмотрелись на другие движки?
Надіслати
Поділитися на інших сайтах

1. кроме всего прочего:

- когда говорят "посмотри product.tpl" - однозначно речь идет о шаблоне карточки товара;

- а если сказать "посмотри product.php" - тут уже хрен его, о чем - то ли о контроллере, то ли о языковом файле (а их может быть несколько при разных языках), то ли о модели.

2. не все библиотеки подключаются в каталоге (во frontend).

3. ответили выше - "БД, таблица префикс_setting".

4. "как происходит вызов метода при чпу." --- посмотри файлы catalog/controller/common/

- seo_url.php

- seo_pro.php

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

Ухты, как оперативно откликнулись. Спасибо.

3. 3-й Вопрос решен спасибо. Просто как то по другому себе представлял структуру бд.

1. Про шаблонизаторы-я тоже не сторонник. Что касается синтаксиса, хз ИМХО {?> } ?> вещи такого плана это жесть. Выискивать эти скобки и манипуляции с открытием/закрытием тэгов php. Куда проще и понятнее с альт.синтакисом.

2. Про библиотеки-я создал свою библиотеку с hello world и тоже получил ошибку.

4. Ну работал с CI и YII там нативно controller/action/id хотя роутер можно как угодно переписать

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


2. Про библиотеки-я создал свою библиотеку с hello world и тоже получил ошибку.

 

 

Вы покажите как вы ее инициализируете, как вызываете?

 

Иначе - разговор ни о чем.

 

 

вот пример

$this->load->library('user');
$this->user = new User($this->registry);
Надіслати
Поділитися на інших сайтах

chukcha, хм...... в руководстве написано, что достаточно вызвать

$this->encryption->encrypt('say')
тобеш

$this->библиотека-> метод
И таким образом метод encrypt работает. Таким же макаром я и свою билиотеку загружал и получал ошибку. НО если

$this->load->library('test');
$test=new Test();
echo $test->say();
то все работает. Интересно в чем разница с encryption? или это какие то заморочки на уровне ядра
Надіслати
Поділитися на інших сайтах


Чтобы не плодить новую тему. создам здесь. Можете плиз объяснить вообще функциональность такого класса:

class Config {
private $data = array();

public function get($key) {
return (isset($this->data[$key]) ? $this->data[$key] : null);
}

public function set($key, $value) {
$this->data[$key] = $value;
}

public function has($key) {
return isset($this->data[$key]);
}

public function load($filename) {
$file = DIR_CONFIG . $filename . '.php';

if (file_exists($file)) {
$_ = array();

require($file);

$this->data = array_merge($this->data, $_);
} else {
trigger_error('Error: Could not load config ' . $filename . '!');
exit();
}
}
}

И вот кусок кода из контроллера header $data['telephone'] = $this->config->get('config_telephone');

Опишу как я понимаю процесс. Итак, вызывается метод библиотеки config который возвращает какое то значение в переменную $data['telephone'] , которая в свою очередь подгружается в вид.Все просто. Теперь сама библиотека. Обычный базовый класс,есть пустой массив,и функция get которая возвращает значение !!!ПУСТОГО!!! массива по ключу(он же аргумент функции).Вот тут у меня заминка, как так????ведь обычный пучтой массив. По идее тут мог бы быть какой-нибудь запрос к бд или еще что то.....Вообще поясните плиз. Я просто не в первый раз встречаю такие классы которые с виду ничего и не делают, но по факту что то такие делают)

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


то все работает. Интересно в чем разница с encryption? или это какие то заморочки на уровне ядра

до вызова 

$this->encryption->encrypt('say')

выше по коду

require_once(DIR_SYSTEM . 'library/encryption.php');

и

//  Encryption
$registry->set('encryption', new Encryption($config->get('config_encryption')));
Надіслати
Поділитися на інших сайтах

...

Обычный базовый класс,есть пустой массив,и функция get которая возвращает значение !!!ПУСТОГО!!! массива по ключу(он же аргумент функции).Вот тут у меня заминка, как так????ведь обычный пучтой массив. По идее тут мог бы быть какой-нибудь запрос к бд или еще что то.....Вообще поясните плиз. Я просто не в первый раз встречаю такие классы которые с виду ничего и не делают, но по факту что то такие делают)

ну массив не долго пустует.

выше по коду загрузка настроек из базы например 

// Settings
$query = $db->query("SELECT * FROM " . DB_PREFIX . "setting WHERE store_id = '0' OR store_id = '" . (int)$config->get('config_store_id') . "' ORDER BY store_id ASC");

foreach ($query->rows as $setting) {
	if (!$setting['serialized']) {
		$config->set($setting['key'], $setting['value']);
	} else {
		$config->set($setting['key'], unserialize($setting['value']));
	}
}

 

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

... ИМХО {?> } ?> вещи такого плана это жесть. Выискивать эти скобки и манипуляции с открытием/закрытием тэгов php. ...

Любые IDE с подсветкой синтаксиса решают эту неприятность. Змінено користувачем destreser
Надіслати
Поділитися на інших сайтах


Такое ощущений что разработчики не слышали про альтернативный синтаксис который используется в связке с html. Ну да ладно.....

Такое ощущений что каждый кто знакомство с opencart начал буквально вчера считает себя умнее разработчиков. ну да ладно...

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

 

Такое ощущений что каждый кто знакомство с opencart начал буквально вчера считает себя умнее разработчиков. ну да ладно...

Я так не считаю. тем более что я не программист) Просто высказал свое мнение.

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


Возник вопрос по работе модуля html-content(opencart 2). Я так понимаю его суть преобразовывать html тэги в готовое отображение? или этот модуль просто позволяет создавать обычный текст в любом месте макета? Потому что первый вариант я попробовал и просто выводится текст как есть, может я что то не так делаю или просто он работает по варианту 2.

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


НЕ НАДО ЛЕПИТЬ МУХ, КОТЛЕТЫ И ПОМЕТ В ОДНУ ТЕМУ.

закрыто.

Возник вопрос по работе модуля html-content(opencart 2). Я так понимаю его суть преобразовывать html тэги в готовое отображение? или этот модуль просто позволяет создавать обычный текст в любом месте макета? Потому что первый вариант я попробовал и просто выводится текст как есть, может я что то не так делаю или просто он работает по варианту 2.

в песочницу с такими вопросами.

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

Гість
Ця тема закрита для публікації повідомлень.
  • Зараз на сторінці   0 користувачів

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

Important Information

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