• 虹色ミツバチ
  • freoカスタマイズメモ、テンプレート・プラグイン配布/officeTIPS
検索プラグイン
虹色ミツバチ

> Entry >freo>freoTips>プラグイン系TIPS> サークル管理プラグインでサークルをスペース順に一覧表示する方法

【freo】【freoTips】【プラグイン系TIPS】サークル管理プラグインでサークルをスペース順に一覧表示する方法

freo公式サイトで配布されているサークル管理プラグインでは、登録されたサークルがサークル名順に一覧表示されるようになっています。
これを残したまま、サークルをスペース順に一表示することができるようにしてみます。

サークルをスペース順に一覧表示してみる。

サークルを五十音順に一覧表示するだけでなく、スペース順に一覧表示することもできます。
スペース順に一覧表示すると、スペースの隣の人が誰かがわかったり、どのスペースにどのカップリングのサークルが配置されているかがわかって、サークルチェックがしやすいと思います。

  1. [freo/libs/freo/plugins/page.circle.php]の58行目
                case 'admin_category_delete':
                    freo_page_circle_admin_category_delete();
                    break;
                ここです
                default:
                    freo_page_circle_default();

    に以下の通り加筆する。

                case 'space':
                    freo_page_circle_space();
                    break;
  2. [freo/libs/freo/plugins/page.circle.php]の1384行目
            return;
        }
        ここです
        /* サークル一覧 */
        function freo_page_circle_default()
        {

    に以下の通り加筆する。

    /* サークル一覧(スペース順) */
        function freo_page_circle_space()
        {
            global $freo;
    
            //検索条件設定
            $condition = null;
            if (isset($_GET['category'])) {
                $condition .= ' AND category_id = ' . $freo->pdo->quote($_GET['category']);
            }
            if (isset($_GET['tag'])) {
                $condition .= ' AND tag = ' . $freo->pdo->quote($_GET['tag']) . ' OR tag LIKE ' . $freo->pdo->quote($_GET['tag'] . ',%') . ' OR tag LIKE ' . $freo->pdo->quote('%,' . $_GET['tag']) . ' OR tag LIKE ' . $freo->pdo->quote('%,' . $_GET['tag'] . ',%');
            }
            if ($condition) {
                $condition = ' WHERE user_id IS NOT NULL ' . $condition;
            }
    
            //サークル取得
            $stmt = $freo->pdo->query('SELECT * FROM ' . FREO_DATABASE_PREFIX . 'plugin_circles ' . $condition . ' ORDER BY space, kana, user_id');
            if (!$stmt) {
                freo_error($freo->pdo->errorInfo());
            }
    
            $plugin_circles = array();
            while ($data = $stmt->fetch(PDO::FETCH_ASSOC)) {
                $plugin_circles[$data['user_id']] = $data;
            }
    
            //サークルID取得
            $plugin_circle_keys = array_keys($plugin_circles);
    
            //サークルタグ取得
            $plugin_circle_tags = array();
            foreach ($plugin_circle_keys as $plugin_circle) {
                if (!$plugin_circles[$plugin_circle]['tag']) {
                    continue;
                }
    
                $plugin_circle_tags[$plugin_circle] = explode(',', $plugin_circles[$plugin_circle]['tag']);
            }
    
            //ユーザー取得
            $stmt = $freo->pdo->query('SELECT * FROM ' . FREO_DATABASE_PREFIX . 'users WHERE authority = \'guest\' ORDER BY id');
            if (!$stmt) {
                freo_error($freo->pdo->errorInfo());
            }
    
            $users = array();
            while ($data = $stmt->fetch(PDO::FETCH_ASSOC)) {
                $users[$data['id']] = $data;
            }
    
            //ユーザーID取得
            $user_keys = array_keys($users);
    
            //ユーザー関連データ取得
            $user_associates = freo_associate_user('get', $user_keys);
    
            //カテゴリー取得
            $stmt = $freo->pdo->query('SELECT * FROM ' . FREO_DATABASE_PREFIX . 'plugin_circle_categories ORDER BY sort, id');
            if (!$stmt) {
                freo_error($freo->pdo->errorInfo());
            }
    
            $plugin_circle_categories = array();
            while ($data = $stmt->fetch(PDO::FETCH_ASSOC)) {
                $plugin_circle_categories[$data['id']] = $data;
            }
    
            //データ割当
            $freo->smarty->assign(array(
                'token'                    => freo_token('create'),
                'plugin_circles'           => $plugin_circles,
                'plugin_circle_tags'       => $plugin_circle_tags,
                'plugin_circle_categories' => $plugin_circle_categories,
                'users'                    => $users,
                'user_associates'          => $user_associates
            ));
    
            return;
        }
  3. [freo/libs/freo/plugins/page.circle.php]をアップロードする。

このようにすると、[freo/index.php/circle/space]と表示したときに、サークルをスペース順に一覧表示できます。

ページ移動

関連記事

ページ上部へ