** changelog: 2007-08-02 12:00:40 otestovat dateFormat na locale!! 2007-07-31 07:30:15 2007-07-20 15:18:00: + objectNormalizedName ( http://jira.ceskyweb.com/browse/CMS-358 ) tento soubor: Z:\projekty\Client_Service\Delivery\zzz_obecne_skripty\cms2\cms_poznamky.txt průběžně edituje myf, ale klidně sem vepisujte posřehy (ale noticněte je v changelogu nahoře) ** dokumentace modulů se rozvíjí tu: http://jira.ceskyweb.com/browse/CMS-153 původní help k CMS1 je třeba: http://dsbblansko.cz/cms/cms/help.do?context=explorer možnosti DEFAULT HODNOT vlastností založených objektů podle TŘÍD: ${objectName} ${name} (myslím, v CMS1) - jméno objektu, funguje i v šablonách (uff) ${objectDesc} - popis objektu ${now} - aktuální datum aktuální datum pro ext:tagy $systemDate$ - tj třeba comment <%-- vypadá takto --%> v kontextu známé proměnné (jsou vyhrazené a není tedy radno se pokoušet je definovat :] ) view - název "aktivního" pohledu lang - (cms2) system.mode - (cms1) [jméno pojmenovaného objektu] - v cms1 bývala např konvece si definovat "root" - viz pozn {1} 'objektem' může být: current [obj].parent [collection] (pole) nativní attributy [obj]ektu : (jsou vyhrazené a není tedy radno je použít jako attributy třídy :) [obj].objectName - jméno z CMS [obj].objectNormalizedName - ID-safe přepis (stejný, jako se používá v URL) [obj].typeName - jméno třídy [obj]ektu (CMS2) [obj].content - (pole childů aka obsah) [obj].content.count - počet childů (0 = prázdný) [obj].location - pokud má třída objektu definovaný NEPOJMENOVANÝ pohled: - CMS2: vrátí cestu od kořene webu ("/foo/bar.html") - CMS1: - v preview: vrátní absolutní URL s interním ID (??) - v publicu: relativní adresu (??) [obj].location.[jmenoPohledu] (pokud má třída objektu definovaný pohled) [obj].[mód(cms1)|jméno pohledu(cms2)] - (??) [obj].parent - rodičovský objekt ([obj].fileTypeName - (CMS1) jméno třídy [obj]ektu (??) ([obj].fileType - (CMS1) číselné ID TYPU [obj] deklarované v typesystemu) ([obj].id - narazil jsem na to myslím někde v cms1) jazyky ${langs} je pole všech aktivních (v administraci povolených) jazkyů pro web více v ..\templates\lang.tpl samošablony vytvořit třídě [atribut] datového typu TEXT (otrlí mohou i richText) vytvořit třídě pohled s template exporterem --> template="(jméno [atribut]u)" samotná samošablona může vypadat nějak takto: "to, co má být dynamické" // // <%-- nějaká šablona která zavolá samocontent --%> ** cms:tagy: :callTemplate name=[str] :write source=[obj] :dateFormat locale=[str]:(en-US|en-GB|cs-CZ|...) (už prý implementováno, OTESTOVAT!!!) !source=[objDate] !format=[strDateTemplate]: ( y = Číslo roku (y:96; yyyy:1996; yyyyy:01996) M = Číslo měsíce v roce (M:1; MM:01; MMM:I) (1-12) MMMM = Jméno měsíce (MMMM+:leden) w = Číslo týdne v roce W = Číslo týdne v měsíci F = Číslo týdne v měsíci (? možná od nuly? ?) D = Číslo dne v roce d = Číslo dne v měsíci E = Jméno dne v týdnu (E:Po) EEEE = Jméno dne v týdnu (EEEE:Pondělí ) k = Číslo hodiny v dnu (1-24) K = Číslo hodniny dop./odp. (0-11) h = Číslo hodniny dop./odp. (1-12) H = Číslo hodiny v dnu (0-23) m = Číslo minuty v hodině (0-59) s = Číslo vteřiny v minutě (0-59) S = Číslo milisekund z = Časová zóna (z:CET; zzzz:"Central European Time") Z = Časová zóna RFC (Z:+0100) G = Věk (G:"po Kr.") a = dop./odp. značka (a:dop.|odp.) příklady: 2001-07-04 12:08:56 GMT-8:00 "yyyy.MM.dd G 'at' HH:mm:ss z" = 2001.07.04 AD at 12:08:56 PDT "EEE, MMM d, ''yy" = Wed, Jul 4, '01 "h:mm a" = 12:08 PM "hh 'o''clock' a, zzzz" = 12 o'clock PM, Pacific Daylight Time "K:mm a, z" = 0:08 PM, PDT "yyyyy.MMMMM.dd GGG hh:mm aaa" = 02001.July.04 AD 12:08 PM "EEE, d MMM yyyy HH:mm:ss Z" = Wed, 4 Jul 2001 12:08:56 -0700 "yyMMddHHmmssZ" = 010704120856-0700 "yyyy-MM-dd'T'HH:mm:ss.SSSZ" = 2001-07-04T12:08:56.235-0700 :numberFormat !source !format 0 nr (05) ; # (5); . desetiný oddělovač '' používá se pro vložení dalších zobrazených znaků do vzoru, např. '#'### vytvoří z čísla 123 výsledek #123 0 číslo, nevýznamová nula se zobrazuje # číslo, nevýznamová nula se nezobrazuje . desetiný oddělovač - znaménko mínus , oddělovač skupin E oddělovač mantisy a exponentu ve vědeckém formátu čísla ; oddělovač kladného a záporného podvzoru % násobí stem a zobrazuje procenta ‰ násobí tisícem a zobrazuje promile ¤ znak měny ' používá se pro vložení dalších zobrazených znaků do vzoru, např. '#'### vytvoří z čísla 123 výsledek #123 :iterate !source= item= :repeater !source=[obj].content item= sortBy= maxItems= !/itemTemplate /alternatingItemTemplate /commonItemTemplate /separatorTemplate :test1 valueSource= /isNullTemplate /isNotNullTemplate :test2 valueA|valueASource valueB|valueBSource /equalTemplate /notEqualTemplate /lessTemplate /lessOrEqualTemplate /greaterTemplate /greaterOrEqualTemplate [==] [!=] [<] [<=] [>] [>=] :callableTamplate !name :callTemplate !name :define !name source parseAsReference="true|false" :include !path :locationOf (CMS1) !path mode . . . pole se definuje nebo rab podstatné jsou ty "[]" a prochází se třeba: podstatné je že oproti iteraci uvnitř objektu se zde nepoužívá ".content" v attributu source . . . languageId= 2 = CZ 3 = EN 4 = DE 5 = 6 = 7 = 8 = . . . poznámky k CMS2 vs CMS1 - cms2 neřeší tagy které nezná, prostě je vypíše. ( opruz okolo ) - cms2 neumožňuje nadefinovat práznou proměnnou "cms1 ano" poznámky: {1}: "root" jako pojmenovaná linka se udělá snadno přes editaci vlastností jako u každé jiné složky bejvalo: vlastnosti "kořene webu" se momentálně dají změnit přes URL: - ve stromu webu kliknout na 'koren web-u' (první položka) - a v URL získané stránky vyměnit "/index.do" za -> "/properties.do" = editace pojmenované linky a popisu popř. za -> "/edit.do" = vlastnosti, pokud třída root nějaké má !! - omezit typ referencovaného - + kdybych mohl prosit, defaultní otevřený folder: ) - třída s binary omezit podle koncovek vkládání - counter pro repeater ?? - current.mode? - chranena zona: user.state ?? ;-,-, ?!?! - tabindex="1" *** poznámky k "migraci" webu z cms1 do cms2 *** a) TypeSystem (TS) -> třídy draft na ruční práci a1) třídy ( najít ve ty co mají jejich abstractType.name ve svém fileType.contentType dané třídě zaškrtávat všechny, které mají toto abstractType.name v fileType.implements a tak dokola a3) vytvořit šablony (b)) a4) pohledy ( -> (path) (tag pryč, URI nyní normálně) (pozor u piců na PŘÍPONY; viz c2) to samé v "systémových" šablonách (s cssExporterem) %%%/cesta/foo.png%%% -> /cesta/foo.png b2) -> (šablony jsou nyní v předem kontextově známém místě) b3) .fileType -> dohledat JMÉNO v TS -> .typeName .fileTypeName (myslím že to tam je) -> .typeName b4) -> _VOID_ -> -''- (třeba; cms2 neumožňuje vytvořit prázdnou proměnnou; cms1 kupodivu ano) samozřejmě to nelze použít všude b5) a následě logicky v test2 při testování proti prázdnému stringu valueB="" -> valueB="_VOID_" ((?)v cms2 by tedy teoreticky neměla nastat situace, že existuje proměnná bez hodnoty; tj pokud projde test1 tak už je jistota, že v testované proměnné něco je (?)) c) struktura c1) -> pojmenované linky (radovánky s rootem viz {1}) c2) bacha na obrázky, CMS2 oproti 1 zatím (26.10.2006 12:36:48) neumí poznávat formáty, tj musíme v buď exporterech uvádět přípony, nebo vše svědomitě pojmonevávat ** utopická blasfemie ** nová vlastnost třída: přidat vlastnost nebo třída: přidat "od koho dědit vlastnosti" a pak více "prototypových" tříd (resp asi založit metatřídy po jedné vlastnosti, a pak prototypové třídy se shluky vlastností(?)) a potom všude bilaterální (:]) pohledy, tj vidět ve kterých třídách se "tato" vlastnost vyskytuje (možnost sebrat/přidat tam kde nebyla) které třídy implementují "mě" && které třídy implementuji "já" s možností editace na obou stranách (myslím že se s tím už počítá) uživatelské atributy pro třídy reference vidět na obou stranách v editaci objektu linky na - vlastnosti, náhledy, editaci příslušné třídy - přidat vlastnost této třídě - přidat mimotřídní vlastnost (eh) ? !! možnost sosat do šablon data která NEjsou v cms; tj mít místo, kam by externí aplikace mohla ukládat data a šablony je mohly includovat ** zárodek standardních (ne-nativních) vlastností tříd ** [item].menuTitle [item].title [item].order (něco jako order si myf hrozně přeje aby bylo nativní) ** zárodek standardních šablonových proměnných, mj output snippetů z ** Z:\projekty\Client_Service\Delivery\zzz_obecne_skripty\templates ${menu} ${breadcrumb} ${pageTitle}