Skip to content

Commit 8655eec

Browse files
committed
Add language support.
1 parent 761c164 commit 8655eec

File tree

2 files changed

+40
-0
lines changed

2 files changed

+40
-0
lines changed

src/Field/Language.php

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<?php
2+
3+
namespace ProcessWire\GraphQL\Field;
4+
5+
use GraphQL\Type\Definition\Type;
6+
use ProcessWire\GraphQL\Utils;
7+
use ProcessWire\Language as PWLanguage;
8+
9+
class Language {
10+
public static function field()
11+
{
12+
return [
13+
'type' => Type::string(),
14+
'name' => 'language',
15+
'description' => "Set the language of the content you are requesting. __Note__: Place this field on top of other fields whose language you want to set.",
16+
'args' => [
17+
'name' => Type::nonNull(Type::string())
18+
],
19+
'resolve' => function ($pages, array $args)
20+
{
21+
$languageName = Utils::sanitizer()->pageName($args['name']);
22+
$language = Utils::languages()->get($languageName);
23+
if ($language instanceof PWLanguage) {
24+
Utils::user()->language = $language;
25+
return $language->name;
26+
} else {
27+
return 'Unknown language!';
28+
}
29+
}
30+
];
31+
}
32+
}

src/Schema.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
use GraphQL\Type\Definition\ObjectType;
44
use GraphQL\Type\Schema as GraphQLSchema;
55

6+
use ProcessWire\Languages;
67
use ProcessWire\GraphQL\Utils;
78
use ProcessWire\GraphQL\Cache;
89
use ProcessWire\GraphQL\Permissions;
@@ -14,6 +15,7 @@
1415
use ProcessWire\GraphQL\Field\Mutation\CreatePage;
1516
use ProcessWire\GraphQL\Field\Mutation\TrashPage;
1617
use ProcessWire\GraphQL\Field\Mutation\UpdatePage;
18+
use ProcessWire\GraphQL\Field\Language;
1719

1820
class Schema
1921
{
@@ -81,6 +83,12 @@ public static function buildQuery()
8183
$queryFields[] = DbQuery::field();
8284
}
8385

86+
// Language
87+
$languages = Utils::languages();
88+
if ($languages && $languages instanceof Languages) {
89+
$queryFields[] = Language::field();
90+
}
91+
8492
// let the user modify the query operation
8593
$queryFields = Utils::module()->getQueryFields($queryFields);
8694

0 commit comments

Comments
 (0)