Jump to content
Sign in to follow this  
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. То есть как происходит вызов метода при чпу.

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

Share this post


Link to post
Share on other sites

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

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

3. ...

БД, таблица префикс_setting

Share this post


Link to post
Share on other sites

Добрый день. Знакомство с 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. То есть как происходит вызов метода при чпу.

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

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

Share this post


Link to post
Share on other sites

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

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

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

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

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

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

- seo_url.php

- seo_pro.php

Share this post


Link to post
Share on other sites

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

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

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

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

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

Share this post


Link to post
Share on other sites
2. Про библиотеки-я создал свою библиотеку с hello world и тоже получил ошибку.

 

 

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

 

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

 

 

вот пример

$this->load->library('user');
$this->user = new User($this->registry);

Share this post


Link to post
Share on other sites

2. в раздел FAQ загляни.

Share this post


Link to post
Share on other sites

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

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

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

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

Share this post


Link to post
Share on other sites

вызвать метод из библиотеки != загрузить библиотеку для дальнейшего использования.

смотри в FAQ.

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

до вызова 

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

выше по коду

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

и

//  Encryption
$registry->set('encryption', new Encryption($config->get('config_encryption')));

Share this post


Link to post
Share on other sites

...

Обычный базовый класс,есть пустой массив,и функция 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']));
	}
}

 

Share this post


Link to post
Share on other sites

ага понял. я и забыл про index.php))) надо поизучать. после yii надо переучиываться.

Share this post


Link to post
Share on other sites

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

Любые IDE с подсветкой синтаксиса решают эту неприятность. Edited by destreser

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

 

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

закрыто.

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

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

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.