Entry

Category: 日記

【Vue.js】うちにはCLI環境なんてない

みんなVue CLIでるーたーとかなんとかーとかかんとかーとかをごりごりやるんですね!
ご無沙汰しております。せこせこ野良知見ばかりをためる私です。

というわけで、もじゅーるインポートなどをしつつ、 import './test.vue' なんてうちのこではできません! みたいな状況でなんとかかんとかした覚書を残しに来た次第です。
みんな気軽に手元でローカルサーバ立ててやってんのな。昔の私ならやってたかな。どうかな。

ぶれわいの装備の素材あといくつなのー

毎回ご無沙汰しております。そして表題通りです。

何度目かのブレワイ中なんですが、おようふく強化するにあたって、ライネルの肝ってあと何個いるんだっけ…? 的なサムシングに毎回ぶち当たるので、よっしゃvue.jsの訓練がてらちょっとやるか! と。

で、やったので置きに来ました。自分用のメモとしてはこんなもんで十分だろう。
http://epr.zhi-zheng.net/page/botwGear

ついでに、横幅広げないとこいつのページ機能では対応しきらんかったので、適当にひろげました。末尾のなんかはそのうちなんかしよう(適当

【mysql】 DBをワイルドカードで指定したい人生だった

ご無沙汰しております。ご無沙汰しております。
いつもの「覚書だけ置いて帰る」の時間です。

やりたかったことといえば、 select col1,col2 from `%`.table だけなんですよ。
grantの時はDBをワイルドカードで指定できるってことなんだから、やれていいんじゃないのこれ!

【freo】必要な内部情報をどうやって探すのかのメモ

freoしか書くことねぇのかよ、とか云われそうな感じですが、今いじってる最中なので備忘録としての側面が非常に強いのです。
以降、ほんとに大したこと書いてないです。

【freo】page_associatesに入ってくる情報

ついて回ってくる割に、全然情報ないですよねこのassign。
値引っ張るときに小さくハマったので備忘録。

[page_id]
 ├ [group][group_id] = true  ← あれば
 ├ [filter][filter_id] = true     ←┘
 ├ [option][option_id] = text

こうなってるところは固定テキスト。それ以外はDBの値。

smarty側でオプションID固定で引っ張るときはこういう塩梅(page_allが入ってるのは、丁度こいつから出そうとしててハマったからです)。

<!--{if $page_all_associates[$page_all.id].option.出すオプションID}-->
{$page_all_associates[$page_all.id].option.出すオプションID}
<!--{/if}-->

ifは必要に応じて。予め値を便利な状態に設定しといてifなしの方が、勿論ちいさく処理は軽いはず。

ハッシュのキーって配列ぽく[]でやってくのとクラスぽく . でつなげるのとどっちがいんですかね。
変数使うときは [] じゃないとダメだけど、その辺を見た目上の切り分けっぽく使ってていいのかなー。

【freo】兄妹ページプラグインの改造

兄妹ページ表示プラグインで、えー親子関係でいうところのすぐ上とすぐ下のおじおばの情報を連れてきたかったので。

【freo】page_all で、続きを読むと本文分離

まさかfreoネタが人様のお役に立っていたとは
こんにちは。放置しすぎの私です。

放置ついでに、久しぶりにfreoいじって手を入れた箇所をメモ。
page_allプラグイン(これ名前なんて云いましたっけ)で、本文と続きを読むーの部分を本体のpage同様分けようという話。

    $pages = array();
    while ($data = $stmt->fetch(PDO::FETCH_ASSOC)) {
        $pages[$data['id']] = $data;
    //本文と続きを読む を分けたい    ↓page/default.phpでやってることそのまま。
      list($excerpt, $more) = freo_divide($data['text']);
        $pages[$data['id']]['excerpt']   = $excerpt;
        $pages[$data['id']]['more']      = $more;
    //ここまで

    }

ぶっこむ場所は、最初にpageに値拾ってくるところ。30行目くらい。
当たり前といえば当たり前の処理なんですけど、なんでこれデフォでやってくれてないのかなー…。

フィルタとか閲覧制限のことは何一つ考えてないので、後半部分でなんとかしないとダメかも。

ウィジェット入れました

  • 2013/06/26 16:41
  • Category:日記
TwitterAPI1.xが完全終了したので、諦めてウィジェット持ってきました…

【freo】page_recentlyの改造 (07/04追記)

(久しぶりのネタがこんなんであれですけど)

思いついた時に思いついたようにせっせとfreoのカスタマイズ準備(だけ)を進めているのですが、新着ページ表示にね、やっぱり親の情報とかつけてやりたいなと。カテゴリ的な意味合いで。
しかしfreoのページ構造として、自分の直接の親はわかっても、2世代以上手前のところは再帰して行かないとわからないわけです。というか、裏ワザとかあるのかなとか思ったらなかったんです(topic_pathプラグインを眺めてため息)。

というわけで、こりゃ諦めてプラグイン作成だなや…というつぶやきでした。それだけです。備忘録です。

その前にfreoのバージョン上げもしななー

17:49追記
舌の根もかわかぬうちにあっさりできました。ありがとうtopic_path。
荒削りの状態ですけど、とりあえずこれで $割り当てられたやつ.parent に、親ページのタイトルが配列で返ってきます。
ぶっこむのは、diplay.page_recentlyうんちゃらのsmarty変数割り当て直前くらいが、わかりやすくていいかと。

  //■追加■ページの親共を配列で取得
  foreach ($page_keys as $page) {
    $page_parents = array();
    if (!$pages[$page]['pid']) { continue; }
    $p['pid']=$pages[$page]['pid'];

    //以下、topicpathからのパクリ
    while ($p['pid']) {
      //ページ取得
      $stmt = $freo->pdo->prepare('SELECT id, pid, title FROM ' . FREO_DATABASE_PREFIX . 'pages WHERE id = :id AND approved = \'yes\' AND (status = \'publish\' OR (status = \'future\' AND datetime <= :now1)) AND (close IS NULL OR close >= :now2)');
      $stmt->bindValue(':id',   $p['pid']);
      $stmt->bindValue(':now1', date('Y-m-d H:i:s'));
      $stmt->bindValue(':now2', date('Y-m-d H:i:s'));
      $flag = $stmt->execute();
      if (!$flag) { freo_error($stmt->errorInfo()); }

      if ($data = $stmt->fetch(PDO::FETCH_ASSOC)) {
        $p = $data;
      } else {
        return;
      }

      //ページフィルター取得
      $fs = freo_filter_page('user', array($p['id']));    $f  = $fs[$p['id']];
      if ($f) $p['title'] = str_replace('[$title]', $p['title'], $freo->config['page']['filter_title']);

      //ページ保護データ取得
      $ss = freo_security_page('user', array($p['id']));  $s  = $ss[$p['id']];
      if ($s) $p['title'] = str_replace('[$title]', $page['title'], $freo->config['page']['restriction_title']);

      array_unshift($page_parents, $p['title']);
    }
    $pages[$page]['parent'] = $page_parents;
  
  }//foreach

07/04追記
元の方では、こんなかんじで拾ってます。

<!--{if false} ↓親カテを3つ目まで表示 {/if}{if $plugin_page_recently.parent}{foreach from=$plugin_page_recently.parent|smarty:nodefaults item=prnt name=prn}{if $smarty.foreach.prn.index < 3 }-->
<span class="page_name">{$prnt}</span>
<!--{/if}{/foreach}{else}-->

【freo】ページ一括表示プラグインにて、階層レベルで自動的に表示を1ファイルで振り分ける( 11/27修正)

なにがなんにゃらって感じのタイトルですが、自分メモがてら

11/27追記:ちょいちょい変えました。

呼び出し元 ページ。

<!--{if false} ■ページ一括表示プラグイン {/if}{if $page_alls|smarty:nodefaults}-->
  <!--{assign var="pid" value=$page.id}-->
  {include file='plugins/page_all/【ファイル名】.html'}
<!--{/if}{if false} □ページ一括表示プラグイン {/if}-->

呼び出し先 plugins/page_all/【ファイル名】.html

<!--{if false}
■page_allプラグイン用テンプレート
  ・階層レベルごとに、表示内容を分岐する
{/if}-->

<!--{math equation="x - 1" x=$pid|explode:'/'|@count assign='lv'}-->
<!--{foreach from=$page_alls|smarty:nodefaults item='page_all' }{if $page_all.pid == $pid}-->

  <!--{if $lv == 0}{if false}◆分岐0:h4{/if}-->
    <h4><a href="{$freo.core.http_file}/page/{$page_all.id}">{$page_all.title}</a></h4>

  <!--{elseif $lv == 1}{if false}◆分岐1:h5{/if}-->
    <h5><a href="{$freo.core.http_file}/page/{$page_all.id}">{$page_all.title}</a></h5>
      <div><p>{$page_all.text|smarty:nodefaults}</p></div>

  <!--{elseif $lv == 2}{if false}◆分岐2:dt {/if}-->
    <!--{php}if (!$flag):{/php}--><dl><!--{php}endif; $flag=1;{/php}-->
    <dt>{$page_all.title}</dt>

  <!--{elseif $lv == 3}{if false}◆分岐3:li インデックス番号で{/if}-->
    <!--{php}if (!$flag):{/php}--><dd><ul><!--{php}endif; $flag=1; $idx+=1;{/php}-->
    <li><a href="{$freo.core.http_file}/page/{$page_all.id}">{php}echo sprintf('%02d',$idx);{/php}</a></li>

  <!--{/if}--><!--{if false}◇分岐終了{/if}-->

  <!--{if false}■分岐後処理 ――――――{/if}-->
    <!--{assign var="pid" value=$page_all.id}-->{include file='plugins/page_all/【ファイル名】.html'}<!--{assign var="pid" value=$page_all.pid}-->
  <!--{if false}□分岐後処理 ――――――{/if}-->

<!--{/if}{/foreach}-->

<!--{if false}■後始末(レベルが戻ってきたあとのタグとじ) ――――――――{/if}-->
<!--{    if $lv ==3}{php}if ($flag) :{/php}--></ul></dd><!--{php}endif;{/php}-->
<!--{elseif $lv ==2}{php}if ($flag) :{/php}--></dl><!--{php}endif;{/php}-->
<!--{/if}-->

で、何がしたかったのよ

だって再帰処理じゃん。
Smartyにselect caseがあればよかったのにね…。

使用用途はえーと、わたしの場合はTRPGのリプレイの章立てなんで、小説とかみたいなののドリルダウン?
あとは本文のチラ見せ機能。このへんは実運用時には「続きを読む(pagebreak)」を最大限活用して、実ページではデフォルト続きを読ませるも一緒表示にしてーとかナントカになる予定。事によったらtrancateも視野に入れるけど、あの手のは検索後にはいいけどそうじゃないときは個人的無駄機能なのでなー。

基本方針は元のpage_allプラグインの書き方に準じて、階層スタックとして lv てsmarty用変数を設けた程度。
タグ閉じでelseしてませんね。していいと思います。こんどやろう。

仰々しくzip配布とかするつもりはないので、使ってみたい場合はどうぞご自由に。
サポートはおそらくありませんが。

追記

…foreachの前に都度mathで階層取ったほうがシンプルな気がしてきた…

というわけで色々手を入れました。インデックスを自動で取ったりもしたので(foreachのindex使って「ですよね!」ってなったりしながら)、割と修正先の見える形でパターンが取れたかな、と。

Pagination

Utility

Calendar

10 2024.11 12
SMTWTFS
- - - - - 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

Tag Crouds