Other Cách tạo ra một tùy chọn ACP với mục không giới hạn

PVS

Super Moderator
Thành viên BQT
Tham gia
28/02/2015
Bài viết
16,829
Được Like
12,687
Cách tạo ra một tùy chọn ACP với mục không giới hạn

Mục lục
  1. Giới thiệu
  2. Yêu cầu
  3. Thiết lập cơ bản
  4. Bước 1: Tạo một Option mới
  5. Bước 2: Tạo một Admin Template mới
  6. In-Depth Giải thích & Bổ sung
    1. Data-Type: Array
    2. Admin Template: Foreach-Loop
    3. Admin Template: Styling
    4. Altering The Entry Field Scheme
Giới thiệu:

Unbenannt-2.jpg

Yêu cầu:

Bạn nên mang theo một số kiến thức cơ bản về cách xử lý những thứ khác nhau trong ACP XenForo. Hướng dẫn này không phải là 100% hướng về người mới bắt đầu.

Tùy thuộc vào cách bạn sẽ sử dụng các tùy chọn, bạn có nên làm quen với xử lý tùy chọn mảng XenForo bên trong tùy chỉnh php-script của bạn hoặc trong template XenForo.

Thiết lập cơ bản

Chúng tôi sẽ bắt đầu các giả định rằng bạn đã tạo ra một addon cùng với một nhóm tùy chọn cho nó, mà nên nhìn hơi như thế này:

Unbenannt-4.jpg

Có khả năng là bạn đã làm để tạo ra các addon của bạn, nhưng nếu không: nhớ bật chế độ debug.

Bước 1: Tạo một Option mới

Nhấn vào '+ Add Option' để bắt đầu tạo tùy chọn mới của bạn. Đối với một thiết lập cơ bản, chúng tôi sẽ sử dụng các tùy chọn sau đây để tạo ra một tùy chọn cơ bản cho quá trình của chúng tôi.
  • Edit Format: Named Template
  • Format Paramenters: Choose a unique name here, at best related to your addon. This is the name for the admin template we are going to create later on, so remember it!
  • Data Type: array
  • Default Value: a:{}
  • Array Sub-Options: *
Ngoài ra cung cấp cho tùy chọn ID, tiêu đề của bạn và tất cả những thứ cần thiết khác để tạo ra nó. Gán cho nó đến bất cứ nơi nào bạn muốn nó xuất hiện, sau đó nhấn "Save Option".

Đừng lo lắng nếu bạn không thể nhìn thấy bất kỳ tùy chọn mới sau khi lưu. Điều này xuất phát từ thực tế, chúng ta đang sử dụng một template để lựa chọn của chúng tôi sẽ được hiển thị, mà không phải là chưa từng tồn tại và do hiển thị gì cả. Chúng ta sẽ thay đổi điều này trong bước tiếp theo.

Bước 2: Tạo một Admin Template mới

Điều hướng đến Development -> Admin Templates and hit '+ Create Admin Template'. Nhập tên duy nhất mà bạn đã nhập vào "Format Parameters" trước và sau đó sao chép đoạn mã cơ bản sau đây vào template bây giờ:
Mã:
<xen:controlunit label="{$preparedOption.title}">
<ul class="FieldChoices">
<xen:foreach loop="$preparedOption.option_value" key="$choice" value="$text">
<xen:if is="{$text}">
<li>
<input type="text" name="{$fieldPrefix}[{$preparedOption.option_id}][]" value="{$text}" class="textCtrl" placeholder="{xen:phrase text}" size="25" />
</li>
</xen:if>
</xen:foreach>
<li>
<input type="text" name="{$fieldPrefix}[{$preparedOption.option_id}][]" class="textCtrl" placeholder="{xen:phrase text}" size="25" />
</li>
</ul>
<input type="button" value="{xen:phrase add_additional_choice}" class="button smallButton FieldAdder" data-source="ul.FieldChoices li" />

<p class="explain">{xen:raw $preparedOption.explain}</p>
{xen:raw $editLink}
</xen:controlunit>

Template này hiện nay có khả năng reuseable cho mỗi tùy chọn bạn muốn có trong kế hoạch đó. Bạn chỉ cần tạo một bản sao nếu bạn có kế hoạch những việc như thay đổi các loại đầu vào cho một số hoặc một cái gì đó tương tự. Nó tự động dò tìm

Bây giờ bạn có thể quay trở lại nhóm lựa chọn của bạn và xem template mới hoàn toàn làm việc.

Unbenannt-6.jpg

In-Depth Giải thích & Bổ sung

  • Data-Type: Array
Tóm lại nói điều này sẽ cho XenForo lưu trữ tất cả các lĩnh vực của bạn thành một lựa chọn duy nhất trong cơ sở dữ liệu và tải nó như mảng sau này. Giá trị mặc định chỉ là một mảng trống rỗng đơn giản. Bạn sẽ tìm thấy tất cả các mục trong một mảng mà không chỉ ra lệnh, vì vậy bạn cần phải làm lại mảng đầu tiên của bạn hoặc bạn sẽ chỉ có thể lặp qua tất cả các yếu tố cùng một lúc, mà có lẽ là những gì mặc dù bạn muốn.

  • Admin Template: Foreach-Loop (LOC 3-9)
Bảy dòng code chịu trách nhiệm cho việc tải tùy chọn lưu trữ của bạn và đại diện cho họ trong nhóm tùy chọn. Nếu bản tường trình bắt tất cả các lĩnh vực có sản phẩm nào, đã được lưu trữ trước đó và loại bỏ chúng vào thời gian tới bạn tiết kiệm. Bạn vẫn phải có lĩnh vực có sản phẩm trong templates/php code của bạn.

  • Admin Template: Styling
Khi bạn có kế hoạch sử dụng rất nhiều các tùy chọn, bạn có thể yêu cầu additional styling. Bạn có thể muốn hạn chế sự đóng ul-tag chiều cao và làm cho nó cuộn hoặc hiển thị các mục nhập các lĩnh vực như các yếu tố inline-block cho phép nhiều lĩnh vực xuất hiện trong một dòng duy nhất. Bạn có thể sử dụng inline-styling hoặc bao gồm một admin template thứ hai là bạn sẽ có một template css XenForo bình thường. Xin lưu ý rằng inline-styling từ một nút hoặc kèm theo l-tag của nó không sao chép khi nhấn nút "Thêm lựa chọn bổ sung".

  • Altering The Entry Field Scheme
Bạn có thể tìm thấy chính mình trong một tình huống mà bạn không cần đầu vào văn bản đơn giản hoặc nhập một lúc nhiều văn bản cho mỗi tùy chọn như trong các tùy chọn lĩnh vực tùy chỉnh thiết lập. Bạn chỉ có thể thay đổi code bên trong li-tag để đạt được điều này, được xây dựng trong script XenForo sẽ đảm bảo rằng bạn vẫn tạo ra một bản sao chính xác của chương trình mà entry field khi nhấn nút 'Thêm lựa chọn khác ". Hãy nhớ để giữ cho các lĩnh vực có sản phẩm dưới đây vòng lặp foreach phù hợp với những thay đổi này.

Chúc các bạn thành công.


Nguồn: xenforo.com​
 

Hướng dẫn sử dụng

XenForo 1 XenForo 2
Translate by PVS

Dịch vụ XenForo của VNXF

Mobile/Zalo: 0906081284

Telegram: anhanhxf

Chỉ nhận web nội dung lành mạnh

Nhà Tài Trợ

Mút Xốp Không Gian
Mút Sofa Không Gian
Top Bottom