ページャーの上部表示 

「Quick EntryList」は「記事の編集・削除」の画面で動作し、この画面の機能を便利に拡張します。 下は「Ameblo Management」のデザイン適用下ですが、は、このツールが上部に配置したページャーです。

 

 

ページ(年月で指定)を のボタン4個に登録し、その場所へのリンクに出来ます。 過去の投稿日時の1か所に記事を複製して纏めると、記事の整理用書庫が出来ます。 書庫は、特別な記事を整理してプレゼンに使うとか、自分用の道具箱にする等、色々な使い方があります。(記事データは画像に比べて小さく、有効な利用方法なら遠慮はいらないです) この4個のボタンは、そのメンテなどに大変有効です。

 

また、「記事の編集・削除」は、年度を跨いで旧い記事を探す場合に時間がかかります。 のセレクタボックスを使うと、10年前でも一瞬に移動できます。

 

以上の機能の細かい操作方法は、以下のページが判り易いと思います。

 

 

 

 

「未来記事」にマーク表示 

「管理トップ」の最近の記事リストは、投稿予定を指定した記事(未来記事)に「未来記事」の表示が出て判り易いのですが、この記事の編集・削除のリストでは、そういった表示がありません。

 

投稿のタイミングはけっこう気になるものですが、未公開の未来記事と、すでに公開した記事との区別がつかないのは不安です。 そこで、この記事のリストの投稿日時と、現在の日時とを比較して、未公開の未来記事にマークを表示する様にしました。

 

下図の は「未来記事」のマークで、投稿日時の背景色が青になり反転します。 但し、実際に公開されない「下書き」の記事も、投稿日時がリストを見た時より未来の場合は、「未来記事」のマークを表示します。

 

は「Ameblo Management」による配色設定によるもので、「下書き」は「青」、「アメンバー記事」は「緑」の背景色で、見分けやすく表示されます。

 

 

 

 

「下書き」の完了画面に「記事の編集・削除」を開くリンク 

記事を編集して投稿したり、下書き保存をした場合に「完了画面」が表示されます。「投稿した記事」を開くボタンは点検のために必須ですが、「下書き保存」をした場合は、少し微妙な動作をします。

 

「下書き」を選択した場合、「編集画面」はそのまま閉じずに残るので、そこで追加編集をして更に「下書き」保存ができます。 これは、編集した記事がサーバートラブルなどで霧散する場合があるので、編集内容を逐次バックアップする使い方を考えた仕様と思います。

 

しかし「下書き」保存後の状態を「記事の編集・削除」で確認したい時があり、その操作は遠回りで、以前から不便に感じていました。「投稿」を選択した場合は「現在に公開」「未来記事」に関わらず、「編集画面」が「記事の編集・削除」の画面に変わり、理想的なのですが。

 

そこで、「下書き」の完了画面に「記事の編集・削除」を開くリンク を設置する事にしました。 下は「Quick EntryList」が追加したリンクボタンです。

 

 

これはちょっと便利です。 気分が大事なので SVGのアイコン付きです。

 

 

 

「Quick EntryList」を利用するには 

このツールは Chrome / Edge / Firefox の拡張機能「Tampermonkey」上で動作します。 このツールは常駐型のツールで、Tampermonkey上で常に「ON」にしておくと、「記事の編集・削除」の画面を開いた時にのみに起動します。

 

以下に、このツールの導入手順を簡単に説明します。

 

❶「Tampermonkey」を導入します

使用しているブラウザに拡張機能「Tampermonkey」を導入する事が必要です。 以下のページに簡単な導入の説明があるので参照ください。

 

 

❷「Tampermonkey」にスクリプトを登録します

●「Tampermonkey」の「」マークの「新規スクリプト」タブを開きます。

 

 

 

●「新規スクリプト」には、最初からテンプレートが記入されています。 これは全て削除して、完全に空白の編集枠に 下のコードをコピー&ペーストします。

 

