Fixes
This commit is contained in:
@@ -8,12 +8,21 @@ use App\Model\Database\Entity\Attributes\TUpdatedAt;
|
||||
use App\Model\Exception\Logic\InvalidArgumentException;
|
||||
use App\Model\Security\Identity;
|
||||
use App\Model\Utils\DateTime;
|
||||
use App\Model\Utils\Strings;
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
|
||||
/**
|
||||
* @ORM\Entity(repositoryClass="App\Model\Database\Repository\UserRepository")
|
||||
* @ORM\Table(name="`user`")
|
||||
* @ORM\HasLifecycleCallbacks
|
||||
*
|
||||
* @property int $id
|
||||
* @property String $name
|
||||
* @property String $surname
|
||||
* @property String $email
|
||||
* @property String $password
|
||||
* @property String $role
|
||||
* @property int $state
|
||||
*/
|
||||
class User extends AbstractEntity
|
||||
{
|
||||
|
||||
@@ -22,79 +22,79 @@ final class HomePresenter extends BaseFrontPresenter
|
||||
{
|
||||
|
||||
|
||||
/** @inject @var \App\Model\Database\EntityManager */
|
||||
public $em;
|
||||
/** @inject @var EntityManager */
|
||||
public EntityManager $em;
|
||||
/** @inject */
|
||||
public VisualPaginatorFactory $visualPaginatorFactory;
|
||||
/** @inject */
|
||||
public TermFacade $termFacade;
|
||||
|
||||
|
||||
private $translations;
|
||||
private $dictionaries;
|
||||
private $drsSelect;
|
||||
private $slugs;
|
||||
public $translation;
|
||||
private $translations;
|
||||
private $dictionaries;
|
||||
private $drsSelect;
|
||||
private $slugs;
|
||||
public $translation;
|
||||
|
||||
/** @persistent */
|
||||
public $term;
|
||||
/** @persistent */
|
||||
public $slug;
|
||||
/** @persistent */
|
||||
public $term;
|
||||
|
||||
protected function startup()
|
||||
{
|
||||
$trs = $this->em->getRepository(Translation::class)->findBy([],['id' => 'ASC','direction'=>'ASC']);
|
||||
$drs = $this->em->getRepository(Dictionary::class)->findPairs('id','name');
|
||||
$select = [];
|
||||
foreach ($trs as $t) {
|
||||
$lang1 = $t->getLangName1();
|
||||
$lang2 = $t->getLangName2();
|
||||
/** @persistent */
|
||||
public $slug;
|
||||
|
||||
$lang = mb_substr($lang1,0,-1);
|
||||
$lang .= "o-".$lang2;
|
||||
$slug = Strings::webalize($lang);
|
||||
$select[$drs[$t->getDictionary()->getId()]][$t->getId()] = $lang;
|
||||
$translations[$t->getId()]["slug"] = $slug;
|
||||
$translations[$t->getId()]["lang"] = $lang;
|
||||
$translations[$t->getId()]["t"] = $t;
|
||||
$slugs[$slug] = $t;
|
||||
protected function startup()
|
||||
{
|
||||
$trs = $this->em->getRepository(Translation::class)->findBy([], ['id' => 'ASC', 'direction' => 'ASC']);
|
||||
$drs = $this->em->getRepository(Dictionary::class)->findPairs('id', 'name');
|
||||
$select = [];
|
||||
foreach ($trs as $t) {
|
||||
$lang1 = $t->getLangName1();
|
||||
$lang2 = $t->getLangName2();
|
||||
|
||||
$lang = mb_substr($lang1, 0, -1);
|
||||
$lang .= "o-" . $lang2;
|
||||
$slug = Strings::webalize($lang);
|
||||
$select[$drs[$t->getDictionary()->getId()]][$t->getId()] = $lang;
|
||||
$translations[$t->getId()]["slug"] = $slug;
|
||||
$translations[$t->getId()]["lang"] = $lang;
|
||||
$translations[$t->getId()]["t"] = $t;
|
||||
$slugs[$slug] = $t;
|
||||
}
|
||||
$this->translations = $translations;
|
||||
$this->dictionaries = $drs;
|
||||
$this->drsSelect = $select;
|
||||
$this->slugs = $slugs;
|
||||
|
||||
parent::startup();
|
||||
}
|
||||
$this->translations = $translations;
|
||||
$this->dictionaries = $drs;
|
||||
$this->drsSelect = $select;
|
||||
$this->slugs = $slugs;
|
||||
|
||||
parent::startup();
|
||||
}
|
||||
|
||||
protected function doSearch($query,$translation,$term,$clen = null,$paginate = true)
|
||||
{
|
||||
protected function doSearch($query, $translation, $term, $clen = null, $paginate = true)
|
||||
{
|
||||
$t = $this->em->getTranslationRepository()->find($translation);
|
||||
|
||||
if ($term) $this->term = $term;
|
||||
if ($translation) $this->translation = $translation;
|
||||
$this->slug = $this->translations[$translation]["slug"];
|
||||
if ($translation) $this->translation = $translation;
|
||||
$this->slug = $this->translations[$translation]["slug"];
|
||||
|
||||
$this->termFacade->setDirection(1);
|
||||
|
||||
if ($paginate) {
|
||||
if ($paginate) {
|
||||
$this["paginator"]->setItemCount(500);
|
||||
$offset = $this["paginator"]->getOffset();
|
||||
$itemsPerPage = $this['paginator']->getItemsPerPage();
|
||||
}
|
||||
$q = $this->termFacade->findByString($term,$t->dictionary,$clen);
|
||||
$itemsPerPage = $this['paginator']->getItemsPerPage();
|
||||
}
|
||||
$q = $this->termFacade->findByString($term, $t->dictionary, $clen);
|
||||
$q->setMaxResults(500)->setFirstResult($offset)->getMaxResults($itemsPerPage);
|
||||
|
||||
$this->template->translation = $t;
|
||||
$this->template->translation = $t;
|
||||
|
||||
return $q->getResult();
|
||||
}
|
||||
return $q->getResult();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return AlesWita\Components\VisualPaginator
|
||||
*/
|
||||
protected function createComponentPaginator(): VisualPaginator
|
||||
protected function createComponentPaginator(): VisualPaginator
|
||||
{
|
||||
$paginator = $this->visualPaginatorFactory->create();
|
||||
|
||||
@@ -107,89 +107,92 @@ final class HomePresenter extends BaseFrontPresenter
|
||||
return $paginator;
|
||||
}
|
||||
|
||||
protected function createComponentSearchForm()
|
||||
{
|
||||
$form = new UI\Form;
|
||||
$form->addText('string', 'Výraz')
|
||||
->setRequired('Zadajte výray');
|
||||
$form->addSelect('translation', 'Preklad', $this->drsSelect)
|
||||
->setDefaultValue(1)
|
||||
->setRequired('Vyberte slovnik');
|
||||
$form->addText('clen','Clen',5);
|
||||
$form->addSubmit('search', 'Vyhaľadaj');
|
||||
return $form;
|
||||
}
|
||||
protected function createComponentSearchForm()
|
||||
{
|
||||
$form = new UI\Form;
|
||||
$form->addText('string', 'Výraz')
|
||||
->setRequired('Zadajte výray');
|
||||
$form->addSelect('translation', 'Preklad', $this->drsSelect)
|
||||
->setDefaultValue(1)
|
||||
->setRequired('Vyberte slovnik');
|
||||
$form->addText('clen', 'Clen', 5);
|
||||
$form->addSubmit('search', 'Vyhaľadaj');
|
||||
$form->onSuccess[] = array($this, 'searchFormSucceeded');
|
||||
return $form;
|
||||
}
|
||||
|
||||
public function searchFormSucceeded(UI\Form $form,$values)
|
||||
{
|
||||
$translation = $values->translation;
|
||||
$clen = $values->clen;
|
||||
$term = $values->string;
|
||||
public function searchFormSucceeded(UI\Form $form, $values)
|
||||
{
|
||||
$translation = $values->translation;
|
||||
$clen = $values->clen;
|
||||
$term = $values->string;
|
||||
|
||||
$result = $this->doSearch('TermsQuery',$translation,$term,$clen);
|
||||
$result = $this->doSearch('TermsQuery', $translation, $term, $clen);
|
||||
$this->term = $term;
|
||||
dump($result);
|
||||
$this->template->result = $result;
|
||||
}
|
||||
}
|
||||
|
||||
public function searchFormSucceededIpa(UI\Form $form,$values)
|
||||
{
|
||||
$translation = $values->translation;
|
||||
$term = $values->string;
|
||||
$clen = $values->clen;
|
||||
public function searchFormSucceededIpa(UI\Form $form, $values)
|
||||
{
|
||||
$translation = $values->translation;
|
||||
$term = $values->string;
|
||||
$clen = $values->clen;
|
||||
|
||||
$result = $this->doSearch('TermsFullQuery',$translation,$term,$clen);
|
||||
$result = $this->doSearch('TermsFullQuery', $translation, $term, $clen);
|
||||
|
||||
$this->template->result = $result;
|
||||
}
|
||||
$this->template->result = $result;
|
||||
}
|
||||
|
||||
public function searchFormSucceededInteractive(UI\Form $form,$values)
|
||||
{
|
||||
$term = $values->string;
|
||||
$translation = $values->translation;
|
||||
public function searchFormSucceededInteractive(UI\Form $form, $values)
|
||||
{
|
||||
$term = $values->string;
|
||||
$translation = $values->translation;
|
||||
|
||||
$result = $this->doSearch('TermsFullQuery',$translation,$term,null);
|
||||
$result = $this->doSearch('TermsFullQuery', $translation, $term, null);
|
||||
|
||||
$this->template->result = $result;
|
||||
}
|
||||
$this->template->result = $result;
|
||||
}
|
||||
|
||||
public function actionPlay($id = null)
|
||||
{
|
||||
$pron = $this->em->getPronunciationRepository()->find(['id'=>$id]);
|
||||
$basepath = $this->getHttpRequest()->url->basePath . "/media";
|
||||
$oggResp = new OggResponse($id,$pron->filename);
|
||||
return $this->sendResponse($oggResp);
|
||||
public function actionPlay($id = null)
|
||||
{
|
||||
$pron = $this->em->getPronunciationRepository()->find(['id' => $id]);
|
||||
$basepath = $this->getHttpRequest()->url->basePath . "/media";
|
||||
$oggResp = new OggResponse($id, $pron->filename);
|
||||
return $this->sendResponse($oggResp);
|
||||
}
|
||||
|
||||
}
|
||||
public function beforeRender()
|
||||
{
|
||||
$dicttypes = $this->em->getDictTypeRepository()->findAssoc([], 'id');
|
||||
$this->template->dicttypes = $dicttypes;
|
||||
$this->template->dictionaries = $this->dictionaries;
|
||||
$this->template->translations = $this->translations;
|
||||
// $this->template->paginator = $this->paginator;
|
||||
}
|
||||
|
||||
public function beforeRender()
|
||||
{
|
||||
$dicttypes = $this->em->getDictTypeRepository()->findAssoc([],'id');
|
||||
$this->template->dicttypes = $dicttypes;
|
||||
$this->template->dictionaries = $this->dictionaries;
|
||||
$this->template->translations = $this->translations;
|
||||
// $this->template->paginator = $this->paginator;
|
||||
}
|
||||
|
||||
public function actionDefault()
|
||||
{
|
||||
/*
|
||||
public function actionDefault()
|
||||
{
|
||||
if ($this->getRequest()->isMethod('GET') && $this->term) {
|
||||
$this['searchForm']['string']->setValue($this->term);
|
||||
$t = $this->slugs[$this->slug];
|
||||
$result = $this->doSearch('TermsQuery',$t->id,$this->term);
|
||||
if ($result) $this->template->result = $result;
|
||||
} else {
|
||||
//dumpe($this);
|
||||
$this->term = $this['searchForm']['string']->getValue();
|
||||
}
|
||||
*/
|
||||
$this['searchForm']->onSuccess[] = array($this, 'searchFormSucceeded');
|
||||
}
|
||||
}
|
||||
|
||||
public function actionSelect($slug,$term = null)
|
||||
{
|
||||
public function actionSelect($slug, $term = null)
|
||||
{
|
||||
$this['searchForm']->onSuccess[] = array($this, 'searchFormSucceededIpa');
|
||||
if ($this->getRequest()->isMethod('GET')) {
|
||||
if (isset($this->slugs[$slug])) {
|
||||
$t = $this->slugs[$slug];
|
||||
$this['searchForm']['translation']->setValue($t->id);
|
||||
$translation = $t;
|
||||
$t = $this->slugs[$slug];
|
||||
$this['searchForm']['translation']->setValue($t->id);
|
||||
$translation = $t;
|
||||
}
|
||||
} else {
|
||||
|
||||
@@ -197,90 +200,85 @@ final class HomePresenter extends BaseFrontPresenter
|
||||
dump($id);
|
||||
if (isset($this->translations[$id])) {
|
||||
$t = $this->translations[$id];
|
||||
$this->redirect('Front:Home:select',$t["slug"],$this['searchForm']['string']->value);
|
||||
$this->redirect('Front:Home:select', $t["slug"], $this['searchForm']['string']->value);
|
||||
}
|
||||
|
||||
}
|
||||
if ($term) {
|
||||
$query = new TermsFullQuery($translation->dictionary,$term,$translation->direction);
|
||||
$query = new TermsFullQuery($translation->dictionary, $term, $translation->direction);
|
||||
$result = $this->repoTerms->fetch($query);
|
||||
|
||||
$this->template->result = $result;
|
||||
$this->template->translation = $translation;
|
||||
}
|
||||
$this->setView('ipa');
|
||||
}
|
||||
}
|
||||
|
||||
public function handleGetInfo($id)
|
||||
{
|
||||
public function handleGetInfo($id)
|
||||
{
|
||||
$term = $this->repoTerms->find($id);
|
||||
$termFlags = $this->repoTermFlags->findAssoc([],'id');
|
||||
$termFlags = $this->repoTermFlags->findAssoc([], 'id');
|
||||
|
||||
$dictionary = $term->dictionary;
|
||||
|
||||
$query = new TermsFullQuery($dictionary,$term->string1,1,false);
|
||||
$query = new TermsFullQuery($dictionary, $term->string1, 1, false);
|
||||
$result = $this->repoTerms->fetch($query);
|
||||
|
||||
$this->template->result = $result;
|
||||
$this->template->termFlags = $termFlags;
|
||||
|
||||
$this->setView('info');
|
||||
}
|
||||
|
||||
public function renderDefault()
|
||||
{
|
||||
}
|
||||
|
||||
public function actionIpa()
|
||||
{
|
||||
if ($this->getRequest()->isMethod('GET')) {
|
||||
if ($this->term) {
|
||||
$this['searchForm']['string']->setValue($this->term);
|
||||
$result = $this->doSearch('TermsFullQuery',$this->slugs[$this->slug]->id,$this->term);
|
||||
if ($result) $this->template->result = $result;
|
||||
}
|
||||
}
|
||||
|
||||
$this['searchForm']->onSuccess[] = array($this, 'searchFormSucceededIpa');
|
||||
}
|
||||
|
||||
public function actionInteractive()
|
||||
{
|
||||
if ($this->getRequest()->isMethod('GET')) {
|
||||
if ($this->term) {
|
||||
$this['searchForm']['string']->setValue($this->term);
|
||||
$result = $this->doSearch('TermsFullQuery',$this->slugs[$this->slug]->id,$this->term);
|
||||
if ($result) $this->template->result = $result;
|
||||
}
|
||||
public function renderDefault()
|
||||
{
|
||||
}
|
||||
|
||||
$this['searchForm']->onSuccess[] = array($this, 'searchFormSucceededInteractive');
|
||||
}
|
||||
public function actionIpa()
|
||||
{
|
||||
if ($this->getRequest()->isMethod('GET')) {
|
||||
if ($this->term) {
|
||||
$this['searchForm']['string']->setValue($this->term);
|
||||
$result = $this->doSearch('TermsFullQuery', $this->slugs[$this->slug]->id, $this->term);
|
||||
if ($result) $this->template->result = $result;
|
||||
}
|
||||
}
|
||||
|
||||
public function renderAutocomplete($whichData, $typedText = '',$translation = 1)
|
||||
{
|
||||
$translation = $this->repoTranslations->find($translation);
|
||||
$this['searchForm']->onSuccess[] = array($this, 'searchFormSucceededIpa');
|
||||
}
|
||||
|
||||
$query = new TermsQuickQuery($translation->dictionary,$typedText,$translation->direction);
|
||||
$result = $this->repoTerms->fetch($query);
|
||||
public function actionInteractive()
|
||||
{
|
||||
if ($this->getRequest()->isMethod('GET')) {
|
||||
if ($this->term) {
|
||||
$this['searchForm']['string']->setValue($this->term);
|
||||
$result = $this->doSearch('TermsFullQuery', $this->slugs[$this->slug]->id, $this->term);
|
||||
if ($result) $this->template->result = $result;
|
||||
}
|
||||
}
|
||||
|
||||
$map = [];
|
||||
foreach ($result as $str) {
|
||||
$map[] = $str["string1"];
|
||||
}
|
||||
$this['searchForm']->onSuccess[] = array($this, 'searchFormSucceededInteractive');
|
||||
}
|
||||
|
||||
return $this->sendResponse(new JsonResponse($map));
|
||||
}
|
||||
public function renderAutocomplete($whichData, $typedText = '', $translation = 1)
|
||||
{
|
||||
$translation = $this->repoTranslations->find($translation);
|
||||
|
||||
public function renderIpa()
|
||||
{
|
||||
$query = new TermsQuickQuery($translation->dictionary, $typedText, $translation->direction);
|
||||
$result = $this->repoTerms->fetch($query);
|
||||
|
||||
}
|
||||
$map = [];
|
||||
foreach ($result as $str) {
|
||||
$map[] = $str["string1"];
|
||||
}
|
||||
|
||||
public function renderMerge()
|
||||
{
|
||||
return $this->sendResponse(new JsonResponse($map));
|
||||
}
|
||||
|
||||
}
|
||||
public function renderIpa()
|
||||
{
|
||||
}
|
||||
|
||||
public function renderMerge()
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
0
app/modules/Front/Home/SearchPresenter.php
Normal file
0
app/modules/Front/Home/SearchPresenter.php
Normal file
Reference in New Issue
Block a user