Get instances by keys:
Hide the home of $bcCustom
hideHome();
Set the last breadcrumb clickable (it is rendered as a simple text by default)
setLastClicklable();
You can override the default CSS classes of the wrapper HTML node
$bcCustom->setCssClasses('breadcrumb-custom');
Be careful! If you want to add a new class, use this method
addCssClasses('additional-class1 additional-class2');
Get the items as associative arrays
toArray();
$itemsCustom = $bcCustom->toArray();
파일:
render_functions.php
프로젝트:
knapnet/PHP-Fusion
function render_breadcrumbs()
{
$breadcrumbs = BreadCrumbs::getInstance();
$html = "<ol class='" . $breadcrumbs->getCssClasses() . "'>\n";
foreach ($breadcrumbs->toArray() as $crumb) {
$html .= "<li class='" . $crumb['class'] . "'>";
$html .= $crumb['link'] ? "<a title='" . $crumb['title'] . "' href='" . $crumb['link'] . "'>" . $crumb['title'] . "</a>" : $crumb['title'];
$html .= "</li>\n";
}
$html .= "</ol>\n";
return $html;
}
파일:
theme.php
프로젝트:
knapnet/PHP-Fusion
function render_page($license = FALSE)
{
global $locale, $data, $aidlink;
include THEME . "/locale/" . LOCALESET . "locale.php";
add_to_head('
<!--[if lt IE 7]>
<script type="text/javascript" src="' . THEME . 'js/ie-png.js"></script>
<script type="text/javascript" src="' . THEME . 'js/supersleight.js"></script>
<link rel="stylesheet" type="text/css" href="' . THEME . 'css/lt7.css" />
<![endif]-->
<!--[if IE]>
<link rel="stylesheet" type="text/css" href="' . THEME . 'css/ie.css" />
<![endif]-->
<!--[if IE 7]>
<link rel="stylesheet" type="text/css" href="' . THEME . 'css/ie7.css" />
<![endif]-->
<script type="text/javascript" src="' . THEME . 'js/jquery.cycle.all.min.js"></script>
<script type="text/javascript" src="' . THEME . 'js/cufon-yui.js"></script>
<script type="text/javascript" src="' . THEME . 'js/Debonair-Calibri.js"></script>
<script type="text/javascript" src="' . THEME . 'js/Cufon-Settings.js"></script>
<script type="text/javascript" src="' . THEME . 'js/slider-settings.js"></script>
<script type="text/javascript" src="' . THEME . 'js/subnavie6.js"></script>
');
add_to_head("<link rel='stylesheet' href='" . THEME . "css/bootstrap_rewrite.css' type='text/css'/>");
include THEME . "theme_db.php";
$theme_settings = get_theme_settings("debonair");
echo "<div id='wrapper'>\n";
echo "<div class='container'>\n";
echo "<div class='body-wrap'>\n";
echo "<div class='body-inner-wrap'>\n";
// start header ----
$banner_path = fusion_get_settings("sitebanner");
echo "<header class='clearfix m-t-10'>\n\t\t<a class='logo' href='" . BASEDIR . "index.php'><img src='" . ($banner_path !== "" ? BASEDIR . $banner_path : IMAGES . "php-fusion-logo.png") . "' alt='" . fusion_get_settings("sitename") . "'/></a>\n\t\t<div class='tagline'>Super Clean Web 2.0 Business Template</div>\n";
echo "<div class='call-tag'>\n";
if (iADMIN) {
echo "<span class='display-inline-block m-r-10'><a href='" . ADMIN . $aidlink . "'>" . $locale['global_123'] . "</a></span>\n";
}
echo $locale['global_ML102'] . "\n";
foreach (fusion_get_enabled_languages() as $lang => $lang_name) {
echo "<a href='" . clean_request("lang=" . $lang, array(), FALSE) . "'>{$lang_name}</a>\n";
}
echo "<i id='theme_search' class='fa fa-search fa-fw'></i>";
echo "</div>\n</header>\n";
// end header ----
// start nav ---
echo showsublinks();
// end nav --
// Header Banner
$banner_inclusion_url = explode(",", $theme_settings['main_banner_url']);
if (in_array(START_PAGE, $banner_inclusion_url)) {
// get the results of the banner
$result = dbquery("SELECT * FROM " . DB_DEBONAIR . " where banner_language='" . LANGUAGE . "' order by banner_order ASC");
// show banner
echo "<aside class='banner'>\n";
echo "<div id='slider-container'>\n";
echo "<ul id='slider-box'>\n";
if (dbrows($result)) {
while ($data = dbarray($result)) {
echo "<!--Slide " . $data['banner_id'] . "-->\n";
echo "<li>\n";
echo "<div class='inner-banner'>\n";
echo "<div class='slider-corner'></div>\n";
if ($data['banner_image']) {
echo "<div class='screen'><img src='" . THEME . "upload/" . $data['banner_image'] . "' alt='" . $data['banner_subject'] . "'/></div>\n";
}
if ($data['banner_description'] !== "") {
echo "<h2>" . $data['banner_subject'] . "</h2>\n";
echo "<p>" . parseubb(parsesmileys($data['banner_description'])) . "</p>\n";
} else {
echo "<h1>" . $data['banner_subject'] . "</h1>\n";
}
if ($data['banner_link'] !== "") {
echo "<div class='button-position'>\n";
echo "<div class='btn-group'><a class='btn btn-success btn-sm' href='" . BASEDIR . $data['banner_link'] . "'>Learn more</a></div>\n";
echo "</div>\n";
}
echo "</div>\n</li>\n";
echo "<!--End slide " . $data['banner_id'] . "-->\n";
}
} else {
echo "<!--Slide Welcome-->\n\t\t\t <li>\n\t\t\t <div class='welcome-banner'><div class='slider-corner'></div>\n\t\t\t <h1>" . $locale['debonair_0500'] . "</h1>\n\t\t\t <h2>" . $locale['debonair_0501'] . "</h2>\n\t\t\t </div>\n\t\t\t </li>\n\t\t\t <!-- End Slide Welcome-->\n\t\t \t";
echo "<!--Slide Customize-->\n\t\t\t <li>\n\t\t\t <div class='welcome-banner-2'><div class='slider-corner'></div>\n\t\t\t <h1>" . $locale['debonair_0502'] . "</h1>\n\t\t\t <h2>" . $locale['debonair_0502a'] . "</h2>\n\t\t\t <div class='button-position'>\n\t\t\t <p>" . $locale['debonair_0502c'] . "</p>\n\t\t\t </div></div>\n\t\t\t </li>\n\t\t\t <!-- End Slide Customize-->\n\t\t \t";
}
echo "</ul>\n";
echo "<!-- Start Slider Nav-->\n<div class='slide-pager-container'>\n<div id='slide-pager'></div>\n</div>\n<!-- End Slider Nav-->\n</div>\n";
echo "</aside>\n";
// upperbanner
echo "<div class='lower-banner'>\n<div class='row holder'>\n";
// 3 columns
for ($i = 1; $i <= 3; $i++) {
echo "<div class='col-xs-12 col-sm-4 col'>\n";
if ($theme_settings['ubanner_col_' . $i] !== "") {
$data = uncomposeSelection($theme_settings['ubanner_col_' . $i]);
if (!empty($data['selected']) && multilang_table("NS") ? !empty($data['options'][LANGUAGE]) : "") {
switch ($data['selected']) {
case "news":
if (db_exists(DB_NEWS) && isset($data['options'][LANGUAGE])) {
$result = dbquery("select * from " . DB_NEWS . "\n\t\t\t\t\t\t\t\t\t\t\t" . (multilang_table("NS") ? "WHERE news_language='" . LANGUAGE . "' AND" : "WHERE") . " " . groupaccess('news_visibility') . "\n\t\t\t\t\t\t\t\t\t\t\tAND (news_start='0'||news_start<=" . time() . ")\n\t\t\t\t\t\t\t\t\t\t\tAND (news_end='0'||news_end>=" . time() . ") AND news_draft='0'\n\t\t\t\t\t\t\t\t\t\t\tAND news_id='" . $data['options'][LANGUAGE] . "'\n\t\t\t\t\t\t\t\t\t\t\t");
if (dbrows($result) > 0) {
$data = dbarray($result);
echo "<h2 class='icon1'>" . $data['news_subject'] . "</h2>\n";
echo "<p>" . fusion_first_words(parse_textarea($data['news_news']), 50) . "</p>\n";
echo "<div class='link-holder'><a href='" . INFUSIONS . "news/news.php?readmore=" . $data['news_id'] . "' class='more'>" . $locale['debonair_0504'] . "</a></div>\n";
} else {
echo "<p>" . $locale['debonair_0600'] . "</p>\n";
}
} else {
echo "<p>" . $locale['debonair_0408'] . "</p>\n";
}
break;
case "blog":
if (db_exists(DB_BLOG) && isset($data['options'][LANGUAGE])) {
$result = dbquery("select * from " . DB_BLOG . "\n\t\t\t\t\t\t\t\t\t\t\t" . (multilang_table("BL") ? "WHERE blog_language='" . LANGUAGE . "' AND" : "WHERE") . " " . groupaccess('blog_visibility') . "\n\t\t\t\t\t\t\t\t\t\t\tAND (blog_start='0'||blog_start<=" . time() . ")\n\t\t\t\t\t\t\t\t\t\t\tAND (blog_end='0'||blog_end>=" . time() . ") AND blog_draft='0'\n\t\t\t\t\t\t\t\t\t\t\tAND blog_id='" . $data['options'][LANGUAGE] . "'\n\t\t\t\t\t\t\t\t\t\t\t");
if (dbrows($result) > 0) {
$data = dbarray($result);
echo "<h2 class='icon2'>" . $data['blog_subject'] . "</h2>\n";
echo "<p>" . fusion_first_words(parse_textarea($data['blog_blog']), 50) . "</p>\n";
echo "<div class='link-holder'><a href='" . INFUSIONS . "blog/blog.php?readmore=" . $data['blog_id'] . "' class='more'>" . $locale['debonair_0504'] . "</a></div>\n";
} else {
echo "<p>" . $locale['debonair_0600'] . "</p>\n";
}
} else {
echo "<p>" . $locale['debonair_0405'] . "</p>\n";
}
break;
case "articles":
if (db_exists(DB_ARTICLES) && isset($data['options'][LANGUAGE])) {
$result = dbquery("SELECT ta.article_id, ta.article_subject, ta.article_snippet, ta.article_article, ta.article_keywords, ta.article_breaks,\n\t\t\t\t\t\t\t\tta.article_datestamp, ta.article_reads, ta.article_allow_comments, ta.article_allow_ratings,\n\t\t\t\t\t\t\t\ttac.article_cat_id, tac.article_cat_name\n\t\t\t\t\t\t\t\tFROM " . DB_ARTICLES . " ta\n\t\t\t\t\t\t\t\tINNER JOIN " . DB_ARTICLE_CATS . " tac ON ta.article_cat=tac.article_cat_id\n\t\t\t\t\t\t\t\t" . (multilang_table("AR") ? "WHERE tac.article_cat_language='" . LANGUAGE . "' AND" : "WHERE") . " " . groupaccess('article_visibility') . " AND article_id='" . $data['options'][LANGUAGE] . "' AND article_draft='0'");
if (dbrows($result) > 0) {
$data = dbarray($result);
echo "<h2 class='icon2'>" . $data['article_subject'] . "</h2>\n";
echo "<p>" . fusion_first_words(parse_textarea($data['article_subject']), 50) . "</p>\n";
echo "<div class='link-holder'><a href='" . INFUSIONS . "articles/articles.php?article_id=" . $data['article_id'] . "' class='more'>" . $locale['debonair_0504'] . "</a></div>\n";
} else {
echo "<p>" . $locale['debonair_0600'] . "</p>\n";
}
} else {
echo "<p>" . $locale['debonair_0415'] . "</p>\n";
}
break;
case "cp":
$result = dbquery("SELECT page_id, page_title, page_content\n\t\t\t\t\t\t\t\t\t\tfrom " . DB_CUSTOM_PAGES . "\n\t\t\t\t\t\t\t\t\t\tWHERE " . groupaccess('page_access') . "\n\t\t\t\t\t\t\t\t\t\tAND page_id='" . $data['options'][LANGUAGE] . "'");
if (dbrows($result) > 0) {
$data = dbarray($result);
echo "<h2 class='icon3'>" . $data['page_title'] . "</h2>\n";
echo "<p>" . fusion_first_words(parse_textarea($data['page_content']), 50) . "</p>\n";
echo "<div class='link-holder'><a href='" . BASEDIR . "viewpage.php?page_id=" . $data['page_id'] . "' class='more'>" . $locale['debonair_0504'] . "</a></div>\n";
} else {
echo "<p>" . $locale['debonair_0600'] . "</p>\n";
}
break;
}
}
} else {
echo "<h2 class='icon3'>" . $locale['debonair_0601'] . "</h2>\n";
echo "<p>" . $locale['debonair_0602'] . "</p>\n";
}
echo "</div>\n";
}
echo "</div>\n</div>\n";
} else {
// show simple header
echo "<aside class='banner m-b-15'>\n";
echo "<div class='page-header'>\n";
if (!iMEMBER) {
echo "<a href='" . BASEDIR . "login.php' class='btn btn-sm btn-success pull-right'><span>" . $locale['register'] . "/" . $locale['login'] . "</span></a>";
} else {
echo "<a href='" . fusion_get_settings("opening_page") . "?logout=yes' class='btn btn-sm btn-success pull-right'><span>" . $locale['logout'] . "</span></a>";
}
echo "<div class='holder p-b-20 p-r-10'>\n";
echo "<div class='clearfix'>\n";
echo "<div class='pull-left m-r-5'><span class='fa fa-map-marker fa-fw'></i>\n</span></div>";
echo "<div class='overflow-hide'>\n";
echo render_breadcrumbs();
echo "</div>\n</div>\n";
$title_instance = \PHPFusion\BreadCrumbs::getInstance();
$reference = $title_instance->toArray();
// this will give you the whole breadcrumb array
$debonAirTitle = !empty($reference) ? end($reference) : array('title' => $locale['home']);
echo "<h1>" . $debonAirTitle['title'] . "</h1>\n";
echo "</div>\n</div>\n";
echo "</aside>\n";
}
// end of banner
// Start of Inner page structure for Bootstrap
$side_grid_settings = array('desktop_size' => 2, 'laptop_size' => 3, 'tablet_size' => 3, 'phone_size' => 4);
$notices = getNotices();
if ($notices) {
echo renderNotices($notices);
}
echo "<section class='main-content'>\n<div class='main-content-inner'>\n";
// now have to do bootstrap calculation
// row 1 - go for max width
if (defined('AU_CENTER') && AU_CENTER) {
echo "<div class='row'>\n<div class='col-xs-12 col-sm-12 col-md-12 col-lg-12'>" . AU_CENTER . "</div>\n</div>";
}
// row 2 - fluid setitngs depending on panel appearances
echo "<div class='row'>\n";
if (defined('LEFT') && LEFT) {
echo "<div class='" . html_prefix($side_grid_settings) . "'>\n" . LEFT . "</div>\n";
}
// column left
echo "<div class='" . html_prefix(center_grid_settings($side_grid_settings)) . "'>\n";
echo U_CENTER . CONTENT . L_CENTER . "</div>\n";
// column center
if (defined('RIGHT') && RIGHT) {
echo "<div class='" . html_prefix($side_grid_settings) . "'>\n" . RIGHT . "</div>\n";
}
// column right
echo "</div>\n";
// row 3
if (defined('BL_CENTER') && BL_CENTER) {
echo "<div class='row'>\n<div class='col-xs-12 col-sm-12 col-md-12 col-lg-12'>" . BL_CENTER . "</div>\n</div>";
}
echo "</div>\n</section>\n";
echo "</div>\n";
// end body-inner-wrap
// Begin Footer
echo "<section class='lower-section'>\n";
echo "<div class='row col-holder'>\n";
// column 1
echo "<div class='col-xs-12 col-sm-3'>\n";
if ($theme_settings['lbanner_col_1'] !== "") {
include "include/" . $theme_settings['lbanner_col_1'];
}
// column 2
echo "</div>\n<div class='col-xs-12 col-sm-3'>\n";
if ($theme_settings['lbanner_col_2'] !== "") {
include "include/" . $theme_settings['lbanner_col_2'];
}
// column 3
echo "</div>\n<div class='col-xs-12 col-sm-3'>\n";
if ($theme_settings['lbanner_col_3'] !== "") {
include "include/" . $theme_settings['lbanner_col_3'];
}
// column 4
echo "</div>\n<div class='col-xs-12 col-sm-3'>\n";
if ($theme_settings['lbanner_col_4'] !== "") {
include "include/" . $theme_settings['lbanner_col_4'];
}
echo "</div>\n";
echo "</div>\n";
// start bottom
echo "<div class='bottom'>\n";
if ($theme_settings['facebook_url'] || $theme_settings['twitter_url']) {
echo "<!-- Start Follow Us Links -->\n<div class='follow-box'> <strong>" . $locale['debonair_0510'] . "</strong><ul>\n";
if ($theme_settings['facebook_url']) {
echo "<li><a href='" . $theme_settings['facebook_url'] . "' class='facebook'>" . $locale['debonair_0511'] . "</a></li>\n";
}
if ($theme_settings['twitter_url']) {
echo "<li><a href='" . $theme_settings['twitter_url'] . "' class='twitter'>" . $locale['debonair_0512'] . "</a></li>\n";
}
echo "</ul></div><!-- End Follow Us Links -->\n";
}
echo "<div class='txt-holder'><p><small>" . str_replace("<br />", "", showcopyright()) . "</small></p></div>\n\t</div>\n</div>";
echo "</section>\n";
echo "</div>\n <!--End Wrapper Sub Elements -->";
echo "\n\t<div id='footer'>\n <!--Start Footer Nav -->\n <div class='footer-nav'>\n <div class='w1'>\n <div class='w2'>\n <ul>\n <li><a href='" . BASEDIR . fusion_get_settings("opening_page") . "'>" . $locale['debonair_0505'] . "</a></li>\n\t\t\t\t <li><a href='" . BASEDIR . "contact.php'>" . $locale['debonair_0506'] . "</a></li>\n";
if (db_exists(DB_ARTICLES)) {
echo "<li><a href='" . INFUSIONS . "articles/articles.php'>" . $locale['debonair_0507'] . "</a></li>\n";
}
if (db_exists(DB_NEWS)) {
echo "<li><a href='" . INFUSIONS . "news/news.php'>" . $locale['debonair_0508'] . "</a></li>\n";
}
if (db_exists(DB_BLOG)) {
echo "<li><a href='" . INFUSIONS . "blog/blog.php'>" . $locale['debonair_0509'] . "</a></li>\n";
}
echo "</ul>\n </div>\n </div>\n </div>\n <!--End Footer Nav -->\n </div>\n\t";
echo '<script type="text/javascript">Cufon.now();</script>';
}
/**
* Displays Site Links Navigation Bar
* @param string $sep - Custom seperator text
* @param string $class - Class
* @param array $options - Expansions 9.1
* @param int $id - 0 for root , Sitelink_ID to show child only
* @return string
*/
function showsublinks($sep = "", $class = "", array $options = array(), $id = 0)
{
$pageInfo = pathinfo($_SERVER['SCRIPT_NAME']);
$start_page = $pageInfo['dirname'] !== "/" ? ltrim($pageInfo['dirname'], "/") . "/" : "";
$site_path = ltrim(fusion_get_settings("site_path"), "/");
$start_page = str_replace($site_path, "", $start_page);
$start_page .= $pageInfo['basename'];
if (fusion_get_settings("site_seo") && defined('IN_PERMALINK') && !isset($_GET['aid'])) {
global $filepath;
$start_page = $filepath;
}
static $data = array();
$res =& $res;
if (empty($data)) {
$data = dbquery_tree_full(DB_SITE_LINKS, "link_id", "link_cat", "WHERE link_position >= 2" . (multilang_table("SL") ? " AND link_language='" . LANGUAGE . "'" : "") . " AND " . groupaccess('link_visibility') . " ORDER BY link_cat, link_order");
}
if ($id == 0) {
$res = "<div id='pf-navbar' class='navbar navbar-default' role='navigation'>\n";
$res .= "<div class='navbar-header'>\n";
$res .= "<!---Menu Header Start--->\n";
$res .= "<button type='button' class='navbar-toggle collapsed' data-toggle='collapse' data-target='#phpfusion-menu' aria-expanded='false'>\n\t\t\t\t\t<span class='sr-only'>Toggle navigation</span>\n\t\t\t\t\t<span class='icon-bar'></span>\n\t\t\t\t\t<span class='icon-bar'></span>\n\t\t\t\t\t<span class='icon-bar'></span>\n \t\t\t</button>\n";
$res .= "<a class='navbar-brand visible-xs hidden-sm hidden-md hidden-lg' href='#'>" . fusion_get_settings("sitename") . "</a>\n";
$res .= "<!---Menu Header End--->\n";
$res .= "</div>\n";
$res .= "<div class='navbar-collapse collapse' id='phpfusion-menu'>\n";
$res .= "<ul " . (fusion_get_settings("bootstrap") ? "class='nav navbar-nav primary'" : "id='main-menu' class='primary sm sm-simple'") . ">\n";
$res .= "<!---Menu Item Start--->\n";
}
//else {
//$res .= "<ul".(fusion_get_settings("bootstrap") ? " class='dropdown-menu'" : "").">\n";
//}
if (!empty($data)) {
$i = 0;
foreach ($data[$id] as $link_id => $link_data) {
$li_class = $class;
// Attempt to calculate a relative link
$secondary_active = FALSE;
if ($start_page !== $link_data['link_url']) {
$link_instance = \PHPFusion\BreadCrumbs::getInstance();
$link_instance->showHome(FALSE);
$reference = $link_instance->toArray();
if (!empty($reference)) {
foreach ($reference as $refData) {
if (!empty($refData['link']) && $link_data['link_url'] !== "index.php") {
if (stristr($refData['link'], str_replace("index.php", "", $link_data['link_url']))) {
$secondary_active = TRUE;
}
break;
}
}
}
}
if ($link_data['link_name'] != "---" && $link_data['link_name'] != "===") {
$link_target = $link_data['link_window'] == "1" ? " target='_blank'" : "";
if ($i == 0 && $id > 0) {
$li_class .= ($li_class ? " " : "") . "first-link";
}
if ($start_page == $link_data['link_url'] || $secondary_active == TRUE || $start_page == fusion_get_settings("opening_page") && $i == 0 && $id === 0) {
$li_class .= ($li_class ? " " : "") . "current-link active";
}
if (preg_match("!^(ht|f)tp(s)?://!i", $link_data['link_url'])) {
$itemlink = $link_data['link_url'];
} else {
$itemlink = BASEDIR . $link_data['link_url'];
}
$has_child = false;
$l_1 = "";
$l_2 = "";
if (isset($data[$link_id])) {
$has_child = true;
$l_1 = "class='dropdown-toggle' data-toggle='dropdown' ";
$l_2 = " <i class='caret'></i>\n";
$li_class .= " dropdown";
}
$res .= "<li" . ($li_class ? " class='" . $li_class . "'" : "") . ">" . $sep . "\n";
$res .= "<a " . $l_1 . "href='" . $itemlink . "'" . $link_target . ">" . $link_data['link_name'] . $l_2 . "</a>\n";
if ($has_child) {
$res .= "<ul" . (fusion_get_settings("bootstrap") ? " class='dropdown-menu'" : "") . ">\n";
$res .= "<li>" . $sep . "\n";
$res .= "<a href='" . $itemlink . "'" . $link_target . ">" . $link_data['link_name'] . "</a>\n";
$res .= "</li>\n";
$res .= showsublinks($sep, $class, $options, $link_data['link_id']);
$res .= "</ul>\n";
}
$res .= "</li>\n";
} elseif ($link_data['link_cat'] > 0) {
echo "<li class='divider'></li>";
}
$i++;
}
}
if ($id == 0) {
$res .= "<!---Menu Item End--->\n";
$res .= "</ul>\n";
$res .= "</div>\n</div>\n";
//} else {
//$res .= "</ul>\n";
//}
}
/** Smart Menus */
/* add_to_jquery("
$('li.dropdown').hover(
function(e) {
$(this).addClass('open');
},
function(e) {
$(this).removeClass('open');
}
);
"); */
return $res;
}
/**
* Displays Site Links Navigation Bar
* @param string $sep - Custom seperator text
* @param string $class - Class
* @param array $options -
*
* Default $options parameters:
* id - unique navbar id
* container - true for container mode
* navbar_class - switch between navbar-default, navbar-inverse or custom class
* item_class - the default li class
* separator - default li separator
* callback_data - replace default data callback
*
* @param int $id - 0 for root , Sitelink_ID to show child only
* @return string
*/
function showsublinks($sep = "", $class = "", array $options = array(), $id = 0)
{
$default_options = array("id" => "", "container" => FALSE, "navbar_class" => "navbar-default", "item_class" => $class, "separator" => $sep, "callback_data" => array(), "links_per_page" => fusion_get_settings("links_per_page"), "grouping" => fusion_get_settings("links_grouping"), "show_banner" => false, "show_header" => false);
$options += $default_options;
if (empty($options['id'])) {
$options['id'] = md5(str_shuffle(str_replace(" ", "_", fusion_get_settings("sitename"))));
}
$pageInfo = pathinfo($_SERVER['REQUEST_URI']);
$start_page = $pageInfo['dirname'] !== "/" ? ltrim($pageInfo['dirname'], "/") . "/" : "";
$site_path = ltrim(fusion_get_settings("site_path"), "/");
$start_page = str_replace($site_path, "", $start_page);
$start_page .= $pageInfo['basename'];
if (fusion_get_settings("site_seo") && defined('IN_PERMALINK') && !isset($_GET['aid'])) {
global $filepath;
$start_page = $filepath;
}
$res =& $res;
if (empty($data) && empty($options['callback_data'])) {
$data = \PHPFusion\SiteLinks::get_SiteLinksData(array('link_position' => array(2, 3)));
// Is Equivalent to:
//$data = dbquery_tree_full(DB_SITE_LINKS, "link_id", "link_cat", "WHERE link_position >= 2".(multilang_table("SL") ? " AND link_language='".LANGUAGE."'" : "")." AND ".groupaccess('link_visibility')." ORDER BY link_cat ASC, link_order ASC");
} else {
$data = $options['callback_data'];
}
/**
* Change hierarchy data when grouping is on
*/
if ($options['grouping'] == true) {
if (count($data[0]) > $options['links_per_page']) {
$more_index = 9 * 10000000;
$base_data = $data[0];
$data[$more_index] = array_slice($base_data, $options['links_per_page'], 9, TRUE);
$data[0] = array_slice($base_data, 0, $options['links_per_page'], TRUE);
$more[$more_index] = array("link_id" => $more_index, "link_cat" => 0, "link_name" => fusion_get_locale("global_700"), "link_url" => "#", "link_icon" => "", "link_visibility" => 0, "link_position" => 2, "link_window" => 0, "link_order" => $options['links_per_page'], "link_language" => LANGUAGE);
$data[0] += $more;
}
}
$banner = fusion_get_settings("sitebanner") && $options['show_banner'] == true ? "<img src='" . BASEDIR . fusion_get_settings("sitebanner") . "' alt='" . fusion_get_settings("sitename") . "'/>" : fusion_get_settings("sitename");
if (empty($id)) {
$res = "<div id='" . $options['id'] . "' class='navbar " . $options['navbar_class'] . "' role='navigation'>\n";
$res .= $options['container'] ? "<div class='container'>\n" : "";
$res .= "<div class='navbar-header'>\n";
$res .= "<!---Menu Header Start--->\n";
$res .= "<button type='button' class='navbar-toggle collapsed' data-toggle='collapse' data-target='#phpfusion-menu' aria-expanded='false'>\n\t\t\t\t\t<span class='sr-only'>Toggle navigation</span>\n\t\t\t\t\t<span class='icon-bar'></span>\n\t\t\t\t\t<span class='icon-bar'></span>\n\t\t\t\t\t<span class='icon-bar'></span>\n \t\t\t</button>\n";
if ($options['show_header']) {
$res .= "<a class='navbar-brand' href='" . BASEDIR . fusion_get_settings('opening_page') . "'>{$banner}</a>\n";
} else {
$res .= "<a class='navbar-brand visible-xs hidden-sm hidden-md hidden-lg' href='" . BASEDIR . fusion_get_settings('opening_page') . "'>" . fusion_get_settings("sitename") . "</a>\n";
}
$res .= "<!---Menu Header End--->\n";
$res .= "</div>\n";
$res .= "<div class='navbar-collapse collapse' id='" . $id . "-menu'>\n";
$res .= "<ul " . (fusion_get_settings("bootstrap") ? "class='nav navbar-nav primary'" : "id='main-menu' class='primary sm sm-simple'") . ">\n";
$res .= "<!---Menu Item Start--->\n";
}
if (!empty($data)) {
$i = 0;
$default_link_data = array("link_id" => 0, "link_name" => "", "link_cat" => 0, "link_url" => "", "link_icon" => "", "link_active" => FALSE, "link_title" => FALSE, "link_disabled" => FALSE, "link_window" => FALSE);
foreach ($data[$id] as $link_id => $link_data) {
$link_data += $default_link_data;
$link_data['link_name'] = parsesmileys(parseubb($link_data['link_name']));
$li_class = $options['item_class'];
if ($link_data['link_disabled']) {
$li_class = "disabled";
} else {
if ($link_data['link_title'] == TRUE) {
$li_class = "dropdown-header";
}
}
// Attempt to calculate a relative link
$secondary_active = FALSE;
if ($start_page !== $link_data['link_url']) {
$link_instance = \PHPFusion\BreadCrumbs::getInstance();
$link_instance->showHome(FALSE);
$reference = $link_instance->toArray();
if (!empty($reference)) {
foreach ($reference as $refData) {
if (!empty($link_data['link_url']) && !empty($refData['link']) && $link_data['link_url'] !== "index.php") {
if (stristr($refData['link'], str_replace("index.php", "", $link_data['link_url']))) {
$secondary_active = TRUE;
}
break;
// match found
}
}
}
}
if ($link_data['link_name'] != "---" && $link_data['link_name'] != "===") {
$link_target = $link_data['link_window'] == "1" ? " target='_blank'" : "";
if ($i == 0 && $id > 0) {
$li_class .= ($li_class ? " " : "") . "first-link";
}
if ($start_page == $link_data['link_url'] || fusion_get_settings('site_path') . $start_page == $link_data['link_url'] || $secondary_active == TRUE || $start_page == fusion_get_settings("opening_page") && $i == 0 && $id === 0) {
$li_class .= ($li_class ? " " : "") . "current-link active";
}
$itemlink = BASEDIR . $link_data['link_url'];
if (preg_match("!^(ht|f)tp(s)?://!i", $link_data['link_url']) || !empty(BASEDIR) && stristr($link_data['link_url'], BASEDIR)) {
$itemlink = $link_data['link_url'];
}
$has_child = false;
$l_1 = "";
$l_2 = "";
$tab_index = "";
if (isset($data[$link_id])) {
$has_child = true;
$l_1 = "class='dropdown-toggle' data-toggle='dropdown' ";
$l_1 .= empty($id) && $has_child ? "data-submenu " : "";
$l_2 = empty($id) ? " <i class='caret'></i>\n" : "";
$li_class .= !empty($id) ? " dropdown-submenu" : " dropdown";
$tab_index .= !empty($id) ? "tabindex='0'" : "";
}
$res .= "<li" . ($li_class ? " class='" . $li_class . "'" : "") . ">" . $sep . "\n";
$res .= "<a " . $l_1 . "href='" . $itemlink . "'" . $link_target . " {$tab_index}>\n";
$res .= !empty($link_data['link_icon']) ? "<i class='" . $link_data['link_icon'] . "'></i>" : "";
$res .= $link_data['link_name'] . $l_2 . "</a>\n";
if ($has_child) {
$res .= "<ul" . (fusion_get_settings("bootstrap") ? " class='dropdown-menu'" : "") . ">\n";
if (!empty($link_data['link_url']) and $link_data['link_url'] !== "#") {
$res .= "<li>" . $options['separator'] . "\n";
$res .= "<a href='" . $itemlink . "'" . $link_target . ">\n";
$res .= !empty($link_data['link_icon']) ? "<i class='" . $link_data['link_icon'] . "'></i>" : "";
$res .= $link_data['link_name'] . "</a>\n";
$res .= "</li>\n";
}
$res .= showsublinks($sep, $class, $options, $link_data['link_id']);
$res .= "</ul>\n";
}
$res .= "</li>\n";
} elseif ($link_data['link_cat'] > 0) {
$res .= "<li class='divider'></li>";
}
$i++;
}
}
if (empty($id)) {
$res .= "<!---Menu Item End--->\n";
$res .= "</ul>\n";
$res .= $options['container'] ? "</div>\n" : "";
$res .= "</div>\n</div>\n";
}
return $res;
}
파일:
breadcrumbs.php
프로젝트:
knapnet/PHP-Fusion
/**
* Get breadcrumbs
*
* @return array Keys of elements: title, link
*/
function get_breadcrumbs()
{
return BreadCrumbs::getInstance()->toArray();
}