Example #1
0
 function load_admin(\Wa72\HtmlPageDom\HtmlPageCrawler &$c)
 {
     //Append Button
     $c->filter('.mvc-admin-bar .top-bar')->append('<button class="btn btn-success" data-toggle="navigation-edit-' . $this->id . '">Edit Navigation: ' . $this->title . '</button>');
     //Append Edit Area
     $c->filter('.mvc-admin-bar .t-center .v-center')->append(Theme_Loader::get_instance()->render_file('modules/navigation/admin.twig', ['navitems' => $this->nav_items, 'page_identity' => $this->id]));
 }
Example #2
0
 function module_process(HtmlPageCrawler &$c)
 {
     $modules = $c->filter('module');
     foreach ($modules as $mod) {
         $mod_type = $mod->getAttribute('type');
         //Check if such a module exists
         $class = 'Theme_Module_' . ucfirst($mod_type);
         if (class_exists($class)) {
             //				echo $mod->getAttribute('id');
             $mod_ob = new $class($mod->getAttribute('id'), $this->page->id);
             /* @var $mod_ob Theme_Module_Interface */
             if (method_exists($mod_ob, 'set_module_xml')) {
                 $mod_ob->set_module_xml($c->filter('module[id="' . $mod->getAttribute('id') . '"]')->saveHTML());
             }
             $c->filter('module[id="' . $mod->getAttribute('id') . '"]')->replaceWith($mod_ob->render());
             if (method_exists($mod_ob, 'addCSS')) {
                 $c->filter('head')->append($mod_ob->addCSS());
             }
             if (method_exists($mod_ob, 'addJs')) {
                 $c->filter('body')->append($mod_ob->addJs());
             }
             if (G()->logged_in() && method_exists($mod_ob, 'load_admin')) {
                 $mod_ob->load_admin($c);
             }
         }
         //Add css for this module if not exists
         //Add js for this module if not exists
     }
 }
 /**
  * {@inheritdoc}
  */
 public function listAttribute($content)
 {
     $this->crawler->addContent($content);
     $this->links = array();
     $this->crawler->filter('a')->each(function (HtmlPageCrawler $anchor, $uri) {
         $href = $anchor->attr('href');
         // @todo deprecated method.
         $this->links[] = $this->urlGenerator->generateFromPath($href, array('absolute' => TRUE));
     });
     $this->crawler->remove();
     return implode(',', $this->links);
 }
Example #4
0
 /**
  *
  *
  * @param FilterResponseEvent $event
  */
 public function onRenderOembedAdminProductDetailEditBefore(FilterResponseEvent $event)
 {
     $request = $event->getRequest();
     $response = $event->getResponse();
     $parts_btn = $this->app->renderView('Oembed/Resource/template/admin/embed-button.twig', array());
     $parts_modal = $this->app->renderView('Oembed/Resource/template/admin/embed-modal.twig', array());
     $crawler = new HtmlPageCrawler($response->getContent());
     $crawler->filter('#admin_product_free_area')->before($parts_btn);
     $crawler->filter('body')->append($parts_modal);
     //        $html = $this->getHtml($crawler);
     $html = $crawler->html();
     $html = html_entity_decode($html, ENT_NOQUOTES, 'UTF-8');
     $response->setContent($html);
     $event->setResponse($response);
 }
 public function postIndex()
 {
     $imagem = Input::file('imagem');
     if (is_null($imagem)) {
         throw new Exception('Você não selecionou um arquivo');
     }
     $destinationPath = public_path() . DIRECTORY_SEPARATOR . 'uploads';
     $filename = date('YmdHis') . '_' . $imagem->getClientOriginalName();
     if ($imagem->move($destinationPath, $filename)) {
         //Load view laravel paths
         $paths = Config::get('view.paths');
         //Load file view
         $file = $paths[0] . DIRECTORY_SEPARATOR . Input::get('view') . '.blade.php';
         $html = file_get_contents($file);
         //Init crawler
         $crawler = new HtmlPageCrawler($html);
         //Set filter
         $filter = '#' . Input::get('id');
         //Edit node
         $crawler->filter($filter)->setAttribute('src', '/uploads/' . $filename);
         $newHTML = html_entity_decode($crawler->saveHTML());
         $newHTML = str_replace('%7B%7B', '{{', $newHTML);
         $newHTML = str_replace('%7D%7D', '}}', $newHTML);
         $newHTML = str_replace('%24', '$', $newHTML);
         $newHTML = str_replace('%20', ' ', $newHTML);
         $newHTML = str_replace('%7C', '|', $newHTML);
         //write file
         file_put_contents($file, $newHTML);
         return Redirect::back()->with('alert', 'Banner enviado com sucesso!');
     }
 }
 public function postIndex()
 {
     //Load view laravel paths
     $paths = Config::get('view.paths');
     //Load file view
     $file = $paths[0] . DIRECTORY_SEPARATOR . Input::get('view') . '.blade.php';
     $html = file_get_contents($file);
     //Init crawler
     $crawler = new HtmlPageCrawler($html);
     //Set filter
     $filter = '#' . Input::get('id');
     //Edit node
     $crawler->filter($filter)->setInnerHtml(Input::get('html'));
     $newHTML = html_entity_decode($crawler->saveHTML());
     $newHTML = str_replace('%7B%7B', '{{', $newHTML);
     $newHTML = str_replace('%7D%7D', '}}', $newHTML);
     $newHTML = str_replace('%24', '$', $newHTML);
     $newHTML = str_replace('%20', ' ', $newHTML);
     $newHTML = str_replace('%7C', '|', $newHTML);
     //write file
     file_put_contents($file, $newHTML);
 }
