CMS NetCat-テーブル内のオブジェクトの並べ替え
表形式で表示されるコンポーネントオブジェクトをソートするためのソリューションを提供します。 私はそれを十分に頻繁に使用します。多分それは誰かに役立つでしょう。
1.列見出しを、目的のリンクを置き換える関数に変更します
".sort_header('Message_ID','ID')."
ここMessage_ID-ソートするフィールド、ID-列の名前
関数sort_header()は、デフォルトモジュールで説明されています
function sort_header($fild,$header, $wrap=0){
global $sub,$cc,$sort,$order;
/*
* URI sort, order, sid.
* , .. ,
*
*/
$param="";
$separator='?';
foreach ($_GET as $key => $value) {
if($key!='sort' && $key!='order' && $key!='sid')
{
$param .=$separator.$key."=".$value;
$separator='&';
}
}
// .
if($wrap==0)
{
$out .="";
}
$out .="<a href='$param&sort=$fild";
if($sort==$fild && $order !='ASC')
{
$out .="&order=ASC";
}
$out .="'>$header";
$out .="";
if($sort==$fild && $order =='ASC')
{
$out .="
";
}
elseif($sort==$fild)
{
$out .="
";
}
if($wrap==0)
{
$out .="
function sort_header($fild,$header, $wrap=0){
global $sub,$cc,$sort,$order;
/*
* URI sort, order, sid.
* , .. ,
*
*/
$param="";
$separator='?';
foreach ($_GET as $key => $value) {
if($key!='sort' && $key!='order' && $key!='sid')
{
$param .=$separator.$key."=".$value;
$separator='&';
}
}
// .
if($wrap==0)
{
$out .="";
}
$out .="<a href='$param&sort=$fild";
if($sort==$fild && $order !='ASC')
{
$out .="&order=ASC";
}
$out .="'>$header";
$out .="";
if($sort==$fild && $order =='ASC')
{
$out .="
";
}
elseif($sort==$fild)
{
$out .="
";
}
if($wrap==0)
{
$out .="
";
}
$を返す;
}
ここではすべてが簡単です。
3つのパラメーターを関数に渡します:並べ替えフィールド、列名、フラグ、ハイフネーションが許可されているかどうか。 デフォルトでは、それらは禁止されています。
2.ソートを機能させるには、リクエストを変更する必要があります。 これを行うには、コンポーネント設定で次のように記述します。
$query_order = sort_set();
sort_set()はデフォルトモジュールで説明されています
function sort_set(){
global $inside_admin,$sort,$order,$classID;
// . ,
$sql = "SHOW COLUMNS FROM Message".$classID." WHERE Field = '".$sort."'";
$result = mysql_query($sql);
$num_rows = mysql_num_rows($result);
if($num_rows == 1)
{
if($order=='ASC')
{
$order = 'ASC';
}
else
{
$order = 'DESC';
}
// , $query_order
$out="a.".$sort." ".$order;
return $out;
}
else
{
return;
}
}
それだけです
合計で、並べ替えには、システムに2つの機能を追加する必要があります。その後、列見出しを変更して、一方を呼び出し、もう一方をコンポーネント設定で指定する必要があります。 難しくないようです。 誰かが重宝してくれたら嬉しいです。
Source: https://habr.com/ru/post/J105184/
All Articles