public function render() { $m = new Mustache_Engine(array('partials_loader' => new Mustache_Loader_FilesystemLoader(implode(DIRECTORY_SEPARATOR, array(APP, 'views', 'findingaid'))))); $pieces = explode('_', $this->params['id']); $id = $pieces[0]; $component_id = $pieces[1]; $model = new ComponentModel($id, $component_id); $container_list_template = load_template('findingaid/container_list'); $component_template = load_template('findingaid/component'); $container_lists = array(); foreach ($model->container_lists() as $container_list) { $container_list_content = $m->render($container_list_template, $container_list); $container_lists[] = array('container_list' => $container_list_content); } $subcomponents = $model->subcomponents(); $subcomponent_content = array(); foreach ($model->subcomponents() as $subcomponent) { $subcomponent_content[] = array('subcomponent' => $m->render($component_template, array('label' => fa_brevity($subcomponent->title()), 'collapsible' => true, 'scopecontent' => $subcomponent->scopecontent()))); } $component_content = $m->render($component_template, array('label' => fa_brevity($model->title()), 'collapsible' => true, 'container_lists' => $container_lists, 'scopecontent' => $model->scopecontent(), 'subcomponents' => $subcomponent_content)); return array($component_content, array('level' => (string) $model->level(), 'metadata' => array('label' => fa_brevity($model->title()), 'id' => 'demo_id'))); }
public function render_component($renderer, $component_xml) { $component_content = ''; $attributes = $component_xml->attributes(); if (isset($attributes['id'])) { $heading_id = "fa-heading-{$attributes['id']}"; $body_id = "fa-body-{$attributes['id']}"; $component = new ComponentModel($this->params['id'], $attributes['id']); $subcomponent_content = array(); foreach ($component->subcomponents() as $subcomponent) { $subcomponent_details = $this->render_component($renderer, $subcomponent->xml()); $subcomponent_content[] = array('subcomponent' => $subcomponent_details[0]); } $container_lists = array(); foreach ($component->container_lists() as $container_list) { $container_list_content = $renderer->render($this->templates['container_list'], $container_list); $container_lists[] = array('container_list' => $container_list_content); } $component_content = $renderer->render($this->templates['component'], array('label' => fa_brevity($component->title()), 'collapsible' => true, 'container_lists' => $container_lists, 'scopecontent' => $component->scopecontent(), 'links' => $component->links, 'subcomponents' => $subcomponent_content, 'heading_id' => $heading_id, 'body_id' => $body_id)); } else { error_log("FA: attributes_id not set"); } return array($component_content, array('level' => (string) $component->level(), 'metadata' => array('label' => fa_brevity($component->title()), 'id' => $heading_id))); }