| Current Path : /home/antonen/poznajlitwe.lt/libraries/nextend2/nextend/library/libraries/form/tabs/ |
| Current File : /home/antonen/poznajlitwe.lt/libraries/nextend2/nextend/library/libraries/form/tabs/tabbed.php |
<?php
N2Loader::import('libraries.form.tab');
class N2TabTabbed extends N2Tab {
protected $active = 1;
protected $underlined = false;
protected $external = false;
protected $classes = '';
public function render($control_name) {
$id = 'n2-form-matrix-' . $this->name;
$active = $this->getActive();
?>
<div id="<?php echo $id; ?>" class="n2-form-tab n2-form-matrix">
<?php
if (!$this->external) {
?>
<div class="n2-h2 n2-content-box-title-bg n2-form-matrix-views <?php echo $this->classes; ?>">
<?php
$i = 0;
$class = ($this->underlined ? 'n2-underline' : '') . ' n2-h4 n2-uc n2-has-underline n2-form-matrix-menu';
foreach ($this->tabs AS $tabName => $tab) {
echo N2Html::tag("div", array(
"class" => $class . ($i == $active ? ' n2-active' : '') . ' n2-fm-' . $tabName,
"data-tab" => $tabName
), N2Html::tag("span", array("class" => "n2-underline"), $tab->getLabel()));
$i++;
}
?>
</div>
<?php
}
?>
<div class="n2-tabs">
<?php
$i = 0;
foreach ($this->tabs AS $tabName => $tab) {
echo N2Html::openTag('div', array(
'class' => 'n2-form-matrix-pane' . ($i == $active ? ' n2-active' : '') . ' n2-fm-' . $tabName
));
$tab->render($control_name);
echo N2Html::closeTag('div');
$i++;
}
?>
</div>
</div>
<?php
$this->addScript($id);
}
protected function getActive() {
return max(1, $this->active) - 1;
}
protected function addScript($id) {
N2JS::addInline('
(function(){
var matrix = $("#' . $id . '"),
views = matrix.find("> .n2-form-matrix-views > div"),
panes = matrix.find("> .n2-tabs > div");
views.on("click", function(){
views.removeClass("n2-active");
panes.removeClass("n2-active");
var i = views.index(this);
views.eq(i).addClass("n2-active");
panes.eq(i).addClass("n2-active");
});
})();
');
}
/**
* @param int $active
*/
public function setActive($active) {
$this->active = $active;
}
/**
* @param bool $underlined
*/
public function setUnderlined($underlined) {
$this->underlined = $underlined;
}
/**
* @param bool $external
*/
public function setExternal($external) {
$this->external = $external;
}
/**
* @param string $classes
*/
public function setClasses($classes) {
$this->classes = $classes;
}
}