web-dev-qa-db-ja.com

管理コンテンツフィルター

drupal-7で、コンテンツページフィルターにフォーム検索を追加したり、フィルターフォームにテキストボックスを追加して、ノードのタイプとパブリッシングプロパティの横にあるノードタイトルでノードをフィルターする方法はありますか

3
mohamad salama

管理メニュー モジュールには、「管理ビュー」と呼ばれる素晴らしいサブモジュールがあり、Drupalコアコンテンツ管理ページをビューに置き換えます。また、追加のフィルターと検索を追加します関数。

3
user842

私はこれに似たものを探していました..テンプレートファイルにJSハックを入れただけです。それはかなり怪しげですが、うまく機能し、コードをモジュールに「コンパイル」する方法がわかりません(私はそのことに頭を悩ませることはできませんでした)。とにかく、これが私の管理テーマのpage.tpl.phpの下部にドロップしたコードです。

<?php ///THIS IS A HACKY SOLUTION TO PROVIDE SEARCH FUNCTIONALITY
    if(implode('/',arg())=='admin/content'):
?>
<script type="text/javascript">
jQuery(document).ready(function($){
    $("#edit-filters").append('<div id="hacky-search"><legend><span class="fieldset-legend">Search</span></legend><input type="text" /></div>');

    var titlesArray = new Array();
    var wordsArray = new Array();

    $("#node-admin-content tbody tr").each(function (e) {
        titlesArray[e] = $(this).find('td:eq(1)').text().replace(/^\s+|\s+$/g, "");
    });
    /**/    
    $("#hacky-search input").bind('keyup blur change', function () {
        var theSearch = $(this).val().replace(/^\s+|\s+$/g, "");
        if (theSearch > "") {
            $("#node-admin-content tbody tr").addClass('hidden');
            for (i = 0; i < titlesArray.length; i++) {
                theItem = titlesArray[i].toLowerCase();
                if (theItem.search(theSearch.toLowerCase()) > -1) {
                    $('#node-admin-content tbody tr:eq(' + i + ')').removeClass('hidden');
                }
            }
        } else {
            $("#node-admin-content tbody tr").removeClass('hidden');
        }
        $("#node-admin-content tbody tr").removeClass('even').removeClass('odd');
        $("#node-admin-content tbody tr:not(.hidden)").each(function(e){
            if(e%2==0){
                $(this).addClass('odd');    
            }else{
                $(this).addClass('even');   
            }
        });
        //$('h2').text(theSearch);
    });
});
</script>
<style type="text/css">
    #hacky-search{
        position: absolute;
        right: 15px;
        top: 0; 
        text-align:right;
    }
    #hacky-search legend{
        position:relative;  
    }
    #hacky-search legend span{
        right:0;
    }
    #hacky-search input{
        border: 1px solid #CCCCCC;
        margin-top: 33px;
        padding: 2px 4px;
        width: 200px;
    }
    #node-admin-content tr{

    }
    #node-admin-content tr.hidden{
        display:none;
    }
</style>
<?php
    endif;
?>
1
Nic Peck

Drupal 6には「 コンテンツ管理フィルター 」モジュールがありましたが、7に移植されていません。いつでもビューといくつかの公開フィルターを使用して独自のモジュールを構築できます。

「一括操作」オプションが気に入った場合は、 [〜#〜] vbo [〜#〜] モジュールでも同じことができます。

0
uwe