¿Cómo se puede agregar un nuevo elemento de menú debajo de "insertar desde URL" en la barra lateral izquierda en el nuevo Administrador de medios de Wordpress 3.5?
He estado mirando el backbone js e intenté conectarlo con mi propio JS pero sin éxito.
Edición 2: Esto parece hacer el truco:
http://sumtips.com/2012/12/add-remove-tab-wordpress-3-5-media-upload-page.html
Debería hacer cosas simples, pero supongo que también es posible hacer lo mismo en Javascript. Sería bueno si hubiera un tutorial / explicación sobre cómo funcionan los internos del nuevo administrador de medios.
media
media-library
Erezie
fuente
fuente
Respuestas:
OK, creo que tengo algo que está muy cerca de ser una respuesta:
Puse mi código en una esencia
Aquí está el resultado:
Creé varios objetos de Backbone para respetar el patrón MVC:
controller.Custom
se encarga de hacer toda la lógica, seview.Toolbar.Custom
ocupa de los botones de la barra de herramientas yview.Custom
muestra la interfaz de usuario interna.fuente
//build an empty view (needs more work)
al contenido de la Respuesta.Yo estoy trabajando para añadir un botón al menú "Router" (añadiendo algo a la derecha de la "Media Library"), pero el sistema es el mismo.
Ahora, que no hace nada. Ese es el siguiente paso!
fuente
Puede enganchar en el
media_upload_tabs
filtro para agregar la pestaña. Este es el método utilizado por el complemento Network Shared Media :Luego puede enlazar a la
media_upload_tab_slug
acción (dondetab_slug
es como se usó anteriormente) para mostrar el contenido de la pestaña:fuente
No tengo una solución, pero pistas. Las cadenas se obtienen de una matriz. Puede filtrar a través del gancho
media_view_strings
. El cuadro modal después de hacer clic es javascript, compilado con backbone.js desde WP 3.5. Ver/wp-includes/js/media-views.js
para una solución. Backbone también es nuevo para mí y los scripts tienen muchas líneas de origen.fuente
media.view.settings
js var puede ser ajustado por un filtro php para agregar nuevas pestañas, pero luego esas pestañas se representan a través de un iframe (vercreateIframeStates
método enmedia-views.js
).