Header Ads

ad728
  • Breaking News

    Chỉnh sửa form đăng ký trong joomla

    Chào mọi người việc đăng ký thành viên là tính năng cần thiết và quan trọng, hơn bao giờ hếtJoomla đã hỗ trợ rất tốt cho bạn về điều này. Tuy nhiên ở mỗi website có đặc tính khác nhau kéo theo cách lấy thông tin từ người dùng cũng khác nhau do đó hôm nay mình muốn chia sẻ với các bạn cách tùy chỉnh form đăng ký trong joomla.
    Qua các bài trước mình cũng có giới thiệu với các bạn về module login trong joomla hay việc sử dụng login ngang phá cách một tí khi bấm vào đăng ký bạn sẽ có các thuộc tính thông tin đăng ký như:
    Form đăng ký cơ bảng trong joomla
    Form đăng ký cơ bảng trong joomla
    Ở đây, nếu xét về gốc độ lấy thông tin đăng ký từ người dùng, tôi là đối tác làm ăn với các bạn form đăng ký của tôi muốn các bạn khai báo số điện thoại, tên công ty… là website bán hàng cần có: SDT, địa chỉ giao hàng …, là dịch vụ khách sạn: cần có CMND… Ví dụ như thế thì rõ ràng form trên không thể đáp ứng được. Ở mỗi mục đích kinh doanh, sử dụng có các thông tin cần cung cấp khác nhau do đó việc bỏ đi hay thêm vào các thuộc tính của form đăng ký lúc này là nhu cầu cần thiết. Các bạn có thể tham khảo bài hướng dẫn sau.
    Trong bài hôm nay mình demo bằng cách thêm hai thuộc tính: company và phone vào form đăng ký này.
    1. Tương tác vào CSDL form đăng ký
    Đầu tiên bạn phải thêm vào hai trường mới đó là company và phone trong CSDL của joomla cụ thể là bảng jos_users (Tùy vào tiền tố mà bạn cài đặt Joomla có thể k là jos_) Ở đây có hai cách làm và code và design, bạn đăng nhập vào PHPMyadmin thực hiện hai truy vấn sau:
    1
    2
    ALTER TABLE jos_users ADD company VARCHAR (100) NOT NULL AFTER username;
    ALTER TABLE jos_users ADD phone VARCHAR (100) NOT NULL AFTER company;
    Đó là cách làm bằng code tham khảo bài: truy vấn SQL bạn cũng có thể Design tham khảo bài làm việc với PHPMyadmin để hiểu thêm.
    Thêm trường vào CSDL form đăng ký Joomla
    Thêm trường vào CSDL form đăng ký Joomla
    Được kết quả như hình thì xem như chúng ta đã xong phần chỉnh sửa CSDL công việc tiếp theo là tương tác đến code trong joomla.
    2. Tương tác vào code đăng ký trong joomla
    Giờ CSDL trong bảng user chúng ta đã có thêm hai trường mới tuy nhiên trong phần code chưa biết được điều đó, để đảm bảo hai thành phần này được liên kết với nhau ta cần có các khai báo như sau.
    Bạn vào địa chỉ trong ở đĩa (Ở đây mình sử dụng localhost) nên đường dẫn của mình là thế này: File: C:\AppServ\www\demo\libraries\joomla\database\table\user.php đại khái là vào file user.php để chỉnh sửa.
    Trong file này tìm đến đoạn code:
    1
    var $username = null;
    Thêm vào sau đó hai dòng code
    1
    2
    3
    4
    var $username = null;
    //Thêm vào
    var $company = null;
    var $phone = null;
    Tiếp theo chúng ta đến các file cấu hình nên giao diện cũng như truy vấn các trường trong form đăng ký thêm vào hai thuộc tính mà đã khai báo ở trên: company và phone.
    Bạn tuy cập vào file C:\AppServ\www\demo\components\com_user\views\register\tmpl\default.php tìm đến đoạn code sau:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <!--
    <tr>
        <td height="40">
            <label id="usernamemsg" for="username">
                <?php echo JText::_( 'User name' ); ?>:
            </label>
        </td>
        <td>
            <input type="text" id="username" name="username" size="40" value="<?php echo $this->escape($this->user->get( 'username' ));?>" class="inputbox required validate-username" maxlength="25" /> *
        </td>
    </tr>
    -->
    Thêm vào kết quả ta được như sau:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <!--
    <tr>
        <td height="40">
            <label id="companymsg" for="company">
                <?php echo JText::_( 'Company' ); ?>:
            </label>
        </td>
        <td>
            <input type="text" id="company" name="company" size="40" value="<?php echo $this->escape($this->user->get( 'company' ));?>" class="inputbox required validate-username" maxlength="25" /> *
        </td>
    </tr>
    <tr>
        <td height="40">
            <label id="phonemsg" for="phone">
                <?php echo JText::_( 'Phone' ); ?>:
            </label>
        </td>
        <td>
            <input type="text" id="phone" name="phone" size="40" value="<?php echo $this->escape($this->user->get( 'phone' ));?>" class="inputbox required validate-username" maxlength="25" /> *
        </td>
    </tr>
    -->
    Chúng ta cứ dựa theo cấu trúc có sẳn của Joomla ở các trường khác mà thêm vào cho hợp lý. Lưu ý nếu muốn bỏ dấu “*” (thông tin bắt buộc) các bạn bỏ đoạn code:
    1
    2
    3
    <!--
          class="inputbox required validate-username" maxlength="25"
    -->
    Vậy xem như đã cấu hình xong file mặc định form đăng ký của joomla, tương tự như thế chúng ta cần phải chỉnh sửa trong file C:\AppServ\www\demo\components\com_user\views\user\tmpl\form.php bạn tìm đến đoạn code sau:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <!--
    <tr>
        <td width="120">
            <label for="name">
                <?php echo JText::_( 'Your Name' ); ?>:
            </label>
        </td>
        <td>
            <input class="inputbox required" type="text" id="name" name="name" value="<?php echo $this->escape($this->user->get('name'));?>" size="40" />
        </td>
    </tr>
    -->
    Bổ sung vào hai trường của chúng ta như sau:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <!--
    <tr>
        <td width="120">
            <label for="company">
                <?php echo JText::_( 'Company' ); ?>:
            </label>
        </td>
        <td>
            <input class="inputbox required" type="text" id="company" name="company" value="<?php echo $this->escape($this->user->get('company'));?>" size="40" />
        </td>
    </tr>
    <tr>
        <td width="120">
            <label for="phone">
                <?php echo JText::_( 'Phone' ); ?>:
            </label>
        </td>
        <td>
            <input class="inputbox required" type="text" id="phone" name="phone" value="<?php echo $this->escape($this->user->get('p'));?>" size="40" />
        </td>
    </tr>
    -->
    Xong phần giao diện cho trong public bạn Save lại tất cả và tiến hành load lại trang đăng ký của mình khi nảy sẽ thấy sự khác biệt.
    Sửa form đăng ký trong Joomla thành công
    Sửa form đăng ký trong Joomla thành công
    Bạn đã thấy đã có hai thành phần company và phone đã hiển thị trên form đăng ký của chúng ta, lúc này bạn đăng ký thành viên bình thường. Tuy nhiên công việc vẫn còn một chút nữa mới xong. Đó chỉ là form của khách đăng ký còn trong phần quản trị mình cũng phải thêm vào giống như thế.
    3. Chỉnh sửa form đăng ký trong phần quản trị joomla
    Tương tự như trên bạn vào địa chỉ C:\AppServ\www\demo\administrator\components\com_users\views\user\tmpl\form.php tìm đến đoạn code sau:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <!--
    <tr>
        <td class="key">
            <label for="username">
                <?php echo JText::_( 'Username' ); ?>
            </label>
        </td>
        <td>
            <input type="text" name="username" id="username" class="inputbox" size="40" value="<?php echo $this->user->get('username'); ?>" autocomplete="off" />
        </td>
    </tr>
    -->
    Tiến hành thêm vào như sau:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <!--
    <tr>
        <td class="key">
            <label for="company">
                <?php echo JText::_( 'Company' ); ?>
            </label>
        </td>
        <td>
            <input type="text" name="company" id="company" class="inputbox" size="40" value="<?php echo $this->user->get('company'); ?>" autocomplete="off" />
        </td>
    </tr>
    <tr>
        <td class="key">
            <label for="phone">
                <?php echo JText::_( 'Phone' ); ?>
            </label>
        </td>
        <td>
            <input type="text" name="phone" id="phone" class="inputbox" size="40" value="<?php echo $this->user->get('phone'); ?>" autocomplete="off" />
        </td>
    </tr>
    -->
    Công việc đến đây đã xong các bạn Test thử và hoàn chỉnh bảng chỉnh sửa của mình.
    Kết luận: Vậy chúng ta đã tìm hiểu xong phần sửa from đăng ký thành viên trong joomla, phần này cũng khá là quan trọng trong việc xây dựng website cho doanh ngiệp đặc biệt là website thương mại điện tử bằng joomla , ở đây mình chỉ thêm demo có hai trường như thế các bạn phát triển thêm cứ đựa vào cấu trúc của nó mà chiến. Chúc thành công!

    Không có nhận xét nào

    Post Top Ad

    Post Bottom Ad