〔コピー方法〕 軽量シンプルなツール「PreBox Button   」を使うと

  コード枠内を「Ctrl+左Click」➔「Copy code 」を「左Click」

  の操作で、掲載コードのコピーが可能になります。

 

● 最後に「ファイル」メニューの「保存」を押すと、ツールが使用可能になります。

 

 

〔 Quick EntryList 〕 ver. 0.4

 

// ==UserScript==
// @name         Quick EntryList
// @namespace    http://tampermonkey.net/
// @version      0.4
// @description  記事の編集・削除の機能拡張
// @author       Ameba Blog User
// @match        https://blog.ameba.jp/ucs/entry/srventrylist*
// @match        https://blog.ameba.jp/ucs/entry/srventry*draft*
// @grant        none
// ==/UserScript==


let year_list=[]; // 選択年度の配列
let point_ym; // ユーザーの指定年月のクエリー文字
let qe_ym=[]; // Quick EntryList 復帰ポイントのユーザー設定



let read_json=localStorage.getItem('QE_Point'); // ローカルストレージ 保存名
qe_ym=JSON.parse(read_json);
if(qe_ym==null){
    qe_ym=['', '?', '?', '?', '?']; }
let write_json=JSON.stringify(qe_ym);
localStorage.setItem('QE_Point', write_json); // ローカルストレージ 保存



let disp_qe=
    '<div id="disp_qe">'+
    '<span class="qe_s">表示年月:</span>'+
    '<button class="qe_button" id="qe_b1"></button>'+
    '<button class="qe_button" id="qe_b2"></button>'+
    '<button class="qe_button" id="qe_b3"></button>'+
    '<button class="qe_button" id="qe_b4"></button>'+
    '<select id="ym_select_box"></select></div>';

let Main_h1=document.querySelector('#ucsMainLeft h1');
if(!document.querySelector('#disp_qe') && Main_h1){
    Main_h1.insertAdjacentHTML('beforeend', disp_qe); }


let qe_style=
    '<style id="qe_style">'+
    '#disp_qe { float: right; padding-left: 20px; margin-top: -2px; '+
    'background: #fff; } '+
    '.qe_s { font: normal 14px Meiryo; cursor: default; } '+
    '.qe_s:hover::before { '+
    'content: "Ctrl+Click:表示年月を登録  Click:登録ページを表示"; '+
    'position: absolute; margin: -27px 0 0; padding: 2px 6px 0; '+
    'background: #fff; border: thin solid #aaa; } '+
    '.qe_button { height: 24px; min-width: 70px; font-size: 15px; '+
    'margin: 0 4px; padding: 2px 6px; border: 1px solid #ccc; '+
    'vertical-align: -1px; cursor: pointer; } '+
    '#ym_select_box { font: bold 18px Meiryo !important; '+
    'height: 28px; padding: 0 10px; margin: 0 0 0 20px !important; } '+
    '#ym_select_box option { font: bold 18px Meiryo; } '+

    '#sorting .pagingArea { float: left; margin: -3px 20px; '+
    'background: #fff; } '+
    '#sorting .pagingArea ul { padding: 3px 2px 2px; } '+
    '#sorting .pagingArea li { margin: 0; padding: 0;border-right: none; }</style>';

if(!document.querySelector('#qe_style')){
    document.documentElement.insertAdjacentHTML('beforeend', qe_style); }



for(let k=1; k<5; k++){
    disp_button(k)}


set_year_list();
disp_select();
select_year();
point_set(1);
point_set(2);
point_set(3);
point_set(4);
paging();
feature();


function disp_button(n){
    let button=document.querySelector('#qe_b'+n);
    if(button){
        let date_raw;
        let ny;
        let nm;
        if(qe_ym[n].indexOf("&so=")!=-1){ // 古い順表示の場合
            date_raw=qe_ym[n].substring(0, qe_ym[n].indexOf("&so=")); }
        else{
            date_raw=qe_ym[n]; }

        ny=date_raw.slice(-6, -2);
        nm=date_raw.slice(-2);
        if((ny>1999 && ny<2100) && (nm>0 && nm<13)){
            button.textContent=ny+'-'+nm; }
        else{ // 未登録の場合
            button.textContent='- - -'; }}}



