# Modifica dei post usando un componente del tema

**URL:** https://meta.discourse.org/t/editing-posts-using-a-theme-component/381671
**Category:** Development
**Created:** [5 Settembre 2025, 3:18am UTC](https://meta.discourse.org/t/editing-posts-using-a-theme-component/381671 "2025-09-05T03:18:28Z")
**Posts on this page:** 1
**Showing post:** 1

<div class="post-metadata">

### Author: ![NateDhaliwal](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/natedhaliwal/32/313494_2.png) [@NateDhaliwal](https://meta.discourse.org/u/NateDhaliwal)
#### Post date: [5 Settembre 2025, 3:18am UTC](https://meta.discourse.org/t/editing-posts-using-a-theme-component/381671/1 "2025-09-05T03:18:28Z")

</div>

Ho quindi trovato l’idea di consentire a coloro che hanno i permessi di modifica dei post (utenti TL4+) di selezionare il testo e convertirlo in un blocco di codice.

Dopo aver fatto riferimento ad alcune parti del codice del plugin Discourse AI e aver esaminato quali dati vengono passati all’outlet del plugin che sto utilizzando, ho trovato il codice per ottenere il testo selezionato e racchiuderlo tra delimitatori di codice, utilizzando l’outlet `quote-share-buttons-before`.

Poi, ora, sono un po’ bloccato. Il plugin checklist (in qualche modo) fa questo con un argomento nella funzione `checklistSyntax` chiamato `postDecorator`, con cui possono ottenere il modello (penso sia il modello `post`?) usando `.getModel()`. Come venga passato non lo so, ma non credo sia disponibile per me nella mia configurazione?

Se si tratta effettivamente del modello post utilizzato nel plugin checklist, sembra che abbia difficoltà a trovare dove esista la semplice funzione ‘save’ in

```js
await postModel.save({
  raw: newRaw,
  edit_reason: i18n("checklist.edit_reason"),
});

```

in `models/post.js`, a meno che non stia capendo male.

Attualmente sto usando `this.args.outletArgs.data.editPost(this.post)` (che se non ricordo male si trova in `models/topic.js`, ma per favore correggimi se sbaglio) che apre solo il composer per modificare il post, non per modificarlo direttamente.

Quindi la mia domanda è questa: come posso modificare il post come il plugin checklist, senza problemi? C’è un modo per farlo se sto mettendo un pulsante in un outlet invece di `api.decorateCookedElement` come fa checklist? Preferibilmente senza usare l’API REST?

Il mio repository:

> **[GitHub - NateDhaliwal/discourse-format-text-in-codeblocks](https://github.com/NateDhaliwal/discourse-format-text-in-codeblocks)**
>
> Contribute to NateDhaliwal/discourse-format-text-in-codeblocks development by creating an account on GitHub.

Grazie!

---

_[View the full topic](https://meta.discourse.org/t/editing-posts-using-a-theme-component/381671)._
