オペラ研究所について
事業内容・研究成果
編纂・刊行
昭和音楽大学
オペラ情報センター
MENU
CLOSE
オペラ研究所について
事業内容・研究成果
編纂・刊行
昭和音楽大学
オペラ情報センター
オペラやその周辺領域における人材育成と芸術振興を
テーマに据え、調査・研究をしています。
サイト内検索
node as $node) { if(isset($node['type']) && $node['type'] == 'page' && $isExist === false) { $nTmpNodeList[] = $node->asXml(); $isExist = true; } elseif(isset($node['type']) && $node['type'] == 'folder') { _getTopicPath($node, $nTmpNodeList); } } } } } } $nTmpNodeList = array(); _getTopicPath($nMasterContentListXml, $nTmpNodeList); $nContentListXml = new SimpleXmlElement('
'.implode('', $nTmpNodeList).'
'); } if(!empty($nContentListXml)){ if(!function_exists('_getListHtml_2cc667f05f707e834d047eccd30212a1')){ function _getListHtml_2cc667f05f707e834d047eccd30212a1($innerText, $nNodes, $contentEndLevel) { $blockHtml = ''; if(empty($contentEndLevel) || ($contentEndLevel < -1)) { $contentEndLevel = -1; } // 最後のフォルダ/ページのインデックスを取得 $lastIndex = count($nNodes->node) - 1; if($contentEndLevel >= 0 && (int)$nNodes['level'] > $contentEndLevel) { $lastIndex = 0; } // $startNode番から$endNode番までの node を取得 $_startNode = 0; if((int)$nNodes['level'] == 1) { $_startNode = 0; } // endNode=フォルダ、ページ、リンクページ $_endNode = $lastIndex; if((int)$nNodes['level'] == 1) { if(-1 >= 0 && -1 <= $lastIndex) { $_endNode = -1; } } // endPage=ページ、リンクページ $_endPage = $_startNode; for($i = $_startNode; $i <= $_endNode; $i++) { if(isset($nNodes->node[$i]['type']) && ($nNodes->node[$i]['type'] == 'page' || $nNodes->node[$i]['type'] == 'link_page') ) { $_endPage = $i; } } $innerPages = explode(' ', $nNodes['pages']); for($i = $_startNode; $i <= $_endPage; $i++) { if(isset($nNodes->node[$i]['type']) && ($nNodes->node[$i]['type'] == 'page' || $nNodes->node[$i]['type'] == 'link_page') ) { // 各フラグ設定 $isFirstNode = false; $isLastNode = false; $isIndexPageNode = false; if($contentEndLevel < 0 || (int)$nNodes['level'] <= $contentEndLevel) { if( !(isset($nNodes->node[$i]->close) && ($nNodes->node[$i]->close == 'close')) ) { if($i == $_startNode) { $isFirstNode = true; } if($i == $_endPage) { $isLastNode = true; } if($i == 0) { $isIndexPageNode = true; } } } $node = $nNodes->node[$i]; if($node['type'] == 'page') { if($isIndexPageNode && in_array(514, $innerPages)) { $node->active = 'active'; } if($node->id == 514) { $node->active = 'active'; $node->page_active = 'active'; } } if((int)$nNodes['level'] >= 1) { $blockHtml .= '
'; // CPタグより右側の文字列を取得 } if( ('lfolder_title' === 'lfirst' && $isFirstNode) || // 1ノード目の場合 ('lfolder_title' === 'lno_first' && !$isFirstNode) || // 1ノード目以外の場合 ('lfolder_title' === 'lmiddle' && (!$isFirstNode && !$isLastNode) ) || // 中間ノードの場合 ('lfolder_title' === 'lno_middle' && ($isFirstNode || $isLastNode) ) || // 中間ノード以外の場合 ('lfolder_title' === 'llast' && $isLastNode) || // 最終ノードの場合 ('lfolder_title' === 'lno_last' && !$isLastNode) || // 最終ノード以外の場合 ('lfolder_title' === 'lindex' && $isIndexPageNode) || // インデックスページノードの場合 ('lfolder_title' === 'lno_index' && !$isIndexPageNode) ) { // インデックスページノード以外の場合 // フォルダノード、ページノード共通 if((int)$nNodes['level'] >= 1) { $blockHtml .= ''; } } elseif('lfolder_title' === 'lrecurse') { if(-1 == $contentEndLevel || (int)$nNodes['level'] <= $contentEndLevel) { if(($i + 1) <= $_endNode && isset($nNodes->node[$i + 1]['type']) && ($nNodes->node[$i + 1]['type'] == 'folder')) { for($j = $i + 1; $j <= $_endNode; $j++) { if(isset($nNodes->node[$j]['type']) && ($nNodes->node[$j]['type'] == 'folder')) { if(isset($nNodes->node[$j]->node)) { // 表示最下部のフォルダインデックスはファイル名称にフォルダ名称を設定 $isOpen = true; if((int)$nNodes['level'] == $contentEndLevel && isset($nNodes->node[$j]->node[0]) && isset($nNodes->node[$j]->node[0]->folder_name)) { $isOpen = false; } if(isset($nNodes->node[$j]->node[0]->close) && ($nNodes->node[$j]->node[0]->close == 'close')) { $isOpen = false; } if(!$isOpen) { $nNodes->node[$j]->node[0]->name = (string)$nNodes->node[$j]->node[0]->folder_name; } $blockHtml .= _getListHtml_2cc667f05f707e834d047eccd30212a1($innerText, $nNodes->node[$j], $contentEndLevel); } } else { break; } } } } } else { // ページノード&公開の場合 if((int)$nNodes['level'] >= 1) { $html = ''; // ブロックパーツのHTMLを取得 if($html !=='') { $blockHtml .= $html; } else { $blockHtml .= ''.mb_convert_encoding(htmlspecialchars($node->folder_name),'UTF-8','UTF-8').''; } } } if((int)$nNodes['level'] >= 1) { $blockHtml .= '
'; // CPタグより右側の文字列を取得 } } } return $blockHtml; } } if(isset($nContentListXml->node) && isset($nContentListXml['level'])) { if(!isset($contentEndLevel)) { $contentEndLevel = 0; } $node = $nContentListXml->node; echo _getListHtml_2cc667f05f707e834d047eccd30212a1('
'.mb_convert_encoding(htmlspecialchars($node->folder_name),'UTF-8','UTF-8').'
', $nContentListXml, $contentEndLevel); } unset($contentEndLevel); } ?>
サイト内検索