dala00の100DaysOfCode

2019-01-10に作成

頑張って100日間コードを書き続けます。

所有者限定モードのためこのボードには投稿できません

Day9

  • ボード本文内のマージンをちょっと調整
  • グローバルナビに自分のボードへのリンクを表示するようにした。
      <a class="dropdown-item" href="/drafts">下書き一覧</a>
      <div class="dropdown-divider"></div>
      <template v-if="boards.length > 0">
        <a v-for="board in boards" :key="board.unique_id" class="dropdown-item" :href="`/boards/${board.unique_id}`">
          {{ board.name }}
        </a>
        <div class="dropdown-divider"></div>
      </template>
      <a class="dropdown-item" href="/users/edit">設定</a>

Day8

  • 構造化マークアップを追加した
  • ボード一覧を作った
  • 本文文字数カウントを追加した

Day7

  • ボード投稿にコメント機能を追加した。
  • 広告の位置や文言などを調整

コメント投稿時と削除時に、下記のようなコードでコメント数を集計して保存している。こうすることでコメント数を表示する時に集計しなくて良いので全体として負荷が小さくなる。

    public static function updateCommentCount($id)
    {
        $count = BoardComment::where('board_post_id', $id)->count();

        DB::table('board_posts')
            ->where('id', $id)
            ->update([
                'comment_count' => $count,
            ]);
    }

ちなみにDB::tableを使っているのは該当データのタイムスタンプを更新しないようにするため。

Day6

  • 細かいレスポンシブ対応や文言変更
  • ボードの投稿にコメント付ける機能は大体できた。あとはコメント数の集計とか付けたらリリースする。

削除されたコメントはこんな感じで置き換えてる。同じIDのデータは内部で共通化されて色んな所で使い回されてるっぽいので、こんな感じでnewしたものを使わないと連動して色々おかしなことになるため。

    public function getCommentsForJson($viewUserId)
    {
        return $this->boardComments
            ->map(function ($comment) use ($viewUserId) {
                if ($comment->deleted_at) {
                    $deletedComment = new BoardComment;
                    $deletedComment->id = $comment->id;
                    $deletedComment->deleted_at = $comment->deleted_at;
                    return $deletedComment;
                }

                $comment->isMine = $comment->user_id == $viewUserId;

                return $comment;
            });
    }

Day5
ボードの投稿にコメントできる機能を作成中。記事と同様にレス形式にしようか悩んだが、ボードの場合はコメント自体がレスみたいなものだし、最悪あとで変更もできるからシンプルな一覧形式にすることにした。

Day4

  • ボードの匿名投稿モードを追加した。
  • ボードの説明ページを作ったのでそこへのリンクをいくつか作った。

カラム

ボードにanonymous_allowed、ボード投稿にanonymousのbooleanカラムを追加。

匿名投稿かどうかの選択

コンポーネントでは許可かどうかのプロパティでチェックボックスの表示を切り替え。

    <div v-if="anonymousAllowed" class="checkbox">
      <label>
        <input v-model="post.anonymous" type="checkbox"> 匿名で投稿する
      </label>
    </div>

Day3
今日はコードハイライトのCSSを修正しただけ。残り時間があればボードの投稿を匿名でできるようにしていく。

Day2
laravel-adminを導入。一覧画面の各表示をリンクにしたりちょこちょこ調整。そもそもgridの中身が表示されていなかったりしておかしいが、とりあえずOSSだし不具合なのか何か設定がおかしいのか考える時間ももったいないのでスルーの方向で。

Day1

  • プライベートボードのシェアボタンを非表示にしたりした
  • ログイン後のユーザーアイコンコンポーネントをTypeScript化して、おかしかった表示を修正
  • ボード関連の動線を追加した