首页
学习
活动
专区
圈层
工具
发布

modx排序
EN

Stack Overflow用户
提问于 2015-10-31 16:34:12
回答 1查看 81关注 0票数 1

你好,

档案中期刊分类存在问题。CMS Modx代码不是我的。现在看起来是:

代码语言:javascript
复制
<li class="journals">
<ul class="ye">
<li class="year">2015</li>
<ul class="in_nums 2015" style="display: inherit;">
<li data-issue="4804">№1(48)</li>
<li data-issue="5314">№3(51)</li>
<li data-issue="4980">№2(50)</li>
<li data-issue="5148">№2(49)</li>
<li data-issue="5437">№3(52)</li>
</ul>
</ul>
</li>

正如您所看到的,问题不在任何类型的排序中。几年的正常排序。

片段:

代码语言:javascript
复制
<?php
$ctx = $modx->getContext($modx->context->key);
$issue_con = $ctx->config['issue_con'];

$query = $modx->newQuery('modResource');
$query->select(array('pagetitle','id'));
$query->where(array('parent'=>$issue_con));
$query->prepare();
$query->stmt->execute();
$res = $query->stmt->fetchAll(PDO::FETCH_ASSOC);

$years = array();
foreach ($res as $r)
{
    $mas = explode(', ',$r['pagetitle']);
    $years[intval($mas[1])][$mas[0]] = $r['id'];
}
krsort($years);
$output = '<ul class="ye">';
foreach ($years as $y=>$nums)
{
    $output .= '<li class="year">'.$y.'</li><ul class="in_nums '.$y.'">';
                foreach ($nums as $num=>$pid)
                {
       $output .= '<li data-issue="'.$pid.'">'.$num.'</li>';
                }
                $output .= '</ul>';
}
$output .= '</ul>';

echo $output;

需要使用括号中的数字(3(51))或pids (4980)对问题进行排序,从最老的问题到最新的问题(如ksort )。

,提前谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-31 19:28:22

您可以在查询中进行排序,请参阅docs:https://rtfm.modx.com/xpdo/2.x/class-reference/xpdoquery/xpdoquery.sortby

按资源分类:

代码语言:javascript
复制
$query->sortby('id','ASC');

并按年份删除排序

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33453908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档