{"id":88016,"date":"2015-07-24T10:41:56","date_gmt":"2015-07-24T09:41:56","guid":{"rendered":"https:\/\/artigianodelsoftware.wordpress.com\/?p=88016"},"modified":"2015-07-24T10:41:56","modified_gmt":"2015-07-24T09:41:56","slug":"user-macro-andiamo-piu-in-profondita","status":"publish","type":"post","link":"https:\/\/artigianodelsoftware.it\/blog\/2015\/07\/24\/user-macro-andiamo-piu-in-profondita\/","title":{"rendered":"User Macro &#8211; Andiamo pi\u00f9 in profondit\u00e0"},"content":{"rendered":"<div class=\"pdfprnt-buttons pdfprnt-buttons-post pdfprnt-top-right\"><a href=\"javascript: imageToPdf()\" class=\"pdfprnt-button pdfprnt-button-pdf\" target=\"_self\"><img src=\"https:\/\/artigianodelsoftware.it\/blog\/wp-content\/plugins\/pdf-print\/images\/pdf.png\" alt=\"image_pdf\" title=\"Visualizza PDF\" \/><\/a><a href=\"https:\/\/artigianodelsoftware.it\/blog\/wp-json\/wp\/v2\/posts\/88016?print=print\" class=\"pdfprnt-button pdfprnt-button-print\" target=\"_blank\"><\/a><\/div><h1>Approfondiamo l&#8217;argomento<\/h1>\n<p>In questo post andremo ad approfondire quanto gi\u00e0 trattato nei seguenti post in materia di\u00a0<em><strong>User Macro<\/strong><\/em><\/p>\n<ul>\n<li><a href=\"https:\/\/artigianodelsoftware.wordpress.com\/2015\/06\/18\/le-user-macro-queste-sconosciute\/\" target=\"_blank\">Le User Macro &#8211; Queste sconosciute<\/a><\/li>\n<li><a href=\"https:\/\/artigianodelsoftware.wordpress.com\/2015\/06\/25\/user-macro-primo-esempio\/\" target=\"_blank\">User Macro &#8211; Primo esempio<\/a><\/li>\n<\/ul>\n<p><a href=\"https:\/\/developer.atlassian.com\/confdev\/files\/2031697\/image2013-7-19+17%3A38%3A1.png\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter\" src=\"https:\/\/developer.atlassian.com\/confdev\/files\/2031697\/image2013-7-19+17%3A38%3A1.png\" alt=\"\" width=\"506\" height=\"309\" \/><\/a><\/p>\n<h1>Vediamo cosa possiamo fare<\/h1>\n<p>Nei precedenti post, abbiamo visto il classico esempio\u00a0<em><strong><a href=\"https:\/\/artigianodelsoftware.wordpress.com\/2015\/06\/25\/user-macro-primo-esempio\/\" target=\"_blank\">Hello World<\/a><\/strong><\/em>, croce e delizia di tutti gli sviluppatori. Questo per cercare di capire che cosa possiamo realizzare. Cerchiamo di entrare nel dettaglio.<\/p>\n<h3>Parametri<\/h3>\n<p><a href=\"http:\/\/info.servicerocket.com\/hs-fs\/hub\/296336\/file-3012549032-jpeg\/blog-files\/insert-secure-macro-with-details.jpeg?t=1437083619944&amp;width=700&amp;height=449\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter\" src=\"http:\/\/info.servicerocket.com\/hs-fs\/hub\/296336\/file-3012549032-jpeg\/blog-files\/insert-secure-macro-with-details.jpeg?t=1437083619944&amp;width=700&amp;height=449\" alt=\"\" width=\"447\" height=\"287\" \/><\/a><\/p>\n<p>Possiamo gestire dei parametri nelle User Macro? La risposta \u00e8 si :-). \u00a0Si tratta dei parametri, cui siamo oramai abituati, che normalmente vengono chiesti quando andiamo ad eseguire l&#8217;editing della macro stessa.<\/p>\n<p>Possiamo definirli come:<\/p>\n<blockquote>\n<pre><em><strong>## @param MYNAME:title=MY TITLE|type=MY TYPE|desc=MY DESCRIPTION|required=true|multiple=true|default=MY DEFAULT VALUE<\/strong><\/em><\/pre>\n<\/blockquote>\n<p>ovvero come:<\/p>\n<ul>\n<li><em><strong>##<\/strong><\/em> &#8211; Serve per identificare questa sezione di definizione di parametri e di caratteristiche della User Macro.<\/li>\n<li><em><strong>@param&lt;nome&gt;<\/strong><\/em> &#8211; Definisce il parametro. Utilizzando il prefisso\u00a0<em><strong>@param,\u00a0<\/strong><\/em>tutto ci\u00f2 che si trova subito dopo sar\u00e0 considerato come il nome del patametr<\/li>\n<li><em><strong>attributi<\/strong><\/em> &#8211; possiamo definire una serie di attributi, quali:\n<ul>\n<li>Titolo<\/li>\n<li>Tipo del parametro, che pu\u00f2 assumere un valore tra i seguenti:\n<ul>\n<li><em><strong>boolean<\/strong><\/em> \u00a0(Booleano)<\/li>\n<li><em><strong>enum<\/strong> <\/em>(per definire degli insiemi di possibili valori)<\/li>\n<li><em><strong>string<\/strong><\/em> (Stringa generica)<\/li>\n<li><em><strong>confluence-content<\/strong><\/em> (per consentire di poter referenziare dei contenuti di Confluence stesso, quali blog post o pagine)<\/li>\n<li><em><strong>username<\/strong> <\/em>(per consentire di poter selezionare degli utenti)<\/li>\n<li><em><strong>spacekey<\/strong> <\/em>(per consentire di poter selezionare degli space)<\/li>\n<li><em><strong>date<\/strong> <\/em>(data)<\/li>\n<li><em><strong>int<\/strong> <\/em>(numerico)<\/li>\n<li><em><strong>percentage <\/strong><\/em>\u00a0(trattato come una stringa. Sembra sia utilizzato per definire delle percentuali di utilizzo o per indicare tipo, ad esempio, quanti post blog visualizzare)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>La User Macro pu\u00f2 anche non presentare dei parametri. Basta, semplicemente, indicarlo come segue:<\/p>\n<blockquote><p><em><strong>## @noparams<br \/>\n<\/strong><\/em><\/p><\/blockquote>\n<h3>Oggetti disponibili<\/h3>\n<h1><a href=\"https:\/\/confluence.atlassian.com\/download\/attachments\/223906130\/macro-placeholder-example.png?version=1&amp;modificationDate=1344780885940&amp;api=v2\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter\" src=\"https:\/\/confluence.atlassian.com\/download\/attachments\/223906130\/macro-placeholder-example.png?version=1&amp;modificationDate=1344780885940&amp;api=v2\" alt=\"\" width=\"377\" height=\"404\" \/><\/a><\/h1>\n<p>Vediamo quali oggetti abbiamo a disposizione per poter eseguire le nostre elaborazioni.<\/p>\n<ul>\n<li><em><strong>$body<\/strong><\/em> &#8211; il corpo della macro, come indicato nei post precedenti.<\/li>\n<li><em><strong>$param&lt;nome&gt;<\/strong><\/em> &#8211; il parametro definito.<\/li>\n<li><em><strong>$config<\/strong><\/em> &#8211; Si tratta dell&#8217;oggetto\u00a0<em><strong>bootstrapManager<\/strong><\/em> di Confluence, che restituisce diverse propriet\u00e0 di Confluence che possiamo utilizzare.<\/li>\n<li><em><strong>$space<\/strong><\/em> &#8211; oggetto Space, dove viene richiamata la Macro. Tramite questo oggetto possiamo richiamare diverse informazioni, quali pagine, blog post, etc.<\/li>\n<li><em><strong>$renderContext<\/strong><\/em> &#8211; Si tratta delle informazioni restituite dall&#8217;oggetto <em><strong>PageContext.<\/strong><\/em><\/li>\n<li><em><strong>$content<\/strong><\/em> &#8211; Si tratta delle informazioni restituite dall&#8217;oggetto <em><strong>ContentEntity<\/strong><\/em>.<\/li>\n<\/ul>\n<p>Maggiori ragguagli sono disponibili nella sezione <a href=\"https:\/\/developer.atlassian.com\/confdev\/development-resources\/confluence-architecture\/confluence-internals\/velocity-template-overview\/confluence-objects-accessible-from-velocity\" target=\"_blank\">developer<\/a> della Atlassian.<\/p>\n<blockquote>\n<h1>Prossimi passi?<\/h1>\n<\/blockquote>\n<p>Nei prossimi passi, andremo ad approfondire un altro esempio<\/p>\n<p><a href=\"https:\/\/wiki.uef.fi\/download\/attachments\/26549813\/image2015-3-3%2015%3A15%3A23.png?version=1&amp;modificationDate=1425388523000&amp;api=v2\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter\" src=\"https:\/\/wiki.uef.fi\/download\/attachments\/26549813\/image2015-3-3%2015%3A15%3A23.png?version=1&amp;modificationDate=1425388523000&amp;api=v2\" alt=\"\" width=\"469\" height=\"288\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<blockquote>\n<h1>Reference<\/h1>\n<\/blockquote>\n<ul>\n<li><a href=\"https:\/\/confluence.atlassian.com\/display\/DOC\/User+Macro+Template+Syntax\" target=\"_blank\">Manualistica<\/a><\/li>\n<li><a href=\"https:\/\/developer.atlassian.com\/confdev\/development-resources\/confluence-architecture\/confluence-internals\/velocity-template-overview\/confluence-objects-accessible-from-velocity\" target=\"_blank\">Pagina Developer<\/a><\/li>\n<\/ul>\n<div class=\"clearfix\"><span class='ldc-ul_cont' onclick=\"alter_ul_post_values(this,'88016','like')\" >Likes<img src=\"https:\/\/artigianodelsoftware.it\/blog\/wp-content\/plugins\/like-dislike-counter-for-posts-pages-and-comments\/images\/up.png\" \/>(<span>0<\/span>)<\/span><span class='ldc-ul_cont' onclick=\"alter_ul_post_values(this,'88016','dislike')\" >Dislikes<img src=\"https:\/\/artigianodelsoftware.it\/blog\/wp-content\/plugins\/like-dislike-counter-for-posts-pages-and-comments\/images\/down.png\" \/>(<span>0<\/span>)<\/span><\/div>","protected":false},"excerpt":{"rendered":"<p>Approfondiamo l&#8217;argomento In questo post andremo ad approfondire quanto gi\u00e0 trattato nei seguenti post in materia di\u00a0User Macro Le User Macro &#8211; Queste sconosciute User Macro &#8211; Primo esempio Vediamo cosa possiamo fare Nei precedenti post, abbiamo visto il classico<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","footnotes":""},"categories":[3,4,7],"tags":[34,35,48,58,77,108],"_links":{"self":[{"href":"https:\/\/artigianodelsoftware.it\/blog\/wp-json\/wp\/v2\/posts\/88016"}],"collection":[{"href":"https:\/\/artigianodelsoftware.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/artigianodelsoftware.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/artigianodelsoftware.it\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/artigianodelsoftware.it\/blog\/wp-json\/wp\/v2\/comments?post=88016"}],"version-history":[{"count":0,"href":"https:\/\/artigianodelsoftware.it\/blog\/wp-json\/wp\/v2\/posts\/88016\/revisions"}],"wp:attachment":[{"href":"https:\/\/artigianodelsoftware.it\/blog\/wp-json\/wp\/v2\/media?parent=88016"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/artigianodelsoftware.it\/blog\/wp-json\/wp\/v2\/categories?post=88016"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/artigianodelsoftware.it\/blog\/wp-json\/wp\/v2\/tags?post=88016"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}