求人リストページ


コンテンツの作成


求人リストページを作成させてください.
プロジェクト名はcareers_listです.
publishingオリジナルは、SK採用をインポートして修正されました.もし問題があったら、私に教えてください.交換します.

作成するページのプレビュー

  • 公告目録
  • 会社カタログ
  • 募集タイプリスト
  • 社フィルター
  • タイプフィルタ
  • を採用
  • 条件を満たす求人情報がなければ、
  • 企画意図

  • 求人情報のリストが表示されます.
  • がクローズした求人情報は表示されません.
  • 当日の締め切り日は「本日の締め切り日」と表示されます.
  • 通年全天候募集公告は、「全天候」と明記してください.
  • の終了日が今日より遅い場合、D-{날짜}として残り数日を表示します.
  • リストが空の場合、「現在進行中の公告はありません」と表示されます.
  • データせっけい


    データベースに格納する構造を決定します.

    必要なアイテムを抽出


    子会社カタログ

  • 社名
  • 会社ロゴ
  • 採用タイプ

  • タイプ名
  • 求人情報

  • 支社ID
  • タイプID
  • タイトル
  • 開始日
  • 終了日
  • で試採するかどうか
  • 役職
  • データベーステーブルの作成


    データベース・テーブルを作成します.

    子会社カタログ

    CREATE TABLE `career_list_company` (
        `id` INT NOT NULL AUTO_INCREMENT ,
        company_name VARCHAR(255) NULL ,
        logo VARCHAR(255) NULL ,
        `insert_date` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
        PRIMARY KEY (`id`)
    ) ENGINE = InnoDB;
    子会社の名前とロゴが必要です.

    採用タイプ

    CREATE TABLE `career_list_career_type` (
        `id` INT NOT NULL AUTO_INCREMENT ,
        career_type_name VARCHAR(255) NULL ,
        `insert_date` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
        PRIMARY KEY (`id`)
    ) ENGINE = InnoDB;
    採用タイプの名前さえあればいいです.

    求人情報

    CREATE TABLE `career_list_career` (
        `id` INT NOT NULL AUTO_INCREMENT ,
        career_list_company_id INT NULL ,
        career_list_career_type_id INT NULL ,
        title VARCHAR(255) NULL ,
        start_date VARCHAR(255) NULL ,
        end_date VARCHAR(255) NULL ,
        is_always VARCHAR(255) NULL ,
        dept_name VARCHAR(255) NULL ,
        `insert_date` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
        PRIMARY KEY (`id`)
    ) ENGINE = InnoDB;
    career_list_career表にはcareer_list_companycareer_list_career_typeがあります.
    公告タイトル、開始日、終了日、通常、役職名を記録します.

    サンプルデータの入力


    子会社リストのサンプルデータの入力

    INSERT INTO `career_list_company` (`id`, `company_name`, `logo`, `insert_date`) VALUES
        (1, '케미칼', 'https://www.skcareers.com/Resources/Images/logo/grey-logo-skchemicals.png', '2021-11-01 13:02:15'),
        (2, '오앤에스', 'https://www.skcareers.com/Resources/Images/logo/grey-logo-ons.png', '2021-11-01 13:02:39'),
        (3, '인천석유화학', 'https://www.skcareers.com/Resources/Images/logo/grey-logo-incheonpetrochem.png', '2021-11-01 13:02:55'),
        (4, '브로드밴드', 'https://www.skcareers.com/Resources/Images/logo/grey-logo-skbroadband.png', '2021-11-01 13:03:13'),
        (5, '에코플랜트', 'https://www.skcareers.com/Resources/Images/logo/grey-logo-skec.png', '2021-11-01 13:03:36'),
        (6, '티맵', 'https://www.skcareers.com/Resources/Images/logo/grey-logo-sk-ver2.png', '2021-11-01 13:42:02');

    採用タイプサンプルデータの入力

    INSERT INTO `career_list_career_type` (`id`, `career_type_name`, `insert_date`) VALUES
        (1, '신입', '2021-11-01 13:03:53'),
        (2, '경력', '2021-11-01 13:03:57'),
        (3, '인턴', '2021-11-01 13:04:07'),
        (4, '해외', '2021-11-01 13:04:12'),
        (5, '무관', '2021-11-01 13:12:18');

    採用情報サンプルデータの入力

    INSERT INTO `career_list_career` (`id`, `career_list_company_id`, `career_list_career_type_id`, `title`, `start_date`, `end_date`, `is_always`, `dept_name`, `insert_date`) VALUES
        (1, 1, 1, 'Copolyester 국내 영업/마케팅 신입 채용', '2021-10-01', '2021-11-01', NULL, '영업 / 마케팅', '2021-11-01 13:04:38'),
        (2, 1, 2, 'Copolyester 국내 영업/마케팅 경력 채용', '2021-10-01', '2021-11-01', NULL, '영업 / 마케팅', '2021-11-01 13:04:38'),
        (3, 2, 3, '2021년 하반기 신입구성원 채용', '2021-10-01', '2021-11-02', NULL, NULL, '2021-11-01 13:04:38'),
        (4, 3, 2, '생산기술 엔지니어 경력사원 채용', '2021-10-01', '2021-11-03', NULL, '생산기술', '2021-11-01 13:04:38'),
        (5, 3, 2, '생산관리 엔지니어 경력사원 채용', '2021-10-01', '2021-11-03', NULL, '생산관리', '2021-11-01 13:04:38'),
        (6, 4, 5, '계약직 구성원 모집 (영상편집, Biz정산)', '2021-10-01', '2021-11-01', 'Y', '영상편집 / Biz정산', '2021-11-01 13:04:38'),
        (7, 5, 2, '안전보건관리보조 경력직 채용 (계약직)', '2021-10-01', '2021-11-01', NULL, '안전보건관리', '2021-11-01 13:04:38');

    プログラミングコード


    パラメータが存在するかどうかを確認します。

    index.php
    $company = isset($_GET['company']) ? $_GET['company'] : "";
    $dept = isset($_GET['dept']) ? $_GET['dept'] : "";
    $career_type = isset($_GET['career_type']) ? $_GET['career_type'] : "";
    必要なパラメータではないため、存在する場合にのみ値を設定します.

    会社のリストをインポートします。

    index.php
    $company_list = ICL::db_select("select * from career_list_company");

    採用タイプのリストを取得します。

    index.php
    $career_type_list = ICL::db_select("select * from career_list_career_type");

    検索条件を設定します。

    index.php
    $where = "";
    $where_terms = array();
    
    if ($company != ""){
        $where .= "and company.id = ?";    
        array_push($where_terms, $company);
    }
    
    if ($dept != ""){
        $where .= "and career.dept_name like ?";    
        array_push($where_terms, "%" . $dept . "%");
    }
    
    if ($career_type != ""){
        $where .= "and career_type.id = ?";    
        array_push($where_terms, $career_type);
    }
    placeholderを使用してSQL注入を防止し、placeholderを使用して$where_termsアレイを個別に管理します.

    リストデータをインポートします。

    index.php
    $query = "
    SELECT
    career.id,
    career.title,
    career.start_date,
    career.end_date,
    career.is_always,
    career.dept_name,
    company.company_name,
    company.logo,
    career_type.career_type_name
    FROM
    career_list_career career
    INNER JOIN
    career_list_company company
    ON career.career_list_company_id = company.id
    INNER JOIN
    career_list_career_type career_type
    ON career.career_list_career_type_id = career_type.id
    where 1 = 1
    and career.end_date > NOW()
    $where
    ORDER BY
    career.end_date ASC, company.id asc
    ";
    
    $data = ICL::db_select($query, $where_terms);

    検索パラメータを渡すフォームを設定します。

    <form name="searchForm">
    
    ... 생략 
    
    <button class="form_btn" title="공고 검색하기">
    </form>
    会社のリストを表示します.
    <select name="company" title="관계사구분" class="form_el form_select">
        <option <?= $company == "" ? 'selected="selected"' : '' ?> value="">회사</option>
        <?php foreach($company_list as $row) : ?>
        <option <?= $company == $row->id ? 'selected="selected"' : '' ?> value="<?= $row->id ?>"><?= $row->company_name ?></option>    
        <?php endforeach ?>
    </select>
    入力した値を比較して、検索ウィンドウを保持します.

    タスクを入力できます。

    <div class="form_field">
        <input name="dept" type="text" class="form_el form_input" placeholder="직무" title="직무 입력" value="<?= $dept ?>" />
    </div>
    入力した値を再配置して、検索ウィンドウを保持します.

    採用タイプのリストを表示します。

    <select name="career_type" title="유형구분" class="form_el form_select">
        <option <?= $career_type == "" ? 'selected="selected"' : '' ?> value="">영입유형</option>
        <?php foreach($career_type_list as $row) : ?>
        <option <?= $career_type == $row->id ? 'selected="selected"' : '' ?> value="<?= $row->id ?>"><?= $row->career_type_name ?></option>    
        <?php endforeach ?>
    </select>
    入力した値を比較して、検索ウィンドウを保持します.

    リストを表示します。

    <?php foreach ($data as $row) : ?>                                
    <li>
        <a
            href="/job?id=<?= $row->id ?>"
            title="<?= $row->company_name ?> 영입 공고 보러가기"
            class="card_item coming">
            <span class='fc_red co'><?= $row->company_name ?></span>
            <strong class="txt_elp_multi tit"><?= $row->title ?></strong>
            <div class="efw400 date_box">
    
                ... 생략
                
            </div>
            <img
                src="<?= $row-> logo?>"
                alt="<?= $row->company_name?> 로고"
                class="logo">
        </a>
    </li>
    <?php endforeach ; ?>
    リンクをクリックして/job?id={id}に移動します.
    会社名、公告タイトル、会社ロゴが表示されます.

    終了日が今日の場合は、「今日終了」とマークします。

    <?php if ($row->end_date == date("Y-m-d") && $row->is_always != "Y") : ?>
        <span class="label">오늘 마감</span>
    <?php endif ?>                 

    通年全天候募集公告の場合は、「通年全天候」と明記してください。

    <?php if ($row->is_always == "Y") : ?>
        <span class="label">연중 상시</span>
    <?php endif ?>

    終了日が今日より遅くなると、残り数日のD-{date}が表示されます。

    <?php if ($row->end_date > date("Y-m-d")) : 
        $d_day = date_diff(date_create($row->end_date), date_create(date("Y-m-d")))->format("%a");                
    ?>
        <span class="label">D - <?= $d_day ?></span>
    <?php endif ?>
    <span class="date">~ <?= $row->end_date ?></span>

    処理リストが空の場合。

    <?php if (count($data) == 0) : ?>
        <li class="normal empty"><p class="d_day empty_space" style="font-size:large">현재 진행중인 공고가 없습니다</p></li>
    <?php endif ?>

    開発者確認


    http://localhost:8500/で結果を表示します.

    開発サーバの配備


    すべてのプロジェクトディレクトリをコピーし、FTPで開発サーバにアップロードします.

    企画者の確認を求める


    Webエージェントのプランナーに確認を依頼します.
    開発依頼を依頼したい場合は、FAQを読み、適切であれば[email protected]に連絡してください.