06.06.2008, 18:45
Willkommen zurück für einen weiteren Überblick über das MyBB 1.4 Administrator Control Panel - dieses mal wenden wir uns den "Benutzer & Gruppen"-Tabs, sowie einige der technischen Entscheidungen zu.
![[Bild: codeflashlight.png]](http://blog.mybboard.net/wp-content/uploads/2008/03/codeflashlight.png)
Benutzer & Gruppen
Benutzer
Wie viele andere Abschnitte des neuen Admin-CP auch, ist der User-Management Teil recht unterschiedlich, im gegensatz zu MyBB 1,2. Der Fokus des neuen Abschnitts ist, schnell und leicht User zu finden und zu verwalten. Wenn Sie auf den neuen "Users & Groups"-Tab gehen, werden Sie automatisch zur Nutzer-Seite geleitet, von der Sie schnell Benutzer finden, zusammenführen, und erstellen können. Wenn Sie den Benutzer gefunden haben den sie suchten, werden eine Reihe von Optionen zur Verfügung stehen, einschließlich das bearbeiten, löschen oder bannen der Nutzer, Benutzer Herkunft, verwendete IP-Adressen von diesem Nutzer, und die Benutzer-Attachments.
![[Bild: users_merge.thumbnail.png]](http://blog.mybboard.net/wp-content/uploads/2008/03/users_merge.thumbnail.png)
In dem ersten Screenshot oben werden Sie wahrscheinlich feststellen, dass die Seite mit der Auflistung aller registrierten Benutzern des Boards in Visitenkarte Stil beginnt. Dies ist Teil einer neuen Funktion namens "Ansichten", eine großartige neue Form der sie schnell an die Informationen, gelangen, die Sie regelmäßig benötigen. Im Wesentlichen sind "Ansichten" gespeicherte Live-Suchen. In dem Screenshot z.B. ist die Standard-"Alle Benutzer"-Ansicht ausgewählt und listet deshalb alle registrierten Benutzer des Boards, zusammen mit der E-Mail-Adresse, Datum der Registrierung, die letzte Anmeldung und der Beitrags-Zähler. Sie können die Ansicht bearbeiten oder eine neue erstellen, die verschiedene Informationen je primäre Benutzer-Gruppe, zusätzliche Nutzergruppen, Bewertung und so weiter, anzeigt. Sie können auch Suchkriterien und Sortierung-Optionen für jede Ansicht angeben, die Sie erstellen, ebenso wie Sie die Ergebnisse entweder in einer Liste oder im Visitenkarte Stil anzeigen lassen können.
![[Bild: users_table.thumbnail.png]](http://blog.mybboard.net/wp-content/uploads/2008/03/users_table.thumbnail.png)
Es gibt eine Vielzahl von Informationen für jeden Benutzer zu speichern, wie ihre Angaben, Informationen über die Profile und persönliche Optionen. Im Front-End waren diese Optionen schon immer in verschiedene Abschnitte der User CP gruppiert, um es den Nutzern zu erleichtern, damit sie genau das finden, was sie ändern wollen. Wir haben eine ähnliche Idee in das neue Admin-CP eingebracht. Wenn Sie einen Benutzer zu bearbeiten wollen, gelangen Sie direkt zu einer Seite mit fünf Tabs, bei denen nur die relevanten Optionen angezeigt werden. Diese Tabs sind "Übersicht", "Profil", "Account-Einstellungen", "Signatur" und "Avatar".
![[Bild: users_edit6.thumbnail.png]](http://blog.mybboard.net/wp-content/uploads/2008/03/users_edit6.thumbnail.png)
Gruppen
Wenn Sie auf den "Gruppen"-Tab klicken, werden Sie auf eine Seite geleitet, die sehr der MyBB 1.2 Seite ähnelt. Sie sehen eine Liste der aktuellen Benutzer-Gruppen zusammen mit der Gruppe Beschreibung, die Zahl der Nutzer in der Gruppe, ihre Reihenfolge in der "Forum Team" Seite und die entsprechenden Bearbeitungs-Optionen. Es gibt auch ein neues Symbol neben jeder Gruppe, die es offensichtlicher machen, ob es eine benutzerdefinierte Gruppe ist oder es sie standardmäßig gibt. Sie werden einen signifikanten Unterschied erkennen, wenn Sie eine Gruppe bearbeiten. Anstatt alle Optionen der Gruppe anzuzeigen, werden diese nun getrennt in vier verschiedenen Registerkarten angezeigt, nämlich "Allgemein", "Foren und Beiträge", "Nutzer und Zugriffsrechte" und "Verschiedenes".
![[Bild: users_groups_edit4.thumbnail.png]](http://blog.mybboard.net/wp-content/uploads/2008/03/users_groups_edit4.thumbnail.png)
Benutzer-Titel
Der Benutzer Titel Abschnitt besitzt nicht viele Unterschiede, als von der MyBB1.2 Seite. Es erlaubt Ihnen Standard-Benutzer-Titel zu erstellen, die dann Mitglieder automatisch zugewiesen werden, wenn sie die entsprechenden Vorraussetzung an Beiträgen besitzen. Das Interface ist genau wie sein MyBB 1.2 Gegenstück.
![[Bild: users_titles_edit.thumbnail.png]](http://blog.mybboard.net/wp-content/uploads/2008/03/users_titles_edit.thumbnail.png)
Banning
Eines der Dinge, die wir als chaotisch im MyBB1.2 angesehen haben, waren die Bann-Optionen, die nicht am besten Platz im Admin-CP platziert wurden. Man konnte einen Nutzer in der Banning-Seite sperren, aber wenn man spezifische Benutzernamen, IP-oder E-Mail-Adressen sperren wollte, musste man in den Einstellungsbereich wechseln, um dies vor zu nehmen. Im MyBB 1.4 sind diese Optionen nun an der gleichen Stelle, dies macht es leichter die spezifischen Ban-Optionen zu finden. Wir haben die Screenshots von den "Banned IP", "Nicht erlaubte Benutzernamen" und "Nicht erlaubte E-Mail-Adressen" Seiten in Teil 1 beigefügt, da sie technisch unter den Konfigurations Teil des Admin-CP fallen, hier ist nun ein Screenshot der "Gebannte-Konten"-Seite die unter die Benutzer Teil des Admin-CP fällt.
![[Bild: users_banning.thumbnail.png]](http://blog.mybboard.net/wp-content/uploads/2008/03/users_banning.thumbnail.png)
Admin-Berechtigungen
Der "Admin-Berechtigungen"-Teil erhielt die gleiche Art von Tabbed-Layout Änderungen, wie die Benutzer- und Gruppen-Bearbeitungs Seiten. Die Berechtigungen verteilen sich über fünf Tabs, die den wichtigsten Tabs des Admin-CP entsprechen.
![[Bild: users_adminperms_groups.thumbnail.png]](http://blog.mybboard.net/wp-content/uploads/2008/03/users_adminperms_groups.thumbnail.png)
Massen eMail
Der Masen-eMail Teil hat sich ein gutes bisschen geändert. Das erste, was Sie sehen, wenn Sie auf die Massen-eMail Seite gehen, ist die aktuelle Nachrichten-Warteschlange, diese enthält Massen-eMails, die derzeit noch abschickt werden müssen. Ja, dies bedeutet, dass Massen-eMails nun mit Hilfe der Task-System versenden können und man kann auch Massen-eMails zu einem späteren Zeitpunkt versenden. Abgesehen von den offensichtlichen Layout-Änderungen, bleiben viele der Optionen die gleichen, aber mit einer erheblichen Ergänzung. Es ist nun möglich eMails in Nur-Text-, HTML-Format, oder beides zu versenden. Wenn in beiden Formaten eine versenden, können Sie entweder eine spezielle HTML-und Nur-Text-Version der Nachricht angeben oder Sie beauftragen MyBB dazu, die Nur-Text-Version automatisch auf Basis der HTML-Version zu erstellen.
![[Bild: users_massmail_send1.thumbnail.png]](http://blog.mybboard.net/wp-content/uploads/2008/03/users_massmail_send1.thumbnail.png)
Gruppen Promotion
Das Gruppen Promotion-System ist eine wichtige neues Funktion im MyBB 1.4. Das System erlaubt ihnen Nutzer von bestimmten Gruppen in eine andere primäre bzw sekundäre Gruppe zu übertragen, sobald diese bestimmte Kriterien erfüllen, wie Beitragsanzahl, der Bewertung und die registrierte Zeit. Übertragungen werden dann mit Hilfe des neuen Task-System ausgeführt. Dieses System löst viele Anfragen, welche von Administratoren gestellt wurden haben, um Foren oder Funktionen für Benutzer freizugeben.
![[Bild: users_promotions_logs.thumbnail.png]](http://blog.mybboard.net/wp-content/uploads/2008/03/users_promotions_logs.thumbnail.png)
Technische Entscheidungen
Seit dem Beginn der MyBB 1.4 Entwicklung bis heute, hat sich der Code von MyBB 1.4 fast verdoppelt, im Vergleich zu MyBB 1.2. Hier sind einige Zahlen:
MyBB 1.2:
Quellcode-Zeilen (ohne Leerzeilen): 65165 Zeilen
Kommentar Zeilen: 6.994
MyBB 1.4:
Quellcode-Zeilen (ohne Leerzeilen): 113503 Zeilen
Kommentar Zeilen: 13.722
[Fortsetzung der Technischen Entscheidung folgt, vielleicht]
Ich bitte hiermit um Entschuldigung, dass es erstens so lange gedauert, Teil 3 zu übersetzen, da ich alles alleine übersetzen musste, da mir die Übersetzer nicht helfen wollten und zweitens für den kleinen Teil der Tech. Entscheidung, es wurde einfach zu viel.
Hier der weitere Teil in englisch:
Throughout all of MyBB 1.4’s development process, we’ve seen many new and exciting features. I’m going to talk a bit about some of the less known and more technical side of things in MyBB 1.4, so feel free to skip over this section if you lack interest when it comes to code.
PostgreSQL, SQLite 2, and SQLite 3 (via PDO) are all supported in MyBB 1.4. What’s more is we’ve implemented Slave/Master technologies allowing people to hook up multiple SQL servers. If I had two MySQL servers, the code in inc/config.php for databases would look something along the lines of this:
$config['database']['type'] = 'mysqli';
$config['database']['read']['database'] = 'mybb';
$config['database']['read']['table_prefix'] = 'mybb_';
$config['database']['read']['hostname'] = 'localhost_read_address';
$config['database']['read']['username'] = 'root';
$config['database']['read']['password'] = '';
$config['database']['write']['database'] = 'mybb';
$config['database']['write']['table_prefix'] = 'mybb_';
$config['database']['write']['hostname'] = 'localhost_write_address';
$config['database']['write']['username'] = 'root';
$config['database']['write']['password'] = '';
You could even have multiple read and write databases like:
$config['database']['type'] = 'mysqli';
$config['database']['read'][]['database'] = 'mybb';
$config['database']['read'][]['table_prefix'] = 'mybb_';
$config['database']['read'][]['hostname'] = 'localhost_read_address';
$config['database']['read'][]['username'] = 'root';
$config['database']['read'][]['password'] = '';
$config['database']['read'][]['database'] = 'mybb';
$config['database']['read'][]['table_prefix'] = 'mybb_';
$config['database']['read'][]['hostname'] = 'localhost_read_address2';
$config['database']['read'][]['username'] = 'root';
$config['database']['read'][]['password'] = '';
$config['database']['write'][]['database'] = 'mybb';
$config['database']['write'][]['table_prefix'] = 'mybb_';
$config['database']['write'][]['hostname'] = 'localhost_write_address';
$config['database']['write'][]['username'] = 'root';
$config['database']['write'][]['password'] = '';
$config['database']['write'][]['database'] = 'mybb';
$config['database']['write'][]['table_prefix'] = 'mybb_';
$config['database']['write'][]['hostname'] = 'localhost_write_address2';
$config['database']['write'][]['username'] = 'root';
$config['database']['write'][]['password'] = '';
Now, in the event that you do have multiple read / write servers setup in the config, MyBB would connect to all the write servers so it can update all of them, and select 1 read server at random. I wish we could easily detect the load of the read servers and pick the lowest one, but unfortunately that’s not very practical yet.
If you are going to have multiple read and write servers, you should put your read servers on a load balancer rather than in MyBB’s config file. The only difference is you would point the read array towards your load balancer.
On a different note, I’m sure you saw the picture at the top of this blog post depicting some code. This code is from MyBB 1.4 and it is of the new code in the ACP; specifically, the Users page in the ACP. I won’t go into detail about all the new code in the ACP but I’ll briefly cover what was shown in that picture.
The first thing you’ll notice is $form->output_row(…). What it does is fairly obvious but just in case, it outputs a row to your MyBB ACP page. The arguments for this function are as follows:
title - string The title of the row.
description - string The description of the row/field.
content - string The HTML content to show in the row.
label_for - string The ID of the control this row should be a label for.
options - array Array of options for the row cell.
row_options - array Array of options for the row container.
output_row(title, description="", content="", label_for="", options=array(), row_options=array())
Now you may be thinking we use pure HTML all the time in $form->output_row. As you look closer at the picture, however, you will also see $form->generate_select_box and $form->generate_check_box, the arguments of which are:
name - string The name of the select box.
option_list - array Array of options in key => val format.
selected - mixed Either a string containing the selected item or an array containing multiple selected items (options['multiple'] must be true)
options - array Array of options for the select box (multiple, class, id, size)
generate_select_box(name, option_list, selected=array(), options=array())
and
name - string The name of the check box.
value - string The value of the check box.
label - string The label of the check box if there is one.
options - array Array of options for the check box (id, class, checked)
generate_check_box(name, value="", label="", options=array())
Those are just two of several functions that allow you to generate code automatically for the new ACP.
![[Bild: codeflashlight.png]](http://blog.mybboard.net/wp-content/uploads/2008/03/codeflashlight.png)
Benutzer & Gruppen
Benutzer
Wie viele andere Abschnitte des neuen Admin-CP auch, ist der User-Management Teil recht unterschiedlich, im gegensatz zu MyBB 1,2. Der Fokus des neuen Abschnitts ist, schnell und leicht User zu finden und zu verwalten. Wenn Sie auf den neuen "Users & Groups"-Tab gehen, werden Sie automatisch zur Nutzer-Seite geleitet, von der Sie schnell Benutzer finden, zusammenführen, und erstellen können. Wenn Sie den Benutzer gefunden haben den sie suchten, werden eine Reihe von Optionen zur Verfügung stehen, einschließlich das bearbeiten, löschen oder bannen der Nutzer, Benutzer Herkunft, verwendete IP-Adressen von diesem Nutzer, und die Benutzer-Attachments.
In dem ersten Screenshot oben werden Sie wahrscheinlich feststellen, dass die Seite mit der Auflistung aller registrierten Benutzern des Boards in Visitenkarte Stil beginnt. Dies ist Teil einer neuen Funktion namens "Ansichten", eine großartige neue Form der sie schnell an die Informationen, gelangen, die Sie regelmäßig benötigen. Im Wesentlichen sind "Ansichten" gespeicherte Live-Suchen. In dem Screenshot z.B. ist die Standard-"Alle Benutzer"-Ansicht ausgewählt und listet deshalb alle registrierten Benutzer des Boards, zusammen mit der E-Mail-Adresse, Datum der Registrierung, die letzte Anmeldung und der Beitrags-Zähler. Sie können die Ansicht bearbeiten oder eine neue erstellen, die verschiedene Informationen je primäre Benutzer-Gruppe, zusätzliche Nutzergruppen, Bewertung und so weiter, anzeigt. Sie können auch Suchkriterien und Sortierung-Optionen für jede Ansicht angeben, die Sie erstellen, ebenso wie Sie die Ergebnisse entweder in einer Liste oder im Visitenkarte Stil anzeigen lassen können.
Es gibt eine Vielzahl von Informationen für jeden Benutzer zu speichern, wie ihre Angaben, Informationen über die Profile und persönliche Optionen. Im Front-End waren diese Optionen schon immer in verschiedene Abschnitte der User CP gruppiert, um es den Nutzern zu erleichtern, damit sie genau das finden, was sie ändern wollen. Wir haben eine ähnliche Idee in das neue Admin-CP eingebracht. Wenn Sie einen Benutzer zu bearbeiten wollen, gelangen Sie direkt zu einer Seite mit fünf Tabs, bei denen nur die relevanten Optionen angezeigt werden. Diese Tabs sind "Übersicht", "Profil", "Account-Einstellungen", "Signatur" und "Avatar".
Gruppen
Wenn Sie auf den "Gruppen"-Tab klicken, werden Sie auf eine Seite geleitet, die sehr der MyBB 1.2 Seite ähnelt. Sie sehen eine Liste der aktuellen Benutzer-Gruppen zusammen mit der Gruppe Beschreibung, die Zahl der Nutzer in der Gruppe, ihre Reihenfolge in der "Forum Team" Seite und die entsprechenden Bearbeitungs-Optionen. Es gibt auch ein neues Symbol neben jeder Gruppe, die es offensichtlicher machen, ob es eine benutzerdefinierte Gruppe ist oder es sie standardmäßig gibt. Sie werden einen signifikanten Unterschied erkennen, wenn Sie eine Gruppe bearbeiten. Anstatt alle Optionen der Gruppe anzuzeigen, werden diese nun getrennt in vier verschiedenen Registerkarten angezeigt, nämlich "Allgemein", "Foren und Beiträge", "Nutzer und Zugriffsrechte" und "Verschiedenes".
Benutzer-Titel
Der Benutzer Titel Abschnitt besitzt nicht viele Unterschiede, als von der MyBB1.2 Seite. Es erlaubt Ihnen Standard-Benutzer-Titel zu erstellen, die dann Mitglieder automatisch zugewiesen werden, wenn sie die entsprechenden Vorraussetzung an Beiträgen besitzen. Das Interface ist genau wie sein MyBB 1.2 Gegenstück.
Banning
Eines der Dinge, die wir als chaotisch im MyBB1.2 angesehen haben, waren die Bann-Optionen, die nicht am besten Platz im Admin-CP platziert wurden. Man konnte einen Nutzer in der Banning-Seite sperren, aber wenn man spezifische Benutzernamen, IP-oder E-Mail-Adressen sperren wollte, musste man in den Einstellungsbereich wechseln, um dies vor zu nehmen. Im MyBB 1.4 sind diese Optionen nun an der gleichen Stelle, dies macht es leichter die spezifischen Ban-Optionen zu finden. Wir haben die Screenshots von den "Banned IP", "Nicht erlaubte Benutzernamen" und "Nicht erlaubte E-Mail-Adressen" Seiten in Teil 1 beigefügt, da sie technisch unter den Konfigurations Teil des Admin-CP fallen, hier ist nun ein Screenshot der "Gebannte-Konten"-Seite die unter die Benutzer Teil des Admin-CP fällt.
Admin-Berechtigungen
Der "Admin-Berechtigungen"-Teil erhielt die gleiche Art von Tabbed-Layout Änderungen, wie die Benutzer- und Gruppen-Bearbeitungs Seiten. Die Berechtigungen verteilen sich über fünf Tabs, die den wichtigsten Tabs des Admin-CP entsprechen.
Massen eMail
Der Masen-eMail Teil hat sich ein gutes bisschen geändert. Das erste, was Sie sehen, wenn Sie auf die Massen-eMail Seite gehen, ist die aktuelle Nachrichten-Warteschlange, diese enthält Massen-eMails, die derzeit noch abschickt werden müssen. Ja, dies bedeutet, dass Massen-eMails nun mit Hilfe der Task-System versenden können und man kann auch Massen-eMails zu einem späteren Zeitpunkt versenden. Abgesehen von den offensichtlichen Layout-Änderungen, bleiben viele der Optionen die gleichen, aber mit einer erheblichen Ergänzung. Es ist nun möglich eMails in Nur-Text-, HTML-Format, oder beides zu versenden. Wenn in beiden Formaten eine versenden, können Sie entweder eine spezielle HTML-und Nur-Text-Version der Nachricht angeben oder Sie beauftragen MyBB dazu, die Nur-Text-Version automatisch auf Basis der HTML-Version zu erstellen.
Gruppen Promotion
Das Gruppen Promotion-System ist eine wichtige neues Funktion im MyBB 1.4. Das System erlaubt ihnen Nutzer von bestimmten Gruppen in eine andere primäre bzw sekundäre Gruppe zu übertragen, sobald diese bestimmte Kriterien erfüllen, wie Beitragsanzahl, der Bewertung und die registrierte Zeit. Übertragungen werden dann mit Hilfe des neuen Task-System ausgeführt. Dieses System löst viele Anfragen, welche von Administratoren gestellt wurden haben, um Foren oder Funktionen für Benutzer freizugeben.
Technische Entscheidungen
Seit dem Beginn der MyBB 1.4 Entwicklung bis heute, hat sich der Code von MyBB 1.4 fast verdoppelt, im Vergleich zu MyBB 1.2. Hier sind einige Zahlen:
MyBB 1.2:
Quellcode-Zeilen (ohne Leerzeilen): 65165 Zeilen
Kommentar Zeilen: 6.994
MyBB 1.4:
Quellcode-Zeilen (ohne Leerzeilen): 113503 Zeilen
Kommentar Zeilen: 13.722
[Fortsetzung der Technischen Entscheidung folgt, vielleicht]
Ich bitte hiermit um Entschuldigung, dass es erstens so lange gedauert, Teil 3 zu übersetzen, da ich alles alleine übersetzen musste, da mir die Übersetzer nicht helfen wollten und zweitens für den kleinen Teil der Tech. Entscheidung, es wurde einfach zu viel.
Hier der weitere Teil in englisch:
Throughout all of MyBB 1.4’s development process, we’ve seen many new and exciting features. I’m going to talk a bit about some of the less known and more technical side of things in MyBB 1.4, so feel free to skip over this section if you lack interest when it comes to code.
PostgreSQL, SQLite 2, and SQLite 3 (via PDO) are all supported in MyBB 1.4. What’s more is we’ve implemented Slave/Master technologies allowing people to hook up multiple SQL servers. If I had two MySQL servers, the code in inc/config.php for databases would look something along the lines of this:
$config['database']['type'] = 'mysqli';
$config['database']['read']['database'] = 'mybb';
$config['database']['read']['table_prefix'] = 'mybb_';
$config['database']['read']['hostname'] = 'localhost_read_address';
$config['database']['read']['username'] = 'root';
$config['database']['read']['password'] = '';
$config['database']['write']['database'] = 'mybb';
$config['database']['write']['table_prefix'] = 'mybb_';
$config['database']['write']['hostname'] = 'localhost_write_address';
$config['database']['write']['username'] = 'root';
$config['database']['write']['password'] = '';
You could even have multiple read and write databases like:
$config['database']['type'] = 'mysqli';
$config['database']['read'][]['database'] = 'mybb';
$config['database']['read'][]['table_prefix'] = 'mybb_';
$config['database']['read'][]['hostname'] = 'localhost_read_address';
$config['database']['read'][]['username'] = 'root';
$config['database']['read'][]['password'] = '';
$config['database']['read'][]['database'] = 'mybb';
$config['database']['read'][]['table_prefix'] = 'mybb_';
$config['database']['read'][]['hostname'] = 'localhost_read_address2';
$config['database']['read'][]['username'] = 'root';
$config['database']['read'][]['password'] = '';
$config['database']['write'][]['database'] = 'mybb';
$config['database']['write'][]['table_prefix'] = 'mybb_';
$config['database']['write'][]['hostname'] = 'localhost_write_address';
$config['database']['write'][]['username'] = 'root';
$config['database']['write'][]['password'] = '';
$config['database']['write'][]['database'] = 'mybb';
$config['database']['write'][]['table_prefix'] = 'mybb_';
$config['database']['write'][]['hostname'] = 'localhost_write_address2';
$config['database']['write'][]['username'] = 'root';
$config['database']['write'][]['password'] = '';
Now, in the event that you do have multiple read / write servers setup in the config, MyBB would connect to all the write servers so it can update all of them, and select 1 read server at random. I wish we could easily detect the load of the read servers and pick the lowest one, but unfortunately that’s not very practical yet.
If you are going to have multiple read and write servers, you should put your read servers on a load balancer rather than in MyBB’s config file. The only difference is you would point the read array towards your load balancer.
On a different note, I’m sure you saw the picture at the top of this blog post depicting some code. This code is from MyBB 1.4 and it is of the new code in the ACP; specifically, the Users page in the ACP. I won’t go into detail about all the new code in the ACP but I’ll briefly cover what was shown in that picture.
The first thing you’ll notice is $form->output_row(…). What it does is fairly obvious but just in case, it outputs a row to your MyBB ACP page. The arguments for this function are as follows:
title - string The title of the row.
description - string The description of the row/field.
content - string The HTML content to show in the row.
label_for - string The ID of the control this row should be a label for.
options - array Array of options for the row cell.
row_options - array Array of options for the row container.
output_row(title, description="", content="", label_for="", options=array(), row_options=array())
Now you may be thinking we use pure HTML all the time in $form->output_row. As you look closer at the picture, however, you will also see $form->generate_select_box and $form->generate_check_box, the arguments of which are:
name - string The name of the select box.
option_list - array Array of options in key => val format.
selected - mixed Either a string containing the selected item or an array containing multiple selected items (options['multiple'] must be true)
options - array Array of options for the select box (multiple, class, id, size)
generate_select_box(name, option_list, selected=array(), options=array())
and
name - string The name of the check box.
value - string The value of the check box.
label - string The label of the check box if there is one.
options - array Array of options for the check box (id, class, checked)
generate_check_box(name, value="", label="", options=array())
Those are just two of several functions that allow you to generate code automatically for the new ACP.