Posts

Showing posts from February, 2020

Lập trình tạo một MVC Component đơn giản cho Joomla. Phần 6. Phân trang

Image
Trong bài viết này Đặt vấn đề Ý tưởng chung Chỉnh sửa view Chỉnh sửa layout Đặt vấn đề 🔝 Như đã thấy qua các phần trước, giao diện mặc định của component là trang hiển thị danh sách các sinh viên có trong CSDL. Trong CSDL có bao nhiêu sinh viên thì có bấy nhiêu sẽ hiển thị hết ra trên trang này. Rõ ràng là nếu số lượng sinh viên lớn lên thì cách hiển thị như thế là không ổn. Các website hiện nay đều sử dụng kỹ thuật phân trang (pagination) để xử lý việc hiển thị trong tình huống như thế này. Phần nội dung về phân trang như trên đây bao gồm một hộp chọn để người dùng lựa chọn số phần tử tối đa (limit) được hiển thị trên một trang, thông tin về thứ tự kết quả (Results Counter), thông tin về thứ tự trang (Pages Counter) và một thanh điều hướng (List Footer). Với sự hỗ trợ của Joomla, việc thêm tính năng phân trang là rất đơn giản. Nhưng trước khi tiếp tục xem phần tiếp theo của bài viết, bạn đọc cần sử dụng tính năng "Thêm sinh viên" đã triển khai ở bước trước

Tổng hợp các bài viết trên blog này về Joomla

Tổng hợp tài liệu về lập trình Joomla Bắt đầu lập trình Joomla Component Lựa chọn PHPStorm để lập trình Joomla Lập trình tạo một MVC Component đơn giản cho Joomla: Phần 1 , Phần 2 , Phần 3 , Phần 4 , Phần 5 ,  Phần 6

Tổng hợp tài liệu về lập trình Joomla

Trong bài viết này Tài liệu từ cộng đồng Joomla Tài liệu khác Tài liệu từ cộng đồng Joomla 🔝 Setting up your workstation for Joomla! development Joomla Standard Icomoon Fonts Joomla MVC Component Program Flow JController and its subclass usage overview Absolute Basics of How a Component Functions Accessing the database using JDatabase: Joomla 3 , Joomla 4 Using JPagination in your component How to use user state variables API Guides (usage of Joomla classes such as JTable, JForm, JDatabase, JUser, Menu...) Display error messages and notices Developing an MVC Component: Joomla 3 , Joomla 4 Creating a Simple Module: Joomla 3 , Joomla 4 Module Development Portal Creating a Plugin for Joomla:  Joomla 3 ,  Joomla 4 Plugin Developer Overview Plugin Development Portal Create a content plugin: Joomla 3 Developing a component frontend update function: Joomla 3 Using multiple models in an MVC component Using the JToolBar class in the frontend: Joomla 2.5 , Joomla 3

Lập trình tạo một MVC Component đơn giản cho Joomla. Phần 5. Xóa phần tử

Image
Trong bài viết này Mô tả chức năng Xây dựng controller Logic hoạt động của chức năng xóa Chỉnh sửa view và layout mặc định Chỉnh sửa model Mô tả chức năng 🔝 Chức năng tiếp theo mà chúng ta cần phát triển là xóa một phần tử khỏi danh sách. Người dùng có thể muốn xóa 1 phần tử, hoặc cũng có thể muốn đánh dấu nhiều phần tử rồi xóa đồng loạt. Khi người dùng duyệt danh sách các phần tử, ta sẽ hiển thị tương ứng với mỗi phần tử một checkbox. Trên toolbar ta đặt nút "Xóa" để cho phép người dùng xóa những phần tử đã chọn. Xây dựng controller  🔝 Xóa một hoặc nhiều phần tử là một thao tác thực hiện trên danh sách phần tử. Vì thế, để thực thi tao tác này thì người ta thường xây dựng controller có tên là dạng số nhiều của đối được quản lý. Trong trường hợp của ta, đối tượng là sinh viên nên tên controller sẽ là ' students '. Cũng như add và edit, delete là một thao tác phổ quát trong quản lý, vì thế Joomla cũng đã cung cấp sẵn lớp controller hỗ trợ thao

