本文整理汇总了PHP中Pressbooks\Book::getSubsections方法的典型用法代码示例。如果您正苦于以下问题:PHP Book::getSubsections方法的具体用法?PHP Book::getSubsections怎么用?PHP Book::getSubsections使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Pressbooks\Book
的用法示例。
在下文中一共展示了Book::getSubsections方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: createToc
/**
* Uses $this->manifest to generate itself.
*
* @param array $book_contents
* @param array $metadata
*/
protected function createToc($book_contents, $metadata)
{
$vars = array('post_title' => '', 'stylesheet' => $this->stylesheet, 'post_content' => '', 'isbn' => @$metadata['pb_ebook_isbn']);
$options = get_option('pressbooks_theme_options_global');
// Start by inserting self into correct manifest position
$array_pos = $this->positionOfToc();
$file_id = 'table-of-contents';
$filename = "{$file_id}.{$this->filext}";
$vars['post_title'] = __('Table Of Contents', 'pressbooks');
$this->manifest = array_slice($this->manifest, 0, $array_pos + 1, true) + array($file_id => array('ID' => -1, 'post_title' => $vars['post_title'], 'filename' => $filename)) + array_slice($this->manifest, $array_pos + 1, count($this->manifest) - 1, true);
// HTML
$li_count = 0;
$i = 1;
$html = '<div id="toc"><h1>' . __('Contents', 'pressbooks') . '</h1><ul>';
foreach ($this->manifest as $k => $v) {
// We only care about front-matter, part, chapter, back-matter
// Skip the rest
$subtitle = '';
$author = '';
$license = '';
$title = Sanitize\strip_br($v['post_title']);
if (preg_match('/^front-matter-/', $k)) {
$class = 'front-matter ';
$class .= \PressBooks\Taxonomy\front_matter_type($v['ID']);
$subtitle = trim(get_post_meta($v['ID'], 'pb_subtitle', true));
$author = trim(get_post_meta($v['ID'], 'pb_section_author', true));
$license = $options['copyright_license'] ? get_post_meta($v['ID'], 'pb_section_license', true) : '';
} elseif (preg_match('/^part-/', $k)) {
$class = 'part';
if (get_post_meta($v['ID'], 'pb_part_invisible', true) == 'on') {
$class .= ' display-none';
}
} elseif (preg_match('/^chapter-/', $k)) {
$class = 'chapter';
$class .= \PressBooks\Taxonomy\chapter_type($v['ID']);
$subtitle = trim(get_post_meta($v['ID'], 'pb_subtitle', true));
$author = trim(get_post_meta($v['ID'], 'pb_section_author', true));
$license = $options['copyright_license'] ? get_post_meta($v['ID'], 'pb_section_license', true) : '';
if ($this->numbered && \PressBooks\Taxonomy\chapter_type($v['ID']) !== 'numberless') {
$title = " {$i}. " . $title;
}
if (\PressBooks\Taxonomy\chapter_type($v['ID']) !== 'numberless') {
++$i;
}
} elseif (preg_match('/^back-matter-/', $k)) {
$class = 'back-matter ';
$class .= \PressBooks\Taxonomy\back_matter_type($v['ID']);
$subtitle = trim(get_post_meta($v['ID'], 'pb_subtitle', true));
$author = trim(get_post_meta($v['ID'], 'pb_section_author', true));
$license = $options['copyright_license'] ? get_post_meta($v['ID'], 'pb_section_license', true) : '';
} else {
continue;
}
$html .= sprintf('<li class="%s"><a href="%s"><span class="toc-chapter-title">%s</span>', $class, $v['filename'], Sanitize\decode($title));
if ($subtitle) {
$html .= ' <span class="chapter-subtitle">' . Sanitize\decode($subtitle) . '</span>';
}
if ($author) {
$html .= ' <span class="chapter-author">' . Sanitize\decode($author) . '</span>';
}
if ($license) {
$html .= ' <span class="chapter-license">' . $license . '</span> ';
}
$html .= "</a>";
if (\PressBooks\Export\Export::shouldParseSections() == true) {
$sections = \PressBooks\Book::getSubsections($v['ID']);
if ($sections) {
$s = 1;
$html .= '<ul class="sections">';
foreach ($sections as $section) {
$html .= '<li class="section"><a href="' . $v['filename'] . '#section-' . $s . '"><span class="toc-subsection-title">' . Sanitize\decode($section) . '</span></a></li>';
++$s;
}
$html .= '</ul>';
}
}
$html .= "</li>\n";
++$li_count;
}
if (0 == $li_count) {
$html .= '<li></li>';
}
$html .= "</ul></div>\n";
// Create file
$vars['post_content'] = $html;
file_put_contents($this->tmpDir . "/OEBPS/{$filename}", $this->loadTemplate($this->dir . '/templates/xhtml.php', $vars));
}
示例2: echoBackMatter
/**
* @param array $book_contents
* @param array $metadata
*/
protected function echoBackMatter($book_contents, $metadata)
{
$back_matter_printf = '<div class="back-matter %s" id="%s">';
$back_matter_printf .= '<div class="back-matter-title-wrap"><h3 class="back-matter-number">%s</h3><h1 class="back-matter-title">%s</h1></div>';
$back_matter_printf .= '<div class="ugc back-matter-ugc">%s</div>%s';
$back_matter_printf .= '</div>';
$i = $s = 1;
foreach ($book_contents['back-matter'] as $back_matter) {
if (!$back_matter['export']) {
continue;
}
$id = $back_matter['ID'];
$subclass = \PressBooks\Taxonomy\back_matter_type($id);
$slug = $back_matter['post_name'];
$title = get_post_meta($id, 'pb_show_title', true) ? $back_matter['post_title'] : '<span class="display-none">' . $back_matter['post_title'] . '</span>';
// Preserve auto-indexing in Prince using hidden span
$content = $back_matter['post_content'];
$short_title = trim(get_post_meta($id, 'pb_short_title', true));
$subtitle = trim(get_post_meta($id, 'pb_subtitle', true));
$author = trim(get_post_meta($id, 'pb_section_author', true));
$sections = \PressBooks\Book::getSubsections($id);
if ($sections) {
$content = \PressBooks\Book::tagSubsections($content);
}
if ($author) {
$content = '<h2 class="chapter-author">' . Sanitize\decode($author) . '</h2>' . $content;
}
if ($subtitle) {
$content = '<h2 class="chapter-subtitle">' . Sanitize\decode($subtitle) . '</h2>' . $content;
}
if ($short_title) {
$content = '<h6 class="short-title">' . Sanitize\decode($short_title) . '</h6>' . $content;
}
printf($back_matter_printf, $subclass, $slug, $i, Sanitize\decode($title), $content, $this->doEndnotes($id));
echo "\n";
++$i;
}
}
示例3: getOrderedBookContents
/**
* Restructures \PressBooks\Book::getBookContents() into a format more useful
* for direct iteration, and tracks a nesting level for Bookmark and ToC
* entries.
*
* @return array
*/
function getOrderedBookContents()
{
$book_contents = \PressBooks\Book::getBookContents();
$ordered = array();
foreach ($book_contents as $type => $struct) {
if (strpos($type, '__') === 0) {
continue;
// Skip __magic keys
}
switch ($type) {
case 'part':
foreach ($struct as $part) {
$part_content = trim(get_post_meta($part['ID'], 'pb_part_content', true));
if ($part_content || $this->atLeastOneExport($part['chapters'])) {
if (!empty($part['post_content'])) {
$part['mpdf_level'] = 1;
$part['post_content'] .= $part_content;
} else {
$part['post_content'] = $part_content;
$part['mpdf_level'] = 0;
}
$ordered[] = $part;
foreach ($part['chapters'] as $chapter) {
if (!$chapter['export']) {
continue;
}
$chapter['mpdf_level'] = $part['mpdf_level'] + 1;
$ordered[] = $chapter;
if (\PressBooks\Export\Export::shouldParseSections() == true) {
$sections = \PressBooks\Book::getSubsections($chapter['ID']);
if ($sections) {
foreach ($sections as $section) {
$section['mpdf_level'] = $part['mpdf_level'] + 2;
$ordered[] = $section;
}
}
}
}
}
}
break;
default:
foreach ($struct as $item) {
if (!$item['export']) {
continue;
}
$item['mpdf_level'] = 1;
$ordered[] = $item;
if (\PressBooks\Export\Export::shouldParseSections() == true) {
$sections = \PressBooks\Book::getSubsections($item['ID']);
if ($sections) {
foreach ($sections as $section) {
$section['mpdf_level'] = 2;
$ordered[] = $section;
}
}
}
}
break;
}
}
return $ordered;
}
示例4: pb_get_sections
/**
* Returns an array of subsections in front matter, back matter, or chapters.
*
* @param $id
*
* @return array
*/
function pb_get_sections($id)
{
return \PressBooks\Book::getSubsections($id);
}