From 4d63aa9034fb40565c2cad88bfa9f67a617d9a99 Mon Sep 17 00:00:00 2001 From: Robbie Antenesse Date: Thu, 7 May 2020 23:09:19 -0600 Subject: [PATCH] Display related words in public dictionary render --- src/js/view/render.js | 10 ++++++++-- src/php/api/PublicDictionary.php | 12 ++++++++++-- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/js/view/render.js b/src/js/view/render.js index 9c59beb..df9d0ef 100644 --- a/src/js/view/render.js +++ b/src/js/view/render.js @@ -184,6 +184,8 @@ export function renderWords() { details: originalWord.details, etymology: typeof originalWord.etymology === 'undefined' || originalWord.etymology.length < 1 ? null : originalWord.etymology.join(', '), + related: typeof originalWord.related === 'undefined' || originalWord.related.length < 1 ? null + : originalWord.related.join(', '), wordId: originalWord.wordId, }); @@ -204,11 +206,15 @@ export function renderWords() {
${md(word.details)}
- ${word.etymology === null ? '' : `
-
Etymology (Root Word${originalWord.etymology.length !== 1 ? 's' : ''})
+ ${word.etymology === null && word.related === null ? '' : `
`} + ${word.etymology === null ? '' : `
Etymology (Root Word${originalWord.etymology.length !== 1 ? 's' : ''})
${md(word.etymology).replace(/<\/?p>/g, '')}
`} + ${word.related === null ? '' : `
Related Word${originalWord.related.length !== 1 ? 's' : ''}
+ `} `; }); diff --git a/src/php/api/PublicDictionary.php b/src/php/api/PublicDictionary.php index 8d218dc..a734118 100644 --- a/src/php/api/PublicDictionary.php +++ b/src/php/api/PublicDictionary.php @@ -99,6 +99,14 @@ class PublicDictionary { }, explode(',', $row['etymology'])); } } + + if (!is_null($row['related'])) { + if (strlen($row['related']) > 0) { + $word['related'] = array_map(function ($root) use($dictionary) { + return $this->getWordReferenceHTML(strip_tags($root), $dictionary); + }, explode(',', $row['related'])); + } + } return $word; }, $this->sortWords($words)); @@ -129,8 +137,8 @@ class PublicDictionary { private function getWordsAsEntered() { if (!isset($this->original_words)) { - $query = "SELECT words.*, words_advanced.etymology FROM words -LEFT JOIN words_advanced ON words_advanced.dictionary = words.dictionary AND words_advanced.word_id = words.word_id + $query = "SELECT words.*, wa.etymology, wa.related FROM words +LEFT JOIN words_advanced wa ON wa.dictionary = words.dictionary AND wa.word_id = words.word_id JOIN dictionaries ON dictionaries.id = words.dictionary WHERE words.dictionary=? AND is_public=1"; $this->original_words = $this->db->query($query, array($this->details['externalID']))->fetchAll();