WebKiv: ManualModulProdukty

from Wiki KIVu

Zde je stručné shrnutí postupu pro normální uživatele. Pozn: autorizovanému softwaru se v evidenční aplikaci říká "Produkt".

Přihlášení:

Jak se najde autorizovaný software

Zadání/úprava produktu:

Všechny stránky s autoriz.sw. mají lokální menu dole (na konci stránky) vpravo; přes něj se dělá většina akcí.

  1. Vytvořit, případně upravit, produkt - název, popis (je možné použít HTML), upload soubory, výběr licence
    • Jak mají vypadat zadávané texty a soubory viz odkazy v lokálním menu vpravo dole.
    • Do aplikace nedávejte velké soubory (nad cca 50MB; soubory se ukládají do databáze). Pokud je vaše aplikace obsahuje, pak do textového souboru (README apod), který nahrajete, napište URL na kterém je možné stáhnout zbytek. (Nepište URL přímo do popisu, lidi by obcházeli stahování přes /vyzkum/software/ kde se logují počty stažení.)
  2. Autor odešle (přes tlačítko Odeslat ke schválení v editaci produktu) žádost o schválení - mj. odešle email schvalovateli
  3. Zodpovědná osoba, tj. vedoucí katedry, schválí nebo vrátí s komentářem (aplikace přitom pošle email autorovi) - na stránce se seznamem produktů má oddíl "Navržené produkty" a odkaz na schvalovací formulář
  4. Po schválení je software k dispozici ke stažení na úvodní stránce Výzkum > Software.

Tytéž softwary jsou také na anglických stránkách (English > Research > Software) kde ale nejsou editační formuláře. K dispozici je také podrobná příručka.


Technická dokumentace:

Instalace modulu Produkty

Tento návod popisuje instalaci modulu cz.zcu.kiv.produkty na beta.kiv.zcu.cz. Jelikož je modul závislý na konkrétní DB na KIV, nebude fungovat v systému bez přístupu k této DB.
Nutná podmínka pro instalaci tohoto modulu: V OpenCms musí být nainstalován aplikační framework Spring.

Importování modulů

Pro instalaci modulu je třeba provést následující kroky:

  1. Pokud ještě nemáte importovaný, importujte do OpenCms modul cz.zcu.kiv.common
Modul Produkty má nastavenou dependency na tento modul, takže bez něj nebudete moci provést krok 3.
Aktuální verze modulu Common je cz.zcu.kiv.common_0.12.zip
  1. Importujte do Opencms modul cz.zcu.kiv.produkty

Vytvoření JSP resources na frontendu

Po importování modulů je nutné vytvořit JSP stránky na OpenCms frontendu. Na beta.kiv.zcu.cz jsem následující stránky do adresáře www.kiv.zcu.cz/produkty/.
Tyto JSP stránky mají opravdu příponu .html.

Každá z těchto JSP stránek obsahuje pouze include stejnojmenného JSP z modulu cz.zcu.kiv.produkty tedy např. JSP detail.jsp obsahuje následující kód:

    <%@ taglib prefix="cms" uri="http://www.opencms.org/taglib/cms" %>

    <cms:include page="/system/modules/cz.zcu.kiv.produkty/pages/produkty/detail.jsp" />

Nastavení adresáře pro ukládání souborů produktu

Produktům je možné přiřadit soubor, který se uploaduje do OpenCms VFS. Je tedy třeba nastavit property upload_folder_path u adresáře ve kterém se nachází JSP pracující s produkty. Na beta.kiv.zcu.cz jsem tuto property nastavil na adresář www.kiv.zcu.cz/produkty/. Property udává, kam se ukládají uploadované soubory.

Tato property defaultně není definovaná, takže je nutné ji nejprve definovat. Hodnota property se pak vyplní podle toho, kam se budou soubory do VFS ukládat (hodnota bude cesta k existujícímu adresáři).

Příklad z beta.kiv.zcu.cz: Vytvořil jsem adresář www.kiv.zcu.cz/produkty/data/. Property jsem nastavil na adresář www.kiv.zcu.cz/produkty/.

Nastavení přístupových práv na modul Produkty

Na Modulu Produkty následující role uživatelů:

Aby jsme využili všechny funkce modulu, je třeba přiřadit OpenCms skupinám tyto role. Na beta.kiv.zcu.cz jsem nejprve definoval nové property:

Na adresáři www.kiv.zcu.cz/produkty pak těmto properties přiřadím hodnotu. Každá role přitom může být přidělena více skupinám - pro tento případ v property odděluji jednotlivé skupiny znakem ';'

Př. V OpenCms mám následující skupiny:
Chci, aby uživatelé ze skupin TestVedeni a TestNeutral mohli schvalovat produkty a uživatelé ze skupiny TestNeutral byli vlastníky. Property tedy nastavím následujícím způsobem:

Poznámka: při registraci uživatelů do OpenCms je potřeba, aby se jim nastavily

Práva pro adresář se soubory

Jelikož se produkty stahují přes licenci, neměl by být umožněn přímý přístup do adresáře www.kiv.zcu.cz/produkty/data/, kde jsou uloženy soubory produktů. K tomu je třeba upravit permissions k tomuto adresáři.

  1. Všechna přístupová práva pro skupinu Guests nastavíme na denied. Navíc je nutné zaškrtnout volbu Overwrite inherited.
  2. Všem skupinám, kterým jsme přiřadili role schvalovatelů a vlastníků nastavíme na Allowed následující práva: d+r+w+v

