Exemplo n.º 1
0
    /**
     * @param WikiLingo\Expression\Plugin $plugin
     * @param string $body
     * @param WikiLingo\Renderer $renderer
     * @param WikiLingo\Parser $parser
     * @return string
     */
    public function render(WikiLingo\Expression\Plugin &$plugin, &$body, &$renderer, &$parser)
    {
        $id = $plugin->id();
        $seconds = $plugin->parameter('seconds');
        $slideAnimation = '';
        $i = 0;
        if (!$parser->wysiwyg) {
            $children = $plugin->children('Plugin');
            $childrenCount = count($children);
            foreach ($children as $child) {
                switch ($child->type) {
                    case 'Slider':
                        $sliderId = $child->id();
                        $thisSlideSeconds = $seconds * ($childrenCount - $i - 1);
                        $i++;
                        $slideAnimation .= <<<CSS


CSS;
                        break;
                }
            }
            $totalSlideSeconds = $i * $seconds;
            $parser->scripts->addCss(<<<CSS



CSS
);
        }
        $sliders = parent::render($plugin, $body, $renderer, $parser);
        return $sliders;
    }
Exemplo n.º 2
0
    /**
     * @param WikiLingo\Expression\Plugin $plugin
     * @param string $body
     * @param WikiLingo\Renderer $renderer
     * @param WikiLingo\Parser $parser
     * @return string
     */
    public function render(WikiLingo\Expression\Plugin &$plugin, &$body = '', &$renderer, &$parser)
    {
        $plugin->allowLineAfter = false;
        $id = $plugin->id();
        $parser->scripts->addScript(<<<JS
\$(function() {
\tvar tabs = \$('#{$id}');
\ttabs.tabs();
});
JS
);
        if (!empty($plugin->privateAttributes['titles'])) {
            $ul = $renderer->helper('ul');
            foreach ($plugin->privateAttributes['titles'] as $tabId => $title) {
                $a = $renderer->helper('a');
                $a->attributes['href'] = '#' . $tabId;
                $a->staticChildren[] = $title;
                $li = $renderer->helper('li');
                $li->children[] = $a;
                $ul->children[] = $li;
            }
            $body = $ul->render() . $body;
        }
        $tabs = parent::render($plugin, $body, $renderer, $parser);
        return $tabs;
    }
Exemplo n.º 3
0
 /**
  * @param WikiLingo\Expression\Plugin $plugin
  * @param string $body
  * @param WikiLingo\Renderer $renderer
  * @param WikiLingo\Parser $parser
  * @return string
  */
 public function render(WikiLingo\Expression\Plugin &$plugin, &$body, &$renderer, &$parser)
 {
     if (!isset($plugin->parent->privateAttributes['titles'])) {
         $plugin->parent->privateAttributes['titles'] = array();
     }
     $plugin->parent->privateAttributes['titles'][$plugin->id()] = $plugin->parameter('title');
     return parent::render($plugin, $body, $renderer, $parser);
 }
Exemplo n.º 4
0
    /**
     * @param WikiLingo\Expression\Plugin $plugin
     * @param string $body
     * @param WikiLingo\Renderer $renderer
     * @param WikiLingo\Parser $parser
     * @return string
     */
    public function render(WikiLingo\Expression\Plugin &$plugin, &$body, &$renderer, &$parser)
    {
        if (!isset($plugin->parent->privateAttributes['titles'])) {
            $plugin->parent->privateAttributes['titles'] = array();
        }
        $parser->scripts->addScript(<<<JS
\$(".section:first").addClass("active");
JS
);
        $id = $plugin->id();
        //$plugin->attributes['data-anchor'] = $id;
        $plugin->parent->privateAttributes['titles'][$id] = $plugin->parameter('title');
        return parent::render($plugin, $body, $renderer, $parser);
    }
Exemplo n.º 5
0
    /**
     * @param WikiLingo\Expression\Plugin $plugin
     * @param string $body
     * @param WikiLingo\Renderer $renderer
     * @param WikiLingo\Parser $parser
     * @return string
     */
    public function render(WikiLingo\Expression\Plugin &$plugin, &$body = '', &$renderer, &$parser)
    {
        $id = $plugin->id();
        $parser->scripts->addScript(<<<JS
\$(function() {
\t \$( '#{$id}' ).accordion({
\t    header: 'h3'
\t });
});
JS
);
        $accordions = parent::render($plugin, $body, $renderer, $parser);
        return $accordions;
    }
