Create abstract admin classes
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 25/100
Línea de trabajo
Comienza revisando las implementaciones de administración dedicadas existentes en Memberships y CSV Import/Export, y compáralas después con WC_Settings_Page. Define la abstracción compartida para las páginas de menú, las pestañas, las secciones, la infraestructura de las páginas de ajustes y la exposición de current_tab y current_section a JavaScript. Se considerará terminado cuando el diseño esté acordado y el framework admita estos requisitos sin código repetitivo específico del plugin.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
A lot of our plugins are using dedicated admin pages outside of WC Settings area. Some plugins simply have a dedicated settings page while others have more complex admin areas with settings, list tables, etc (Memberships, CSV Import/Export). To create those admin areas, a lot of boilerplate code is needed, and each plugin implements things a bit different. This makes it harder to maintain.
We should look into creating some sort of abstraction that would allow plugins to easily register dedicated admin areas/pages/settings, with support for tabs & sections out-of-the-box. This could reduce boilerplate code and provide a more consistent experience & architecture in plugins.
For settings pages, we could probably subclass WC_Settings_Page and make it more generic, to support adding settings pages to other plugin admin areas, rather than to WC Settings.
I would imagine some kind of abstract admin class that would already have all the plumbing required for adding the menu/submenu pages, tabs and sections. The subclass would then simply need to provide a list of tabs & sections and callbacks for rendering those.
Perhaps something like
Admin_Area extends SV_WC_Admin_Area {
public __construct() {
$this->tabs = array(
'tab_1' => array(
'label' => __( 'Tab 1' ),
'sections' => array(
'section_1' => __( 'Section 1' ),
'section_2' => __( 'Section 2' ),
),
),
'tab_2' => __( 'Tab 2' ),
);
}
public function render_tab_1( $current_section ) {
// .. render the tab...
}
}
In summary, some of the features that would be nice:
- a common structure for adding dedicated admin areas/pages
- built-in support for tabs and sections
- built-in support for the plumbing required for settings pages
- making
current_tab&¤t_sectionavailable in JS (similar topagenow)
- Lenguaje dominante
- PHP
- Estrellas
- 146
- Forks
- 43
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Sin guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de godaddy-wordpress/wc-plugin-framework
-
Dificultad 4/5 3-5 días Aptitud para principiantes 38/100
godaddy-wordpress/wc-plugin-framework#806 · 2 comentarios ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 52/100
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
-
Google Pay Missing Environment VariablePosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. AbiertoGoogle Pay JavaScript
Dificultad 2/5 1-3 horas Aptitud para principiantes 35/100
-
i18n Needs Reporter Feedabck
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
godaddy-wordpress/wc-plugin-framework#536 · 1 comentario ·
Todos los issues de godaddy-wordpress/wc-plugin-framework
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 64/100
backdrop-contrib/paragraphs#299 ·
-
tech-debt
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
landsman/adminer-desktop#206 ·
Los mantenedores suelen responder en 1 día
-
Explosm: Cyanide & Happiness failed with: https://explosm.net/comics/latest#comic resulted in 307Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
RSS-Bridge/rss-bridge#5154 ·
Los mantenedores suelen responder en 1 día
-
[Sync EN] calendar: document the ValueErrors thrown for invalid calendar IDs and dates (#6005)Abiertosync-en
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
Los mantenedores suelen responder en 2 días