function select_year(){
    let set_year;
    let ym_select_box=document.querySelector('#ym_select_box');
    if(ym_select_box){
        ym_select_box.onchange=function(){
            set_year=ym_select_box.options[ym_select_box.selectedIndex].value;
            location.href=
                "https://blog.ameba.jp/ucs/entry/srventrylist.do?entry_ym="+
                set_year +"01"; }}}



function set_year_list(){
    let currentTime=new Date();
    let year=currentTime.getFullYear();
    for(let k=2000; k<year+1; k++){
        year_list.push(k); }
    year_list.reverse(); }



function disp_select(){
    let page_year;
    let ym=location.search;
    if(ym){
        page_year=ym.slice(-6, -2); }
    else{
        page_year=0; }

    let ym_select_box=document.querySelector('#ym_select_box');
    if(ym_select_box){
        for(let k=0; k<year_list.length; k++){
            let option=document.createElement('option');
            option.text=year_list[k];
            option.value=year_list[k];
            ym_select_box.appendChild(option);
            if(page_year==year_list[k]){
                option.selected=true; }}}}



function point_set(n){
    let point_button=document.querySelector('#qe_b'+n);
    if(point_button){
        point_button.onclick=function(event){
            if(!event.ctrlKey){ // 登録ページの表示
                location.href=
                    "https://blog.ameba.jp/ucs/entry/srventrylist.do"+ qe_ym[n]; }

            else{ // ページを登録
                let date_raw;
                let ny;
                let nm;
                let current_search; // 現在のクエリー文字列

                if(!location.search){ //「記事の編集・削除」の初期表示の場合
                    let currentTime=new Date();
                    ny=currentTime.getFullYear();
                    nm=('0'+(currentTime.getMonth()+1)).slice(-2); }
                else{
                    if(location.search.indexOf("&so=")!=-1){ // 古い順表示の場合
                        date_raw=location.search.substring(0, location.search.indexOf("&so=")); }
                    else{
                        date_raw=location.search; }
                    ny=date_raw.slice(-6, -2);
                    nm=date_raw.slice(-2); }

                if((ny>1999 && ny<2100) && (nm>0 && nm<13)){
                    let ok=confirm(
                        " 💢 Quick指定年月の登録を変更します\n\n"+
                        "「OK」を押すと現在選択している "+ny+"年 "+nm+"月 のページを登録します" );

                    if(ok){
                        current_search=location.search;
                        if(!current_search){
                            current_search='?entry_ym='+ny+nm; }
                        qe_ym[n]=current_search;
                        let write_json=JSON.stringify(qe_ym); // ローカルストレージ 保存
                        localStorage.setItem('QE_Point', write_json);
                        disp_button(n); }}
                else{ // クエリーの値が不正値の場合
                    let ok=confirm(
                        " 💢 クエリー文字列が異常値で登録できません\n\n"+
                        " 「OK」を押すと先頭ページに移動します" );
                    if(ok){
                        location.href=
                            "https://blog.ameba.jp/ucs/entry/srventrylist.do"; }}}

        }}} // point_set()



function paging(){
    let paging_area=document.querySelector('.pagingArea');
    if(paging_area){
        let sorting=document.querySelector('#sorting');
        let s_theme=document.querySelector('#selectTheme');
        if(sorting && s_theme){
            let clone=paging_area.cloneNode(true);
            sorting.insertBefore(clone, s_theme.nextElementSibling); }}}




