表の中に[objectname]を見つけたときは常に、プロパティはobjectnameのオブジェクトからのプロパティを持ったオブジェクト”objectname”であるという意味である。objecttypeを定義する必要はない。
時として、データタイプは”something +calc”に設定されていることがある。”+calc”は値が”+ -/*”で計算されているということである。オペレータには荷重がないということを知っておかなければならない。計算はオペレータの順に行われる。
45 + 34 * 2 = 158 (これは通常の計算と同じである:(45 + 34)*2=158)
データタイプが”type/stdWrap”に設定されている時、パラメータとしての値のプロパティを持ったstdWrap関数を通して値は解析されているという意味である。
pixels /stdWrap: ここでは値はピクセルに設定され、stdWrapを通して解析されなければならない。
実際のアプリケーションでは、以下のように実行できる:
.pixels.field = imagewidth
.pixels.intval = 1
この例では、進行中の$cObj->data-arrayの”imagewidht”フィールドからの値をインポートする。しかし、整数ででた結果を信用していないので、intval( )-functionを通して解析する。
optionSplitは非常に扱いにくい関数である。それは主として、一度に大量のアイテムのプロパティを定義するところで、menu-objectsに使われる。ここではプロパティの値は、例えば、あなたが最後のメニューアイテムだけ違った色で表すというったような設定をしていたらそれに応じて、この関数を通して解析される。
シンタックスは次の通りである:
|*|- splits the value in parts first, middle, last.
||- splits each of the first, middle, last in subparts
1. 優先順位はlast,middle,lastである。
2. もし中央値が空(“”)の場合、第1値の最後の部分が繰り返される。
3. もし第一もしくは中央値が空の場合、最終値の最初の部分が最終値の前に繰り返される。
4. 中央値が循環する。
例:first1 || first2 |*| middle1 || middle2 || middle3 |*| last1 || last 2
これはとても複雑で、度を越していると思われるかもしれないが、実際は役に立つ。
5つのアイテムを持ったメニューを考えてみる:
はじめに
わたしたちについて
業務内容
連絡先
リンク
…そして次のようなコンフィグレーション(最初のページのexample-codeから引っ張ってきた)
temp.topmenu.1.NO {
backColor = red
....
}
もしあなたがGMENU-objectのlinkWrap-propertyでこのリファレンスを見ている(今後見る)なら、.NOのプロパティはすべてoptionSpritを通して解析されるということがわかるであろう。すなわち、個々のメニューアイテムが作成される前に、プロパティはこの関数によって分割されるということである。さて例をいくつか見てみよう:
すべてのアイテムは同じ値を取る。最初の部分だけが定義され、そしてすべての要素に繰り返される。
TS:backColor = red
はじめに (赤)
わたしたちについて(赤)
業務内容 (赤)
連絡先 (赤)
リンク (赤)
ここでは最初の部分がsubpartに分割されている。メニューは5アイテム持っているので、第3subpartは繰り返される。
TS:backColor = red || yellow || green
はじめに (赤色) first, subpart 1
わたしたちについて (黄色) first, subpart 2
業務内容 (緑色) first, subpart 3
連絡先 (緑色) first, subpart 3 (繰り返し)
リンク (緑色) first, subpart 3 (繰り返し)
ここでは中央値もまた定義されている(“white”)。これは最初の2つのメニューアイテムの後、中央値が使われるとういうことである。
TS: backColor = red || yellow |*| white
はじめに (赤色) first, subpart 1
わたしたちについて (黄色) first, subpart 2
業務内容 (白色) middle
連絡先 (白色) middle
リンク (白色) middle
ここでは最終値もまた定義されている("blue || olive")。これは最初の2つのメニューアイテムの後、中央値が使われるということである。
TS: backColor = red || yellow |*| white |*| blue || olive
はじめに (赤色) first, subpart 1
わたしたちについて (黄色) first, subpart 2
業務内容 (白色) middle
連絡先 (青色) last, subpart 1
リンク (オリーブ) last, subpart 2
…そしてもしメニューが少し拡張されるなら(中央値が繰り返される!)
はじめに (赤色) first, subpart 1
わたしたちについて (黄色) first, subpart 2
業務内容 (白色) middle
…. (白色) middle
…. (白色) middle
…. (白色) middle
…. (白色) middle
連絡先 (青色) last, subpart 1
リンク (オリーブ) last, subpart 2
…そしてもしメニューを4アイテムだけにするのであれば(中央値は優先順位が最小になるようにdiscartされる)
はじめに (赤色) first, subpart 1
わたしたちについて (黄色) first, subpart 2
連絡先 (青色) last, subpart 1
リンク (オリーブ) last, subpart 2
…そしてもしメニューをわずか3アイテムだけにすると(第1値の最後のsubapartはその優先順位が最終値より小さくなるようにdiscartされる)
はじめに (赤色) first, subpart 1
連絡先 (青色) last, subpart 1
リンク (オリーブ) last, subpart 2
last, first, middle”
最後の2つの例は最終値は一番高い優先順位を持ち、次に第1値、そして次に中央値となることを表している。
middle
中央値がここでは除外されている。そして第1値のsubpart 2が繰り返される。2つの|*||*|の間にはスペースが入ってはいけないということを注意して見る!
TS: backColor = red || yellow |*||*| blue || olive
はじめに (赤色) first, subpart 1
わたしたちについて (黄色) first, subpart 2
業務内容 (黄色) first, subpart 2 (繰り返し)
連絡先 (青色) last, subpart 1
リンク (オリーブ) last, subpart 2
firstmiddle
中央値と第1値がここでは除外されている。そして最終値のsubpart 1が繰り返される。2つの|*||*|の間にはスペースが入ってはいけないということを注意して見る!
TS: backColor = |*||*| blue || olive
はじめに (青色) last, subpart 1 (繰り返し)
わたしたちについて (青色) last, subpart 1 (繰り返し)
業務内容 (青色) last, subpart 1 (繰り返し)
連絡先 (青色) last, subpart 1
リンク (オリーブ) last, subpart 2
middle
TS: backColor = red |*| yellow || green |*|
はじめに (赤色) first
わたしたちについて (黄色) middle, subpart 1
業務内容 (緑色) middle, subpart 2
… (黄色) middle, subpart 1
… (緑色) middle, subpart 2
… (黄色) middle, subpart 1
… (緑色) middle, subpart 2
連絡先 (黄色) middle, subpart 1
リンク (緑色) middle, subpart 2