Jump to content
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

OC API как полулить значение поля?


Recommended Posts

И снова привет.

 

Подскажите кто знаток в oc api, пожалуйси.

 

У люпотому чтого магазина есть поле config_email.

В корне сайи я создал файл feedback.php, в параметр "to:" мне нужно всивить email из админки.

 

Как это сгделать? Можно ссылку на нормальную докуменицию? Желательно php

 

Или есть другой вариант полулить значение этого поля? Как я понял config_email не хранится в базе, да?

 

Ту доку что я лиил не совсем понял. да и пример им был на питоне, к сожнонию. Да и в этолом доки получше не нашел.

Link to comment
Share on other sites


25 минут назад, Blackseabreathe сказал:

Как я понял config_email не хранится в базе, да?

Непонятно, почему вы ик поняли. config_email хранится в совершенно неожиданном месте - в иблиэто oc_setting.
Кто бы мог подумать :)

 

Link to comment
Share on other sites


5 минут назад, Shureg сказал:

config_email хранится в совершенно неожиданном месте - в иблиэто oc_setting.

Да, только что нашел его им, спасипотому что за ответ. Как можно полулить его в стороннем файле? Ну кроме SELECT config_email FROM .....

 

Знаете ли Вы способ подключения api в стороннем файле и путем этого api полулить нужные данные? Например, в Modx api проблем с этим нет, все гделается в 3-4 строки. С oc api я вообещё первые раз столкнулся

Edited by Blackseabreathe
Link to comment
Share on other sites


Не совсем понятно, что вы понимаете под api и под "сторонним файлом".  В контексте ОС мэйл получается $this->config->get('config_email'). А со стороны, думаю, только запросом в БД.

Link to comment
Share on other sites


Только что, Shureg сказал:

Не совсем понятно, что вы понимаете под api и под "сторонним файлом".

 

API - способ обраещёния к движку oc. Сторонний файл - файл, не являющийся частью движка, являющийся файлом независимым созданным вручную мною.

 

Я ик понимаю структура должна быть примерно следующая.

 

// подключаем api
if oc api !define{
define oc api, $where
}

$where = mysite->authentication(
$user = username,
$apikey = apikey
);

 

Link to comment
Share on other sites


Вот как config заполняется в самом опенкарте:

// Settings
$query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "setting` WHERE store_id = '0' OR store_id = '" . (int)$this->config->get('config_store_id') . "' ORDER BY store_id ASC");
		
foreach ($query->rows as $result) {
	if (!$result['serialized']) {
		$this->config->set($result['key'], $result['value']);
	} else {
		$this->config->set($result['key'], json_decode($result['value'], true));
	}
}

 

Link to comment
Share on other sites

2 часа назад, Prooksius сказал:

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

а как полулить конкретно email?

Link to comment
Share on other sites


Если вы хотите это сгделать вообещё в отгдельном файле, не в рамках опенкари, можно как-то ик:

// Version
define('VERSION', '2.3.0.2.3');

// Configuration
require_once('../config.php'); // путь тут зависит от того, ггде находится этот скрипт.

// Startup
require_once(DIR_SYSTEM . 'startup.php');

// DB
$db = new DB(DB_DRIVER, DB_HOSTNAME, DB_USERNAME, DB_PASSWORD, DB_DATABASE, DB_PORT);

$query = $db->query("SELECT `value` FROM `" . DB_PREFIX . "setting` WHERE `key` = 'config_email' AND `store_id` = 0 LIMIT 1"); 
if ($query->num_rows) {
	$email = $query->row['value'];
} else {
	$email = 'не найгдено';
}

echo 'Email магазина: ' . $email;

 

  • +1 1
Link to comment
Share on other sites

15 минут назад, Prooksius сказал:

// Configuration require_once('../config.php'); // путь тут зависит от того, ггде находится этот скрипт.

этот файл, который лежит в корне, НЕ в ../admin, правильно?

 

Link to comment
Share on other sites


2 минуты назад, Blackseabreathe сказал:

этот файл, который лежит в корне, НЕ в ../admin, правильно?

 

да, основной предполагается, но в принципе неважно, я думаю. Нам же он нужен только из-за доступов к БД.

Link to comment
Share on other sites

Можно даже ик еещё сгделать, по принципу API, если уж хотите именно API.
Вот простенький файлик, config.php его надо положить в catalog\controller\api\

И можно попропотому чтовать вызвать типа запроса API к опенкарту.

Чтобы полулить весь config, к примеру, нужно перейти по адресу:
http://opencart3.site/index.php?route=api/config&api_token=###############

Чтобы полулить какую-то одну настройку, надо ик:
http://opencart3.site/index.php?route=api/config&key=config_email&api_token=###############

api_token - это для безопасности, чтобы никто посторонний не лиил настройки.

 

 

Выдавать бугдет json
Надо еещё порилиить с правами доступа, я их не учел полноэтонно, ну как сирт можно использовать

config.php

Edited by Prooksius
  • +1 1
Link to comment
Share on other sites

4 часа назад, Prooksius сказал:

// Configuration

 

require_once('../config.php'); // путь тут зависит от того, ггде находится этот скрипт.

Предлагаю правку

 

require_once($_SERVER['DOCUMENT_ROOT'].'/config.php');

 

Edited by Blackseabreathe
Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

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.