function feature(){
    let currentDate = new Date();
    let year=currentDate.getFullYear();
    let month=currentDate.getMonth() + 1;
    let date=currentDate.getDate();
    let hour=currentDate.getHours();
    let minute=currentDate.getMinutes();

    function formatTime(val) {
        return ("0" + val).slice(-2); } //「0」付きで2桁テキストに変更

    let now=formatTime(month) + formatTime(date) +
        formatTime(hour) + formatTime(minute)
    now=parseInt(now, 10);


    let page_year=document.querySelector('#entryYear #year');
    if(page_year){
        page_year=parseInt(page_year.textContent, 10); }
    else{
        page_year=0; }

    let page_month=document.querySelector('#entryMonth #nowMonth');
    if(page_month){
        page_month=page_month.textContent.replace(/[^0-9]/g, '');
        page_month=parseInt(page_month, 10); }
    else{
        page_month=0; }

    if(page_year==year && page_month==month){ // 現在の日付のページ

        let p_time=document.querySelectorAll('#entryList .date');
        for(let k=0; k<p_time.length; k++){
            let p_date=p_time[k].textContent;
            p_date=parseInt(p_date.replace(/[^0-9]/g, ''), 10);

            if(p_date>now){
                p_time[k].style.color='#fff';
                p_time[k].style.background='#2196f3'; }}}

} // feature()




if(location.pathname.includes('draft')){ // 下書き保存の場合

    let qe_button=
        '<div id="qe_button">'+
        '<svg viewBox="0 0 120 120">'+
        '<path d="M0 0L0 112L112 112L112 0L0 0z" style="fill:#fff"></path>'+
        '<path d="M23 21L45 21C48 21 52 20 55 22C60 26 56 34 64 36C70 38 '+
        '78 37 84 37C88 37 92 37 94 40C97 43 96 48 96 52L96 81C100 81 103 '+
        '80 105 76C107 73 106 69 106 65L106 43C106 39 106 35 104 31C101 27 '+
        '96 27 92 27C84 27 76 27 68 27C68 22 68 17 65 14C61 10 55 11 50 11C39 '+
        '11 26 8 23 21M52 43C52 40 52 38 51 35C48 25 35 27 27 27C21 27 13 26 '+
        '9 32C6 37 7 43 7 48L7 82C7 87 6 94 10 97C15 101 22 100 28 100L69 '+
        '100C74 100 81 101 86 98C90 95 90 91 90 86L90 58C90 53 90 48 86 '+
        '45C83 43 79 43 75 43L52 43z" style="fill:#010101"></path>'+
        '<path d="M80 53C72 52 65 52 57 52C54 52 49 53 47 52C40 48 44 39 '+
        '38 37C34 36 21 35 18 39C16 42 17 45 17 48L17 69C17 74 15 85 18 '+
        '89C21 92 28 91 32 91L67 91C71 91 77 92 80 89C82 86 81 81 81 78C81 '+
        '70 81 61 80 53z" style="fill:#fff"></path></svg>'+

        '記事の編集・削除を表示'+
        '<style>'+
        '#qe_button { position: absolute; top: 170px; left: calc(50% + 200px); '+
        'font: normal 16px Meiryo; padding: 7px 20px 5px; border-radius: 6px; '+
        'background: #fff; box-shadow: 5px 10px 30px #00000025; } '+
        '#qe_button:hover { background: #cfd8dc; } '+
        '#qe_button svg { width: 48px; height: 36px; vertical-align: -12px; } }</style></div>';
    if(!document.querySelector('#qe_button')){
        document.body.insertAdjacentHTML('beforeend', qe_button); }


    let files_link=document.querySelector('#qe_button');
    if(files_link){
        files_link.onclick=function(){
            location.href="https://blog.ameba.jp/ucs/entry/srventrylist.do"; }}}




 

 

 

「Quick EntryList」最新版について 

旧いバージョンの「Quick EntryList」は、アメーバのページ構成の変更で動作しない場合があり、導入する場合は最新バージョンをお勧めします。 最新バージョンへのリンクは、以下のページのリンクリストから探せます。