**
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}