Las últimas 15 horas para mí han sido una pesadilla de leer plugins existentes y código fuente solo para obtener funcionalidad extremadamente básica para escribir mi primer plugin. Necesito ayuda.
Específicamente, necesito ayuda solo para obtener un nuevo botón en el panel de administración para cada publicación (el botón en la esquina inferior izquierda). Lo máximo que he logrado es poner el botón en el mismo elemento que el widget…
Pero nota el punto de viñeta. Esto se debe a que lo que he creado no está yendo en la ul como debería. No tengo ni idea de cómo solucionarlo.

(el div es mi opción).
Lo hice con este código:
import { withPluginApi } from 'discourse/lib/plugin-api';
import showModal from "discourse/lib/show-modal";
export default {
name: 'tl-post-lock',
initialize() {
withPluginApi('0.8.24', function(api) {
const user = api.getCurrentUser()
if(user.trust_level >= api.container.lookup('site-settings:main').tl_lock_minimum) {
// El usuario tiene permiso para ver el botón
api.decorateWidget('topic-admin-menu:after', (decorator) => {
// Añade el botón al menú de administración
return decorator.attach('admin-menu-button', {
icon: 'ban',
fullLabel: 'tl_post_lock.button_label',
action: 'actionTlLock'
})
})
}
})
}
}
Después de esto, no hay forma de que realmente haga clic. Después del bloque decorateWidget, si escribo cualquier forma de esto:
![]()
Obtengo el siguiente error completamente inútil con una línea y un carácter que ni siquiera EXISTE.
![]()
Junto con un montón de otro spam.
Estoy perdiendo la cabeza. ¿Cómo puedo simplemente añadir un botón al panel de administración en la esquina inferior izquierda para poder ejecutar código cuando haga clic en él?
