【freo】【freoTips】【プラグイン系TIPS】サークル管理プラグインでサークルをスペース順に一覧表示する方法
- 2013/04/15 22:53
- サークル管理プラグイン
- 64
freo公式サイトで配布されているサークル管理プラグインでは、登録されたサークルがサークル名順に一覧表示されるようになっています。
これを残したまま、サークルをスペース順に一表示することができるようにしてみます。
サークルをスペース順に一覧表示してみる。
サークルを五十音順に一覧表示するだけでなく、スペース順に一覧表示することもできます。
スペース順に一覧表示すると、スペースの隣の人が誰かがわかったり、どのスペースにどのカップリングのサークルが配置されているかがわかって、サークルチェックがしやすいと思います。
- [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;
- [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; }
- [freo/libs/freo/plugins/page.circle.php]をアップロードする。
このようにすると、[freo/index.php/circle/space]と表示したときに、サークルをスペース順に一覧表示できます。