Page.php に Color というフィールドを設定しました。子に対しては、親の色を取得するか、色のフィールドが設定されている親が見つかるまでループします。
以下の関数は 2.4 で動作するようですが、テンプレートのループ内で $Inherited(Colour) として呼び出す SS3 では動作しません。
あなたの助けに感謝します
public function Inherited($objName) {
$page = $this->owner->Data();
do {
if ($obj = $page->obj($objName)) {
if ($obj instanceof ComponentSet) {
if ($obj->Count()) {
return $obj;
}
} elseif ($obj instanceof DataObject) {
if ($obj->exists()) {
return $obj;
}
} elseif ($obj->exists()) {
return $obj;
}
}
} while ($page->ParentID != 0 && $page = $page->Parent());
}