Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. /plugin/com.suncode.plugin-tutorial/hello

     

    Info

    Wszystkie widoki zwracane przez wtyczkę są domyślnie dekorowane (za wyjątkiem żądań z nagłówkiem X-Requested-With: XMLHTTPREQUEST.

    Jeżeli nie chcemy dekorować naszej strony, musimy dodać parametr: decorator=none (np: /plugin/com.suncode.plugin-tutorial/hello?decorator=none) dzięki czemu otrzymamy czystą stronę:

  2. /plugin/com.suncode.plugin-tutorial/api/hello

    Code Block
    languagejavascript
    titlejson
    {"say":"hello","date":1399446110308}

Serwowanie statycznych zasobów

Wtyczki mogą serwować dowolne zasoby statyczne (skrypty, zdjęcia etc.). Zasoby takie muszą znajdować się w katalogu /resources:

Image Added

 

 

 

 

 

 

 

Zasoby statyczne mogą być pobierane przy użyciu 2 adresów URL (różniących się polityką cache):

  • /plugin/{id}/resources/{resource} - zasoby odczytane w ten sposób nie są cache'owane:
    • (np. plugin/com.suncode.plugin-tutorial/resources/data.js)
  • /plugin/{id}/resources/{timestamp}/{resource} - zasoby odczytane w ten sposób są cache'owane(do aktualizacji wtyczki, kiedy zmienia się również link do zasobu):
    •  (np. plugin/com.suncode.plugin-tutorial/resources/1399542968944/data.js)

gdzie: 

  • id - identyfikator wtyczki
  • resource - adres zasobu wewnątrz wtyczki relatywny do /resources
  • timestamp - data ostatniej aktualizacji wtyczki

Dynamiczny link do zasobów w widokach Freemarker

Dynamiczny link do zasobów tworzony jest poprzez dodanie do adresu URL daty ostatniej aktualizacji wtyczki. W widokach Freemarker można ułatwić sobie pobieranie gotowego linku:

Tip

Wykorzystany niżej obiekt i makro są opisane w dokumentacji tworzenia widoków Freemarker.

Code Block
languagehtml/xml
titleview.ftl
<!-- Pomocnicze makro -->
<#import "/plugin.ftl" as plugin/>
 
<!-- Wykorzystując obiekt pluginContext -->
<script src="${pluginContext.pluginResourcesPath}/data.js"></script>
 
<!-- Wykorzystując pomocnicze makro -->
<script src="<@plugin.resourceUrl 'data.js'/>"></script>