user->isLoggedIn()) { $this->redirect('Sign:in'); } } public function createComponentAddForm() { $form = new UI\Form; $form->addText('sentence', 'Veta:') ->setAttribute('placeholder','Sem napíšte vetu.'); $form->addText('url', 'sme.sk URL:') ->setAttribute('placeholder','http://www.sme.sk/c/7054947/vydajte-ujgurov-su-to-teroristi-odkazuje-slovensku-cina.html'); $form->addTextArea('paragraph', 'Text:') ->setAttribute('placeholder', 'Sem napíšte vety, ktoré chcete importovať do systému.'); $form->addSubmit('send', 'Parsovať/Vložiť'); // call method signInFormSucceeded() on success $form->onSuccess[] = $this->addFormSucceeded; return $form; } public function addFormSucceeded($form) { $values = $form->getValues(); if ($values->sentence) { if ($this->insertSentence($values->sentence)) $this->flashMessage("Veta '$values->sentence' bola uložená.",'alert alert-success'); } if ($values->url) { $this->parseArticle($values->url); $this->flashMessage("Článok '$values->url' bol spracovaný.",'alert alert-success'); } if ($values->paragraph) { $success = TRUE; foreach (explode('.',$values->paragraph) as $sentence) { if (!$this->insertSentence($sentence)) { $success = FALSE; } } if ($success) { $this->flashMessage('Vety z paragrafu boli spracované.','alert alert-success'); } } $this->redirect('this'); } private function insertSentence($sentence) { $sentence = trim($sentence,'  "\'„“.'); $word_count = count(explode(' ',$sentence)); $exists = $this->db->table('sentences')->where(['sentence' => $sentence])->count('*'); if ($word_count > 5 && !$exists) { $result = $this->db->table('sentences')->insert(['sentence' => $sentence,'word_count' => $word_count]); if ($result) { $this->flashMessage("Veta '$sentence' nebola spracovaná", 'alert alert-danger'); return FALSE; } } else { $this->flashMessage("Veta '$sentence' obsahuje nedostatočný počet slov alebo v systéme už existuje.",'alert alert-danger'); return FALSE; } return TRUE; } private function parseArticle($url) { $dom = HtmlDomParser::file_get_html( $url ); $text = $dom->find('#article-box #itext_content',0)->plaintext; $sentences = preg_split('/[.?!]/',$text); foreach ($sentences as $sentence) { $this->insertSentence($sentence); } } }