Pokud chce uživatel jakkoli editovat produkty, musí se přihlásit do systému OpenCms jako schvalovatel, vlastník, nebo administrátor. K produktům se však vkládají i údaje o uživateli, který je editoval a tyto údaje se berou z DAO osoby. Proto je třeba, aby pro uživatele, který edituje produkty, existovala v OsobaDao osoba se stejným loginname, jakým se přihlašuje editující uživatel do systému OpenCms.

Nastavení pomocného uživatele pro download souborů

Z předchozí kapitoly vyplývá, že nepřihlášený uživatel nebude mít přístupová práva ke složce, v níž jsou uloženy soubory produktů. Tzn., že si nebude moci stáhnout soubory ani již publikovaného produktu. Z tohoto důvodu bylo třeba vytvořit pomocného uživatele pro download produktů - ten musí být typu WebUser nikoli normální uživatel.

Oproti schvalovatelům a vlastníkům však údaje o download uživateli jsou umístěny do souboru classes/cz/zcu/kiv/produkty/access.properties ve složce modulu. V tomto souboru je třeba definovat properties:

Př. V Opencms mám skupinu TestDownload a do ní patří uživatel download, jehož přístupové heslo je: password
Do access.properties tedy uložím následující properties:
Download uživatel však stále nemá přístup do složky se soubory produktů: www.kiv.zcu.cz/produkty/data/. Upravíme tedy permissions k tomuto adresáři:

Nastavení SMTP serveru pro odesílání e-mailů o navržení produktů na schválení

Při navržení produktu na schválení se provede akce odeslání emailu o navržení na schválení schvalovatelům.
Aby se email odeslal, je třeba správně nastavit SMTP server. Nastavení serveru je uloženo v souboru classes/cz/zcu/kiv/produkty/mail.properties.
Doporučené nastavení:

    smtp=smtp.zcu.cz
    odesilatel=email@kiv.zcu.cz
    username=
    password=
    port=25
    tls.enable=false
    auth=false
    subject=Navr\u017Een\u00ED produktu
  • Je třeba provést nastavení i v anglické lokalizaci mail_en.properties
  • Není třeba vyplňovat username a password, protože mail je odesílán z domény zcu.cz.

U odesílání mailů jsem také narazil na problém, že na beta.kiv.zcu.cz byla mezi knihovnami OpenCms verze 6.2.3 zastaralá knihovna javamail-API. Verzi, s kterou již odesílání funguje přikládám zde:

Soubor mail.jar je poté potřeba nakopírovat do [OPENCMS_HOME]/WEB-INF/lib/

Nastavení počtu produktů. které se zobrazí na stránce seznam-nejstahovanejsi.html

Počet zobrazovaných nejstahovanějších produktů lze na této stránce redukovat nastavením property pocet_produktu. Tuto property je třeba nejprve definovat.
Na souboru seznam-nejstahovanejsi.html pak této property nastavím hodnotu např:

Pokud property není nastavena, zobrazuje se seznam všech schválených produktů v systému.

Nastavení maximální velikosti uploadovaného souboru produktu

Maximální velikost souboru pro upload je možné nastavit vytvořením a vyplněním property max_file_upload_size. Tuto property je třeba nejprve definovat.

Příklad z beta.kiv.zcu.cz: Property jsem nastavil na adresář www.kiv.zcu.cz/produkty/

Pokud property není nastavena, je maximální velikost souboru pro upload omezená pouze velikostí paměti webového kontejneru.

Nastavení větší velikosti paměti webového kontejneru

V případě, kdy bude chtít webmaster umožnit uploadování souborů větších než cca 10 MB, aplikace bude vyžadovat na webovém kontejneru více paměti a tudíž bude třeba zvýšit na něm velikost haldy, jinak bude OpenCms vyhazovat následující hlášku:

java.lang.OutOfMemoryError: Java heap space

Následující postup popisuje, jak zvýšit velikost instance webového kontejneru Apache Tomcat:

  1. otevřete soubor /bin/catalina.bat v oblíbeném textovém editoru.
  2. nastavte proměnné -Xms(initial heap size) a -Xmx(maximum heap size). Následující příkaz vložte někam na začátek otevřeného souboru:
    set CATALINA_OPTS=-Xms128m -Xmx512m
  3. uložte soubor a restartujte Tomcat.

Pozn. Předchozí postup byl otestován na Apache Tomcat Version 6.0.14 na systému Windows Vista. Nastavení proměnných vystačí pro upload souboru velkého cca 100 MB. Více infromací k nastavení heap size na javahowto.blogspot.com

Nastavení lokalizace modulu Produkty

Modul Produkty je vytvořen ve 2 jazykových verzích - české a anglické. Vytvoření obou lokalizací popíšu podle toho, jak jsem je vytvořil na beta.kiv.zcu.cz

  1. Česká verze
Na adresáři www.kiv.zcu.cz/produkty/ jsem vyplnil následující property:
  1. Anglická verze
Vytvořil jsem sibling celého adresáře www.kiv.zcu.cz/produkty/ (i se všemi resources uvnitř kromě podadresáře /data/ a jeho obsahu) na adresář www.kiv.zcu.cz/en/products/ Tento adresář má totiž nastavené property(dědí od nadřazeného adresáře):
Na tomto uri - www.kiv.zcu.cz/en/products/ je nyní tedy umístěna anglická lokalizace modulu Produkty. Později bude ještě třeba přejmenovat jednotlivá JSP na anglické názvy.

Patří do KategorieModulyWebuKiv

Retrieved from http://wiki.kiv.zcu.cz/WebKiv/ManualModulProdukty
Content last modified on 15 December 2011, 14:52