parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Изменил v2 (все равно не работает)

Mizter Egoist 02.04.2015 16:18

@getThreads[params]
$result[^table::sql{
	SELECT
		id,
		sectionID,
		threadID,
		parentID,
		uID,
		date,
		mess,
		closed
	FROM
		questions
	WHERE
		1 = 1
		^if(def $params.sectionIDs){AND sectionID IN($params.sectionIDs)}
		^if(def $params.threadIDs){AND threadID = '$params.threadIDs'}
		^if(def $params.parentIDs){AND parentID IN($params.parentIDs)}
		^if(def $params.uIDs){AND uID IN($params.uIDs)}
	ORDER BY
		date DESC
}[
	^if(def $params.limit){
		$.limit(^params.limit.int(0))
	}
]]

@getFreeThreads[params]
$result[^table::sql{
	SELECT
		id,
		sectionID,
		threadID,
		parentID,
		uID,
		date,
		mess,
		closed
	FROM
		questions
	WHERE
		1 = 1
		^if(def $params.sectionIDs){AND sectionID IN($params.sectionIDs)}
		^if(def $params.threadIDs){AND threadID != '$params.threadIDs'}
		^if(def $params.parentIDs){AND parentID IN($params.parentIDs)}
		^if(def $params.uIDs){AND uID != '$params.uIDs'}
	ORDER BY
		date DESC
}[
	^if(def $params.limit){
		$.limit(^params.limit.int(0))
	}
]]

@getUsers[params]
$result[^table::sql{
	SELECT
		uID,
		gID,
		sID,
		login,
		email,
		forename,
		surname,
		registered
	FROM
		users
	WHERE
		1 = 1
		^if(def $params.uIDs){AND uID IN($params.uIDs)}
		^if(def $params.gIDs){AND gID IN($params.gIDs)}
		^if(def $params.sIDs){AND sID = '$params.sIDs'}
		^if(def $params.logins){AND login = '$params.logins'}
		^if(def $params.emails){AND email = '$params.emails'}
		^if(def $params.forenames){AND forename = '$params.forenames'}
		^if(def $params.surnames){AND surname = '$params.surnames'}
	ORDER BY
		registered DESC
}[
	^if(def $params.limit){
		$.limit(^params.limit.int(0))
	}
]]

@page[]
$questions[^getThreads[
	$.sectionIDs($advices.section.id)
	$.parentIDs(0)
]]
^questions.menu{
	$operator[^getThreads[
		$.threadIDs[$questions.threadID]
		$.uIDs($initialization.auth.uID)
		$.limit(1)
	]]
	^operator.menu{
		$Q[^getThreads[
			$.threadIDs[$operator.threadID]
			$.parentIDs(0)
		]]
		$U[^getUsers[
			$.uIDs(^Q.menu{$Q.uID})
		]]
		^U.menu{$U.uID $U.forename $U.surname}
		^Q.menu{<a href="/${form:url}?q=${Q.threadID}">$Q.mess</a><br>}
	}
	$operators[^getUsers[
		$.uIDs($initialization.auth.uID)
		$.gIDs(3)
	]]
	$close[^getThreads[
		$.threadIDs[$questions.threadID]
		$.uIDs(^operators.menu{$operators.uID})
	]]
	^close.menu{
		$prefree[^getThreads[
			$.sectionID($close.sectionID)
			$.threadIDs[$close.threadID]
			$.parentIDs(0)
		]]
		^prefree.menu{
			$free[^getFreeThreads[
				$.sectionID($prefree.sectionID)
				$.threadIDs[$prefree.threadID]
				$.parentIDs(0)
				$.uIDs($prefree.uID)
				$.limit(1)
			]]
			^free.menu{$free.threadID<br>}
		}
	}
}
$prefree вычисляет какой пользователь, в каком разделе и какой тред оставил и понимает, что оператор ему ответил, а $free должен исключать данные, которые пришли от $prefree.
Но увы, $free не работает.
Не знаю что с этим поделать.