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!');
     }
 }
Example #2
0
 public function __construct(\Wa72\HtmlPageDom\HtmlPageCrawler &$c, $key = false)
 {
     $this->node = $c;
     if ($key === false) {
         $form = $c->saveHTML();
         $key = md5($form . '--' . session_id());
     }
     $this->key = $key;
     $this->secure_input($key);
     $this->process_post();
 }
 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);
 }
 /**
  * @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());
 }