Lập trình tạo một MVC Component đơn giản cho Joomla. Phần 4. Chỉnh sửa một phần tử

Image
Trong bài viết này Ý tưởng chung Logic hoạt động của chức năng chỉnh sửa Bổ sung chức năng chỉnh sửa Chỉnh sửa tiêu đề của form nhập thông tin Chỉnh sửa mã của layout Ý tưởng chung 🔝 Chỉnh sửa thông tin về một phần tử hiện có là một thao tác không thể thiếu trong công cụ quản lý. Phần này sẽ trình bày cách thức xây dựng chức năng cơ bản này. Khi người dùng duyệt danh sách các phần tử (sinh viên), ta có thể cung cấp chức năng "chỉnh sửa" thông qua đường link đặt dưới tên của mỗi phần tử hoặc (và) nút "Edit" đặt bên cạnh mỗi phần tử. Ở phần trước, để xây dựng chức năng "Thêm sinh viên", ta đã sử dụng lớp JControllerForm . Ở đó, ta cũng đã chỉ ra rằng trong số các phương thức mà lớp này hỗ trợ có cả phương thức edit() . Sẽ không khó để đoán được rằng đây chính là phương thức mà có thể giúp ta xây dựng chức năng chỉnh sửa thông tin một phần tử. Logic hoạt động của chức năng chỉnh sửa  🔝 Khi chúng ta thừa kế lớp JControllerForm để xây dựng

Lập trình tạo một MVC Component đơn giản cho Joomla. Phần 3. Thêm một phần tử vào danh sách

Image
Trong bài viết này Ý tưởng chung Logic hoạt động của chức năng thêm phần tử Xây dựng controller Xây dựng model Tạo view và layout Kết quả giai đoạn 1 Bổ sung nút "Thêm sinh viên" Bổ sung nút "Lưu" và nút "Hủy" Ý tưởng chung 🔝 Ở phần trước, ta đã xem xét việc xây dựng chức năng hiển thị danh sách sinh viên có trong cơ sở dữ liệu. Đây là chức năng mặc định, được thực thi khi trong truy vấn không có giá trị nào được thiết lập cho tham số ' task '. Và chức năng mặc định này được thực thi bởi controller mặc định, gọi đến view mặc định, sử dụng layout mặc định. Ở phần này, ta sẽ xem xét việc xây dựng một chức năng mới: chức năng thêm một sinh viên vào danh sách. Và đây không phải là chức năng mặc định nên để thông báo cho component biết rằng người dùng muốn thực thi chức năng này thì ta cần thiết lập giá trị thích hợp cho tham số ' task ' trong truy vấn HTTP. Như đã trình bày trước đây, giá trị của tham số ' task ' có dạng

Lập trình tạo một MVC Component đơn giản cho Joomla. Phần 2. Hiển thị danh sách các phần tử

Image
Trong bài viết này Đặt vấn đề Entry Point Controller mặc định Xây dựng view và layout mặc định Xây dựng model Đặt vấn đề 🔝 Phần này sẽ trình bày việc xây dựng chức năng xem danh sách sinh viên. Chức năng xem danh sách sinh viên sẽ là chức năng mặc định. Tức là khi người dùng (người quản trị) lần đầu truy cập vào component (khi nhấn vào menu "Quản lý sinh viên" hoặc khi nhập URL http://localhost/administrator/index.php?option=com_students), ta sẽ trả về cho họ trang chứa danh sách sinh viên như hình dưới đây Ta sẽ hiển thị dòng tiêu đề "Danh sách sinh viên", sau đó là danh sách các sinh viên có trong CSDL. Entry point  🔝 Hãy trở lại với nội dung của file khởi động (entry-point) \com_students\students.php: $controller = JControllerLegacy::getInstance('Students'); $task = JFactory::getApplication()->input->getCmd('task'); $controller->execute($task); Trước hết, tên gọi JControllerLegacy chỉ là một alias của lớp BaseCont