[dev] [commit] r1070 - phplib phplib/models templates/admin templates/common wwwbase/admin
automailer at dexonline.ro
automailer at dexonline.ro
Tue Jan 28 17:03:03 EET 2014
Author: cata
Date: Tue Jan 28 17:03:03 2014
New Revision: 1070
Log:
Add pagination to the moderator definition searches.
Fixes #291.
Added:
templates/admin/definitionLookup.ihtml
Modified:
phplib/FileCache.php
phplib/models/Definition.php
templates/admin/index.ihtml
templates/common/sourceDropDown.ihtml
wwwbase/admin/definitionLookup.php
wwwbase/admin/viewPendingDefinitions.php
Modified: phplib/FileCache.php
==============================================================================
--- phplib/FileCache.php Mon Jan 27 12:50:38 2014 (r1069)
+++ phplib/FileCache.php Tue Jan 28 17:03:03 2014 (r1070)
@@ -80,9 +80,9 @@
return self::get($key);
}
- static function putModeratorQueryResults($ip, $defIds) {
+ static function putModeratorQueryResults($ip, $queryData) {
$key = self::getKeyForModeratorIp($ip);
- self::put($key, $defIds);
+ self::put($key, $queryData);
}
}
Modified: phplib/models/Definition.php
==============================================================================
--- phplib/models/Definition.php Mon Jan 27 12:50:38 2014 (r1069)
+++ phplib/models/Definition.php Tue Jan 28 17:03:03 2014 (r1070)
@@ -210,22 +210,23 @@
// file_put_contents("/var/log/dex-highlight.log", $logEntry, FILE_APPEND | LOCK_EX);
}
- public static function searchModerator($cuv, $hasDiacritics, $sourceId, $status, $userId, $beginTime, $endTime) {
+ public static function searchModerator($cuv, $hasDiacritics, $sourceId, $status, $userId, $beginTime, $endTime, $page, $resultsPerPage) {
$regexp = StringUtil::dexRegexpToMysqlRegexp($cuv);
$sourceClause = $sourceId ? "and Definition.sourceId = $sourceId" : '';
$userClause = $userId ? "and Definition.userId = $userId" : '';
+ $offset = ($page - 1) * $resultsPerPage;
if ($status == ST_DELETED) {
// Deleted definitions are not associated with any lexem
$collate = $hasDiacritics ? '' : 'collate utf8_general_ci';
return Model::factory('Definition')
->raw_query("select * from Definition where lexicon $collate $regexp and status = " . ST_DELETED . " and createDate between $beginTime and $endTime " .
- "$sourceClause $userClause order by lexicon, sourceId limit 500", null)->find_many();
+ "$sourceClause $userClause order by lexicon, sourceId limit $offset, $resultsPerPage", null)->find_many();
} else {
$query = "select distinct Definition.* from Lexem join LexemDefinitionMap on Lexem.id = LexemDefinitionMap.lexemId " .
"join Definition on LexemDefinitionMap.definitionId = Definition.id where formNoAccent $regexp " .
"and Definition.status = $status and Definition.createDate >= $beginTime and Definition.createDate <= $endTime " .
- "$sourceClause $userClause order by lexicon, sourceId limit 500";
+ "$sourceClause $userClause order by lexicon, sourceId limit $offset, $resultsPerPage";
return Model::factory('Definition')->raw_query($query, null)->find_many();
}
}
Added: templates/admin/definitionLookup.ihtml
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ templates/admin/definitionLookup.ihtml Tue Jan 28 17:03:03 2014 (r1070)
@@ -0,0 +1,16 @@
+<form action="definitionLookup.php" method="post">
+ {foreach from=$args key=name item=value}
+ <input type="hidden" name="{$name}" value="{$value}">
+ {/foreach}
+ <input type="submit" name="prevPageButton" value="<< înapoi">
+ <b>pagina {$args.page}</b>
+ <input type="submit" name="nextPageButton" value="înainte >>">
+ <br><br>
+
+ {include file="admin/definitionList.ihtml"}
+ {if (count($searchResults))}
+ <input type="submit" name="prevPageButton" value="<< înapoi">
+ <b>pagina {$args.page}</b>
+ <input type="submit" name="nextPageButton" value="înainte >>">
+ {/if}
+</form>
Modified: templates/admin/index.ihtml
==============================================================================
--- templates/admin/index.ihtml Mon Jan 27 12:50:38 2014 (r1069)
+++ templates/admin/index.ihtml Tue Jan 28 17:03:03 2014 (r1070)
@@ -114,7 +114,7 @@
trimise de:
<input type="text" name="nick" size="10" value=""/>
sursa:
- {include file="common/sourceDropDown.ihtml" sources=$allModeratorSources}
+ {include file="common/sourceDropDown.ihtml" name="sourceId" sources=$allModeratorSources}
<br/>
între
{assign var="nextYear" value=$currentYear+1}
Modified: templates/common/sourceDropDown.ihtml
==============================================================================
--- templates/common/sourceDropDown.ihtml Mon Jan 27 12:50:38 2014 (r1069)
+++ templates/common/sourceDropDown.ihtml Tue Jan 28 17:03:03 2014 (r1070)
@@ -1,8 +1,9 @@
+{assign var="name" value=$name|default:'source'}
{assign var="skipAnySource" value=$skipAnySource|default:''}
{assign var="src_selected" value=$src_selected|default:null}
{assign var="urlName" value=$urlName|default:false}
{assign var="autosubmit" value=$autosubmit|default:false}
-<select name="source" id="sourceDropDown" {if $autosubmit}onchange="this.form.submit();"{/if}>
+<select name="{$name}" id="sourceDropDown" {if $autosubmit}onchange="this.form.submit();"{/if}>
{if !$skipAnySource}
<option value="">Toate sursele</option>
{/if}
Modified: wwwbase/admin/definitionLookup.php
==============================================================================
--- wwwbase/admin/definitionLookup.php Mon Jan 27 12:50:38 2014 (r1069)
+++ wwwbase/admin/definitionLookup.php Tue Jan 28 17:03:03 2014 (r1070)
@@ -4,23 +4,34 @@
util_assertNotMirror();
RecentLink::createOrUpdate('Căutare definiții');
+define('RESULTS_PER_PAGE', 500);
+
$name = util_getRequestParameter('name');
$status = util_getRequestIntParameter('status');
$nick = util_getRequestParameter('nick');
-$sourceId = util_getRequestIntParameter('source');
+$sourceId = util_getRequestIntParameter('sourceId');
$yr1 = util_getRequestIntParameter('yr1');
$mo1 = util_getRequestIntParameter('mo1');
$da1 = util_getRequestIntParameter('da1');
$yr2 = util_getRequestIntParameter('yr2');
$mo2 = util_getRequestIntParameter('mo2');
$da2 = util_getRequestIntParameter('da2');
+$page = util_getRequestIntParameterWithDefault('page', 1);
+$prevPageButton = util_getRequestParameter('prevPageButton');
+$nextPageButton = util_getRequestParameter('nextPageButton');
$searchButton = util_getRequestParameter('searchButton');
$ip = $_SERVER['REMOTE_ADDR'];
// Execute query and display results
// Convert wildcards to mysql format
-if ($searchButton) {
+if ($searchButton || $prevPageButton || $nextPageButton) {
+ if ($prevPageButton && $page > 1) {
+ $page--;
+ }
+ if ($nextPageButton) {
+ $page++;
+ }
$name = StringUtil::cleanupQuery($name);
$arr = StringUtil::analyzeQuery($name);
$hasDiacritics = $arr[0];
@@ -39,17 +50,31 @@
$endTime = mktime(23, 59, 59, $mo2, $da2, $yr2);
// Query the database and output the results
- $defs = Definition::searchModerator($name, $hasDiacritics, $sourceId, $status, $userId, $beginTime, $endTime);
+ $defs = Definition::searchModerator($name, $hasDiacritics, $sourceId, $status, $userId, $beginTime, $endTime, $page, RESULTS_PER_PAGE);
$searchResults = SearchResult::mapDefinitionArray($defs);
- FileCache::putModeratorQueryResults($ip, $searchResults);
+
+ $args = array('name' => $name,
+ 'status' => $status,
+ 'nick' => $nick,
+ 'sourceId' => $sourceId,
+ 'yr1' => $yr1,
+ 'mo1' => $mo1,
+ 'da1' => $da1,
+ 'yr2' => $yr2,
+ 'mo2' => $mo2,
+ 'da2' => $da2,
+ 'page' => $page);
+
+ FileCache::putModeratorQueryResults($ip, array($searchResults, $args));
} else {
- $searchResults = FileCache::getModeratorQueryResults($ip);
+ list($searchResults, $args) = FileCache::getModeratorQueryResults($ip);
}
SmartyWrap::assign('searchResults', $searchResults);
+SmartyWrap::assign('args', $args);
SmartyWrap::assign('sectionTitle', 'Căutare definiții');
SmartyWrap::assign('sectionCount', count($searchResults));
SmartyWrap::assign('allStatuses', util_getAllStatuses());
SmartyWrap::assign('recentLinks', RecentLink::loadForUser());
-SmartyWrap::displayAdminPage('admin/definitionList.ihtml');
+SmartyWrap::displayAdminPage('admin/definitionLookup.ihtml');
?>
Modified: wwwbase/admin/viewPendingDefinitions.php
==============================================================================
--- wwwbase/admin/viewPendingDefinitions.php Mon Jan 27 12:50:38 2014 (r1069)
+++ wwwbase/admin/viewPendingDefinitions.php Tue Jan 28 17:03:03 2014 (r1070)
@@ -13,7 +13,7 @@
}
$ip = $_SERVER['REMOTE_ADDR'];
-$defs = Definition::searchModerator('*', '', $sourceId, ST_PENDING, 0, 0, time());
+$defs = Definition::searchModerator('*', '', $sourceId, ST_PENDING, 0, 0, time(), 1, 500);
$searchResults = SearchResult::mapDefinitionArray($defs);
FileCache::putModeratorQueryResults($ip, $searchResults);
More information about the Dev
mailing list