Example #7
0
 /**
  * Filter nodes by using a CSS selector
  *
  * @param string $selector CSS selector
  * @return HtmlPageCrawler
  */
 public function filter($selector)
 {
     //echo "\n" . CssSelector::toXPath($selector) . "\n";
     return $this->crawler->filter($selector);
 }
 /**
  * @param string $selector
  * @return static
  */
 public function find($selector)
 {
     return parent::filter($selector);
 }
 /**
  * @covers Wa72\HtmlPageDom\HtmlPageCrawler::wrap
  */
 public function testWrap()
 {
     $c = new HtmlPageCrawler('<div id="content"><h1>Title</h1></div>');
     $c->filter('h1')->wrap('<div class="innercontent">');
     $this->assertEquals('<div id="content"><div class="innercontent"><h1>Title</h1></div></div>', $c->saveHTML());
     $c = new HtmlPageCrawler('<div id="content"><h1>Title</h1></div>');
     $c->filter('h1')->wrap('<div class="ic">asdf<div class="a1"><div class="a2"></div></div></div></div>');
     $this->assertEquals('<div id="content"><div class="ic">asdf<div class="a1"><div class="a2"><h1>Title</h1></div></div></div></div>', $c->saveHTML());
     $c = new HtmlPageCrawler('<div id="content"><h1>Title</h1></div>');
     $c->filter('h1')->wrap('<div class="ic">asdf</div><div>jkl</div>');
     // wrap has more than 1 root element
     $this->assertEquals('<div id="content"><div class="ic">asdf<h1>Title</h1></div></div>', $c->saveHTML());
     // only first element is used
     // Test for wrapping multiple nodes
     $c = new HtmlPageCrawler('<div id="content"><p>p1</p><p>p2</p></div>');
     $c->filter('p')->wrap('<div class="p"></div>');
     $this->assertEquals('<div id="content"><div class="p"><p>p1</p></div><div class="p"><p>p2</p></div></div>', $c->saveHTML());
     $c = new HtmlPageCrawler('plain text node');
     $c->wrap('<div class="ic"></div>');
     $this->assertEquals('<div class="ic">plain text node</div>', $c->parents()->eq(0)->saveHTML());
     $c = HtmlPageCrawler::create('<div>');
     $m = HtmlPageCrawler::create('message 1')->appendTo($c);
     $m->wrap('<p>');
     $m = HtmlPageCrawler::create('message 2')->appendTo($c);
     $m->wrap('<p>');
     $this->assertEquals('<div><p>message 1</p><p>message 2</p></div>', $c->saveHTML());
 }
Example #10
0
}
$page = get($_GET['page'], 1);
$site = get($_GET['site']);
$show = get($_GET['show']);
$loader = new Twig_Loader_Filesystem(__DIR__);
$twig = new Twig_Environment($loader, array());
if ($site) {
    $_site = $sites[$site];
    $url_f = $_site['page'];
    if ($show) {
        if (startsWith($show, 'http')) {
            $url = $show;
        } else {
            $url = $url_f(1);
            $url_array = parse_url($url);
            $url = $url_array['scheme'] . '://' . $url_array['host'] . $show;
            $content = new HtmlPageCrawler(file_get_contents($url));
            $content = $content->filter($_site['show_filter']);
            echo $twig->render('show.html', compact('site', 'content', 'url'));
        }
    } else {
        $url = $url_f($page);
        $content = new HtmlPageCrawler(file_get_contents($url));
        $list = $content->filter($_site['index_filter'])->each(function ($node) {
            return $node;
        });
        echo $twig->render('list.html', compact('list', 'page', 'site', 'url'));
    }
} else {
    echo $twig->render('sites.html', compact('sites'));
}