Exemplo n.º 6
0
 /**
  * @param WikiLingo\Expression\Plugin $plugin
  * @param string $body
  * @param WikiLingo\Renderer $renderer
  * @param WikiLingo\Parser $parser
  * @return string
  */
 public function render(WikiLingo\Expression\Plugin &$plugin, &$body = '', &$renderer, &$parser)
 {
     $elementName = $parser->wysiwyg && !empty($this->wysiwygTagType) ? $this->wysiwygTagType : $this->htmlTagType;
     $element = $renderer->element($this->expressionType, $elementName);
     $element->classes[] = (!empty($this->attributes['class']) ? $this->attributes['class'] . ' ' : '') . $plugin->type;
     $element->attributes['id'] = $id = $plugin->id();
     $parser->plugins[] = $id;
     $style = $this->stylize($plugin->parametersRaw);
     if (!empty($style)) {
         $element->attributes['style'] = $style;
     }
     $this->attributeDefaults($plugin->attributes);
     foreach ($plugin->attributes as $attribute => $value) {
         $element->attributes[$attribute] = $value;
     }
     if ($parser->wysiwyg) {
         $parser->scripts->addScript("");
     }
     $element->detailedAttributes += $this->detailedAttributes;
     $element->detailedAttributes['data-plugin-type'] = $plugin->type;
     $element->detailedAttributes['data-draggable'] = $this->draggable ? 'true' : 'false';
     $element->detailedAttributes['data-plugin-parameters'] = empty($plugin->parametersRaw) ? null : urlencode(json_encode($plugin->parametersRaw));
     $element->detailedAttributes['data-in-line'] = $plugin->inLine ? 'true' : 'false';
     if ($plugin->inLine) {
         $element->detailedAttributes['contenteditable'] = 'false';
         if ($this->hasHtmlBody == false && !$this->bodyIsAutoGenerated) {
             $element->setInline();
         }
     }
     if (!empty($body)) {
         $element->staticChildren[] = $body;
     }
     $renderedPluginElement = $element->render();
     return $renderedPluginElement;
 }
Exemplo n.º 7
0
    /**
     * @param WikiLingo\Expression\Plugin $plugin
     * @param string $body
     * @param WikiLingo\Renderer $renderer
     * @param WikiLingo\Parser $parser
     * @return string
     */
    public function render(WikiLingo\Expression\Plugin &$plugin, &$body = '', &$renderer, &$parser)
    {
        $plugin->allowLineAfter = false;
        $id = $plugin->id();
        $anchors = array();
        if (!$parser->wysiwyg) {
            if (!empty($plugin->privateAttributes['titles'])) {
                //menu
                $ul = Type::Helper($renderer->helper('ul'));
                $ul->attributes['id'] = $id . '-menu';
                $i = 1;
                //anchors for sections
                foreach ($plugin->privateAttributes['titles'] as $sectionId => $title) {
                    $link = Type::Helper($renderer->helper('span'));
                    $link->attributes['href'] = $sectionId;
                    $link->attributes['onclick'] = <<<JS
\$.fn.fullpage.moveTo({$i});
return false;
JS;
                    $i++;
                    //$anchors[] = $a->attributes['data-index'] = $i++;
                    //$a->attributes['id'] = $sectionId . '-anchor';
                    $link->staticChildren[] = $title;
                    $li = Type::Helper($renderer->helper('li'));
                    $li->children[] = $link;
                    $ul->children[] = $li;
                }
                $body .= $ul->render();
                $anchorsJson = json_encode($anchors);
                Type::Scripts($parser->scripts)->addScriptLocation('~/bower_components/fullPage.js/jquery.fullPage.js')->addCssLocation('~/bower_components/fullPage.js/jquery.fullPage.css')->addScript(<<<JS
    \$(function() {
        \$.fn.fullpage({
            anchors: {$anchorsJson},
            easing: 'easeInOutQuad',
            scrollSpeed: 1100,
            menu: '#{$id}-menu'
        });
    });
JS
)->addCss(<<<CSS
#{$id}-menu {
    height: 40px;
    left: 0;
    margin: 0;
    padding: 0;
    position: fixed;
    top: 0;
    width: 100%;
    list-style: none outside none;
}

#{$id}-menu li {
    background-color: rgba(255, 255, 255, 0.5);
    color: #000000;
    border-radius: 10px;
    display: inline-block;
    margin: 10px;
}

#{$id}-menu li.active {
    background-color: rgba(0, 0, 0, 0.5);
    color: #FFFFFF;
}

#{$id}-menu li span {
    display: block;
    padding: 9px 18px;
    text-decoration: none;
    color: inherit;
    cursor: pointer;
}

CSS
);
            }
        }
        $tabs = parent::render($plugin, $body, $renderer, $parser);
        return $tabs;
    }