From e68b68110b84a75f33ce582f21827dafb5619180 Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Sun, 27 Sep 2020 15:22:43 -0400 Subject: [PATCH] Create new popular server languages widget - Rename popular profile widget class and template --- src/classes/Controllers/Web/Directory.php | 4 +- ...guages.php => PopularProfileLanguages.php} | 4 +- .../Views/Widget/PopularServerLanguages.php | 44 +++++++++++++++++++ ...es.phtml => popularprofilelanguages.phtml} | 0 .../widget/popularserverlanguages.phtml | 13 ++++++ 5 files changed, 61 insertions(+), 4 deletions(-) rename src/classes/Views/Widget/{PopularLanguages.php => PopularProfileLanguages.php} (87%) create mode 100644 src/classes/Views/Widget/PopularServerLanguages.php rename src/templates/widget/{popularlanguages.phtml => popularprofilelanguages.phtml} (100%) create mode 100644 src/templates/widget/popularserverlanguages.phtml diff --git a/src/classes/Controllers/Web/Directory.php b/src/classes/Controllers/Web/Directory.php index f56ed20..f4aaaec 100644 --- a/src/classes/Controllers/Web/Directory.php +++ b/src/classes/Controllers/Web/Directory.php @@ -4,7 +4,7 @@ namespace Friendica\Directory\Controllers\Web; use Friendica\Directory\Content\Pager; use Friendica\Directory\Views\Widget\PopularCountries; -use Friendica\Directory\Views\Widget\PopularLanguages; +use Friendica\Directory\Views\Widget\PopularProfileLanguages; use Friendica\Directory\Views\Widget\PopularTags; use Slim\Http\Request; use Slim\Http\Response; @@ -54,7 +54,7 @@ class Directory extends BaseController { $popularTags = new PopularTags($this->atlas, $this->renderer); $popularCountries = new PopularCountries($this->atlas, $this->renderer); - $popularLanguages = new PopularLanguages($this->atlas, $this->renderer); + $popularLanguages = new PopularProfileLanguages($this->atlas, $this->renderer); $pager = new Pager($this->l10n, $request, 20); diff --git a/src/classes/Views/Widget/PopularLanguages.php b/src/classes/Views/Widget/PopularProfileLanguages.php similarity index 87% rename from src/classes/Views/Widget/PopularLanguages.php rename to src/classes/Views/Widget/PopularProfileLanguages.php index f82e2f4..3b3ea92 100644 --- a/src/classes/Views/Widget/PopularLanguages.php +++ b/src/classes/Views/Widget/PopularProfileLanguages.php @@ -5,7 +5,7 @@ namespace Friendica\Directory\Views\Widget; /** * @author Hypolite Petovan */ -class PopularLanguages +class PopularProfileLanguages { /** * @var \Atlas\Pdo\Connection @@ -36,6 +36,6 @@ class PopularLanguages 'languages' => $languages ]; - return $this->renderer->fetch('widget/popularlanguages.phtml', $vars); + return $this->renderer->fetch('widget/popularprofilelanguages.phtml', $vars); } } diff --git a/src/classes/Views/Widget/PopularServerLanguages.php b/src/classes/Views/Widget/PopularServerLanguages.php new file mode 100644 index 0000000..50dcb9e --- /dev/null +++ b/src/classes/Views/Widget/PopularServerLanguages.php @@ -0,0 +1,44 @@ + + */ +class PopularServerLanguages +{ + /** + * @var \Atlas\Pdo\Connection + */ + private $connection; + /** + * @var \Friendica\Directory\Views\PhpRenderer + */ + private $renderer; + + public function __construct(\Atlas\Pdo\Connection $connection, \Friendica\Directory\Views\PhpRenderer $renderer) + { + $this->connection = $connection; + $this->renderer = $renderer; + } + + public function render(): string + { + $stmt = 'SELECT LEFT(`language`, 2) AS `language`, COUNT(*) AS `total` + FROM `server` + WHERE `reg_policy` != "REGISTER_CLOSED" + AND `available` + AND NOT `hidden` + AND `language` IS NOT NULL + GROUP BY LEFT(`language`, 2) + ORDER BY `total` DESC + LIMIT 10'; + $languages = $this->connection->fetchAll($stmt); + + $vars = [ + 'languages' => $languages + ]; + + return $this->renderer->fetch('widget/popularserverlanguages.phtml', $vars); + } +} diff --git a/src/templates/widget/popularlanguages.phtml b/src/templates/widget/popularprofilelanguages.phtml similarity index 100% rename from src/templates/widget/popularlanguages.phtml rename to src/templates/widget/popularprofilelanguages.phtml diff --git a/src/templates/widget/popularserverlanguages.phtml b/src/templates/widget/popularserverlanguages.phtml new file mode 100644 index 0000000..84d5d45 --- /dev/null +++ b/src/templates/widget/popularserverlanguages.phtml @@ -0,0 +1,13 @@ +
+

__('Filter by language')?>

+ +