Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Модули » Модуль User status 1.0, как реанимировать под версию 13.0?

Модуль User status 1.0, как реанимировать под версию 13.0?


     02.10.2018    Все вопросы » Модули    208

вопрос
Как заставить работать старый модуль модуль, вот код


<?php

if($_POST['u_status']) {
	@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 );
	@session_start();
	define( 'DATALIFEENGINE', true );
	define( 'ROOT_DIR', substr( dirname(  __FILE__ ), 0, -15 ) );
	define( 'ENGINE_DIR', ROOT_DIR . '/engine' );

	include ENGINE_DIR . '/data/config.php';
	require_once ENGINE_DIR . '/classes/mysql.php';
	require_once ENGINE_DIR . '/data/dbconfig.php';
	require_once ENGINE_DIR . '/modules/functions.php';
	require_once ENGINE_DIR . '/modules/sitelogin.php';
	@header("Content-type: text/html; charset={$config['charset']}");

	if($member_id['user_group']==5) die('access denid!');

	#*** Редактирование статуса ***#
	if($_POST['u_status']=="edit") {
echo <<<HTML
<input type="text" id="user_status_text" value="{$member_id['user_status']}" style="width:100%;" /> <input class="bbcodes_poll" type="button" onclick="user_status('save'); return !1;" value="Сохранить" />
HTML;
	#*** Сохранение статуса ***#
	} elseif($_POST['u_status']=="save") {
		$text = htmlspecialchars(iconv("utf-8","windows-1251", $_POST['text']));

		$sql_text = addslashes($text);
		$db->query("UPDATE ".USERPREFIX."_users SET user_status='{$sql_text}' WHERE user_id='{$member_id['user_id']}'");
		if(!$text) $text = "Установить статус";
		echo "<a href=\"#\" onclick=\"user_status('edit'); return !1;\">{$text}</a>";
	}


} else {
	if($name==$member_id['name']) {
		if(!$member_id['user_status']) $member_id['user_status'] = "Установить статус";
		echo "<div id=\"user_status\"><a href=\"#\" onclick=\"user_status('edit'); return !1;\">{$member_id['user_status']}</a></div>";
echo <<<HTML
<script>
function user_status(a) {
	if(a=="save") text = $('#user_status_text').val();
	else text = "";
	$.post("/engine/modules/user_status.php", {u_status:a, text:text},
		function(data){
			$('#user_status').html(data);
		}
	);
}
</script>
HTML;

	} else {
		$name = addslashes($name);
		$status = $db->super_query("SELECT user_status FROM ".USERPREFIX."_users WHERE name='{$name}'");
		echo $status['user_status'];
	}
}
?>

вывод строкой
{include file="engine/modules/user_status.php?name={usertitle}"}

Модуль написан под версию 8.*-9.*
Нужно запустить под версию 13.*

Ответил: Flash



<?php

if($_POST['u_status']) {
	@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 );
	@session_start();
	define( 'DATALIFEENGINE', true );
	define( 'ROOT_DIR', substr( dirname( dirname( __FILE__ ) ), 0, -15 ) );
	define( 'ENGINE_DIR', ROOT_DIR . '/engine' );

	include ENGINE_DIR . '/data/config.php';
	require_once ENGINE_DIR . '/classes/mysql.php';
	require_once ENGINE_DIR . '/data/dbconfig.php';
	require_once ENGINE_DIR . '/modules/functions.php';
	require_once ENGINE_DIR . '/modules/sitelogin.php';
	@header("Content-type: text/html; charset={$config['charset']}");

	if($member_id['user_group']==5) die('access denid!');

	#*** Редактирование статуса ***#
	if($_POST['u_status']=="edit") {
echo <<<HTML
<input type="text" id="user_status_text" value="{$member_id['user_status']}" style="width:100%;" /> <input class="bbcodes_poll" type="button" onclick="user_status('save'); return !1;" value="Сохранить" />
HTML;
	#*** Сохранение статуса ***#
	} elseif($_POST['u_status']=="save") {
		$text = htmlspecialchars($_POST['text']);

		$sql_text = addslashes($text);
		$db->query("UPDATE ".USERPREFIX."_users SET user_status='{$sql_text}' WHERE user_id='{$member_id['user_id']}'");
		if(!$text) $text = "Установить статус";
		echo "<a href=\"#\" onclick=\"user_status('edit'); return !1;\">{$text}</a>";
	}


} else {
	if($param==$member_id['name']) {
		if(!$member_id['user_status']) $member_id['user_status'] = "Установить статус";
		echo "<div id=\"user_status\"><a href=\"#\" onclick=\"user_status('edit'); return !1;\">{$member_id['user_status']}</a></div>";
echo <<<HTML
<script>
function user_status(a) {
	if(a=="save") text = $('#user_status_text').val();
	else text = "";
	$.post("/engine/modules/user_status/user_status.php", {u_status:a, text:text},
		function(data){
			$('#user_status').html(data);
		}
	);
}
</script>
HTML;

	} else {
		$param = addslashes($param);
		$status = $db->super_query("SELECT user_status FROM ".USERPREFIX."_users WHERE name='{$param}'");
		echo $status['user_status'];
	}
}
?>


файл должен быть расположен так - /engine/modules/user_status/user_status.php
в этой же папке файл ".htaccess"

<Files "user_status.php">
	Order Deny,Allow
	Allow from all
</files>


вызов модуля в шаблоне "userinfo.tpl"
{include file="engine/modules/user_status/user_status.php?param={usertitle}"}

3 комментария

Hander
Юзер

Hander - 4 октября 2018 14:06 -

Спасибо большое. Все работает отлично!

BYMERPRO
Юзер

BYMERPRO - 19 ноября 2018 01:45 -

И вправду все работает идеально, но если при смене статуса нажать на Enter вместо кнопки "Сохранить" то страница просто перезагружается, можно это как то исправить?

BYMERPRO
Юзер

BYMERPRO - 25 ноября 2018 14:40 -

BYMERPRO,

Если кому интересно нужно на кнопке сохранить в type прописать submit

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх