Перейти к публикации

Вызвать модуль с передачей в него переменных и классов DLE


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

Здравствуйте,

делаю систему PUSH уведомлений. Встал вопрос насчет удобной кнопочки на страничке новости, по нажатию которой редактор будет пушить уведомления с текстом и картинкой из этой новости.

 

Естественно кнопочка будет видна только редакторам и по нажатию на нее будет идти AJAX запрос на сервер. С этим проблемы нет, но мне нужно в стороннем скрипте сделать проверку прав пользователя, который запускает этот самый скрипт.

 

Так как очень мало информации и примеров по созданию модулей, вопрос в следующем:

Возможно ли получить в стороннем файле скрипта массив переменных и классов DLE, при том, что вызов этого скрипта будет происходить НЕ из шаблона, и НЕ из скрипта DLE?

 

Если этот вариант не предусмотрен, какие минимальные классы необходимо подключить и какие переменные создать, чтобы проверить права пользователя на вызов скрипта?

Заранее благодарен.

Изменено пользователем YuriBtr
Ссылка на сообщение
Поделиться на других сайтах
<?php
@error_reporting ( E_ALL ^ E_WARNING ^ E_NOTICE );
@ini_set ( 'display_errors', true );
@ini_set ( 'html_errors', false );
@ini_set ( 'error_reporting', E_ALL ^ E_WARNING ^ E_NOTICE );

define( 'DATALIFEENGINE', true );
define( 'ROOT_DIR', substr( dirname(  __FILE__ ), 0, -12 ) );
define( 'ENGINE_DIR', ROOT_DIR . '/engine' );

include ENGINE_DIR . '/data/config.php';

date_default_timezone_set ( $config['date_adjust'] );

require_once ENGINE_DIR . '/classes/mysql.php';
require_once ENGINE_DIR . '/data/dbconfig.php';
require_once ENGINE_DIR . '/modules/functions.php';

dle_session();

//################# Определение групп пользователей
$user_group = get_vars( "usergroup" );

if( ! $user_group ) {
	$user_group = array ();
	
	$db->query( "SELECT * FROM " . USERPREFIX . "_usergroups ORDER BY id ASC" );
	
	while ( $row = $db->get_row() ) {
		
		$user_group[$row['id']] = array ();
		
		foreach ( $row as $key => $value ) {
			$user_group[$row['id']][$key] = stripslashes($value);
		}
	
	}
	set_vars( "usergroup", $user_group );
	$db->free();
}

include_once ROOT_DIR . '/language/' . $config['langs'] . '/website.lng';

$config['charset'] = ($lang['charset'] != '') ? $lang['charset'] : $config['charset'];
$is_logged = false;
$member_id = array ();

require_once ENGINE_DIR . '/modules/sitelogin.php';

if( ! $is_logged ) {
	$member_id['user_group'] = 5;
}

Взято с /engine/ajax/addcomments.php

Ссылка на сообщение
Поделиться на других сайтах
В 09.05.2018 в 10:45, YuriBtr сказал:

Понятно, я так и предполагал сделать, если не найдется другое решение.

Другого решения нет, т.к. в DLE тот же ajax вызывается не из ядра системы, а из отдельно лежащих php файлов.
Типо нагрузка меньше, но костылей больше.

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

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...