CMS「すぐ使えるCGI」の開発者がご質問にお答えします

 

php版混合リスト・記事がない場合の表示 (No. 1261)

回答日: 2012-11-22

質問

お世話になります。

先日購入させていただき、
「複数の新着情報(短い一覧)を統合」のPHP版を設置し、
問題なく動作しています。

一点質問ですが、

<?php
readfile("fileup_webdir/index_short.html");
?>

のように設置した箇所に、
もし記事が0だった場合に、「現在ニュースはありません」のような表示させる方法はないでしょうか。

記事を1つ公開し、不要になったら記事ごと消すような運用方法なのですが、
もし上記のような機能が実装できたらと、たいへん助かります。

※常にトップから同名PDFをダウンロードできるようにテンプレートをいじっている為、「記事はありません」という記事をアップすることもできません。

もし可能なようでしたら、教えてください。
よろしくお願いします。
投稿日時: 2012-11-21 19:15

回答

問題なくご利用中との事、嬉しく存じます。

ご質問の件ですが、全てをまとめても記事が無い場合のケースですね。
JavaScript で判別して文字を表示する事ができます。

ご案内したコードを一部変更してお試し下さい。

■もともとの設定方法のご案内

「複数の新着情報(短い一覧)を統合(混合、マージ)する方法」
http://sugutsukaeru.jp/support/257/


■変更前
上記ページの「ホームページの設定」->「統合用 JavaScript の設定」の部分を一部入れ替えて下さい。

一番下の以下の部分が入れ替え対象です。
=================================
for (var i=0; i<ListIds.length; i++){
    var newnode = document.getElementById(ListIds[i]).cloneNode(true);
    newnode.style.display = 'list-item';
    // short_list.txt の編集で class を指定したのが
    // tr や div の時は「list-item」の代わりに
    // 「block」にする。
    ListPart.appendChild(newnode);
}

-->
</script>
<!-- body タグの終了直前に追加 ここまで -->
=================================


■変更後
以下のように置き換えて下さい。
表示される文言はHTMLタグも使用して自由に設定できます。
=================================
if (ListIds.length && 0 < ListIds.length){
    for (var i=0; i<ListIds.length; i++){
        var newnode = document.getElementById(ListIds[i]).cloneNode(true);
        newnode.style.display = 'list-item';
        // short_list.txt の編集で class を指定したのが
        // tr や div の時は「list-item」の代わりに
        // 「block」にする。
        ListPart.appendChild(newnode);
    }
} else { //1件もない場合

    // short_list.txt の編集で class を指定したタグを指定。(下記だと "li" )
    var newnode = document.createElement("li");

    //下の1行で表示する内容を指定。タグはあっても無くても可
    newnode.innerHTML = '<span style="color: gray;">現在ニュースはありません</span>';

    newnode.style.display = 'list-item';
    // short_list.txt の編集で class を指定したのが
    // tr や div の時は「list-item」の代わりに
    // 「block」にする。
    ListPart.appendChild(newnode);
}

-->
</script>
<!-- body タグの終了直前に追加 ここまで -->
=================================
回答日: 2012-11-22