Skip to content

Commit 4b65016

Browse files
committed
Segregate fields for opengraph into different form dropdowns
1 parent 2fac558 commit 4b65016

File tree

3 files changed

+55
-44
lines changed

3 files changed

+55
-44
lines changed

administrator/components/com_content/src/Extension/ContentComponent.php

Lines changed: 36 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -219,40 +219,50 @@ public function getOpengraphFields(): array
219219
Factory::getLanguage()->load('com_content', JPATH_ADMINISTRATOR);
220220

221221
$fields = [
222-
// Core Content Fields
223-
'title' => Text::_('JGLOBAL_TITLE'),
224-
'articletext' => Text::_('COM_CONTENT_FIELD_ARTICLETEXT_LABEL'),
225-
'alias' => Text::_('JFIELD_ALIAS_LABEL'),
222+
'text-fields' => [
223+
'title' => Text::_('JGLOBAL_TITLE'),
224+
'articletext' => Text::_('COM_CONTENT_FIELD_ARTICLETEXT_LABEL'),
225+
'alias' => Text::_('JFIELD_ALIAS_LABEL'),
226+
'metadesc' => Text::_('JFIELD_META_DESCRIPTION_LABEL'),
227+
],
226228

227-
// Image Fields
228-
'image_intro' => Text::_('COM_CONTENT_FIELD_INTRO_LABEL'),
229-
'image_intro_alt' => Text::_('COM_CONTENT_FIELD_IMAGE_ALT_LABEL'),
230-
'image_fulltext' => Text::_('COM_CONTENT_FIELD_FULL_LABEL'),
231-
'image_fulltext_alt' => Text::_('COM_CONTENT_FIELD_IMAGE_ALT_LABEL'),
229+
'image-fields' => [
230+
'image_intro' => Text::_('COM_CONTENT_FIELD_INTRO_LABEL'),
231+
'image_fulltext' => Text::_('COM_CONTENT_FIELD_FULL_LABEL'),
232232

233-
// Meta Fields for OpenGraph
234-
'metadesc' => Text::_('JFIELD_META_DESCRIPTION_LABEL'),
235-
'metakey' => Text::_('JFIELD_META_KEYWORDS_LABEL'),
233+
],
236234

235+
'image-alt-fields' => [
236+
'image_intro_alt' => Text::_('COM_CONTENT_FIELD_INTRO_LABEL') . ' - ' . Text::_('COM_CONTENT_FIELD_IMAGE_ALT_LABEL'),
237+
'image_fulltext_alt' => Text::_('COM_CONTENT_FIELD_FULL_LABEL') . ' - ' . Text::_('COM_CONTENT_FIELD_IMAGE_ALT_LABEL'),
238+
],
237239

238-
// Date/Time Fields
239-
'created' => Text::_('COM_CONTENT_FIELD_CREATED_LABEL'),
240-
'modified' => Text::_('JGLOBAL_FIELD_MODIFIED_LABEL'),
240+
'meta-fields' => [
241+
'metadesc' => Text::_('JFIELD_META_DESCRIPTION_LABEL'),
242+
'metakey' => Text::_('JFIELD_META_KEYWORDS_LABEL'),
243+
],
244+
245+
246+
'locale-fields' => [
247+
'language' => Text::_('JFIELD_LANGUAGE_LABEL'),
248+
],
249+
250+
'author-fields' => [
251+
'created_by' => Text::_('COM_CONTENT_FIELD_CREATED_BY_LABEL'),
252+
'created_by_alias' => Text::_('COM_CONTENT_FIELD_CREATED_BY_ALIAS_LABEL'),
253+
'modified_by' => Text::_('JGLOBAL_FIELD_MODIFIED_BY_LABEL'),
254+
255+
],
256+
'date-fields' => [
257+
'created' => Text::_('COM_CONTENT_FIELD_CREATED_LABEL'),
258+
'modified' => Text::_('JGLOBAL_FIELD_MODIFIED_LABEL'),
259+
'publish_up' => Text::_('COM_CONTENT_FIELD_PUBLISH_UP_LABEL'),
260+
'publish_down' => Text::_('COM_CONTENT_FIELD_PUBLISH_DOWN_LABEL'),
261+
],
241262

242-
// Author Fields
243-
'created_by' => Text::_('COM_CONTENT_FIELD_CREATED_BY_LABEL'),
244-
'created_by_alias' => Text::_('COM_CONTENT_FIELD_CREATED_BY_ALIAS_LABEL'),
245263

246-
// Category & Organization
247-
'catid' => Text::_('JCATEGORY'),
248-
'tags' => Text::_('JTAG'),
249264

250-
// Localization
251-
'language' => Text::_('JFIELD_LANGUAGE_LABEL'),
252265

253-
// Publishing Fields
254-
'publish_up' => Text::_('COM_CONTENT_FIELD_PUBLISH_UP_LABEL'),
255-
'publish_down' => Text::_('COM_CONTENT_FIELD_PUBLISH_DOWN_LABEL'),
256266
];
257267

258268
return $fields;

plugins/system/opengraph/src/Field/OpengraphField.php

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
namespace Joomla\Plugin\System\Opengraph\Field;
1111

12-
use Joomla\CMS\Extension\Component;
12+
1313
use Joomla\CMS\Factory;
1414
use Joomla\CMS\Form\Field\ListField;
1515
use Joomla\CMS\HTML\HTMLHelper;
@@ -46,20 +46,24 @@ class OpengraphField extends ListField
4646
*/
4747
protected function getOptions()
4848
{
49+
$app = Factory::getApplication();
50+
$options = parent::getOptions();
51+
4952

50-
$app = Factory::getApplication();
51-
$options = parent::getOptions();
52-
//todo : make this more modular or flexible
5353
$component = $app->bootComponent('com_content');
54+
5455
if (!$component instanceof OpengraphServiceInterface) {
5556
return $options;
5657
}
5758

5859
$fields = $component->getOpengraphFields();
59-
foreach ($fields as $value => $text) {
60-
$options[] = HTMLHelper::_('select.option', $value, $text);
61-
}
60+
$fieldType = $this->getAttribute('field-type');
6261

62+
if (isset($fields[$fieldType])) {
63+
foreach ($fields[$fieldType] as $value => $text) {
64+
$options[] = HTMLHelper::_('select.option', $value, $text);
65+
}
66+
}
6367
return $options;
6468
}
6569
}

plugins/system/opengraph/src/forms/opengraph.xml

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,35 +9,32 @@
99
type="opengraph"
1010
label="PLG_SYSTEM_OPENGRAPH_TITLE_FIELD_LABEL"
1111
description="PLG_SYSTEM_OPENGRAPH_TITLE_FIELD_DESC"
12-
class="form-select">
12+
class="form-select"
13+
field-type="text-fields">
1314
<option value="">PLG_SYSTEM_OPENGRAPH_NO_FIELD_SELECTED</option>
1415
</field>
1516
<field name="og_description_field"
1617
type="opengraph"
1718
label="PLG_SYSTEM_OPENGRAPH_DESCRIPTION_FIELD_LABEL"
1819
description="PLG_SYSTEM_OPENGRAPH_DESCRIPTION_FIELD_DESC"
19-
class="form-select">
20+
class="form-select"
21+
field-type="text-fields">
2022
<option value="">PLG_SYSTEM_OPENGRAPH_NO_FIELD_SELECTED</option>
2123
</field>
2224
<field name="og_image_field"
2325
type="opengraph"
2426
label="PLG_SYSTEM_OPENGRAPH_IMAGE_FIELD_LABEL"
2527
description="PLG_SYSTEM_OPENGRAPH_IMAGE_FIELD_DESC"
26-
class="form-select">
28+
class="form-select"
29+
field-type="image-fields">
2730
<option value="">PLG_SYSTEM_OPENGRAPH_NO_FIELD_SELECTED</option>
2831
</field>
2932
<field name="og_image_alt_field"
3033
type="opengraph"
3134
label="PLG_SYSTEM_OPENGRAPH_IMAGE_ALT_FIELD_LABEL"
3235
description="PLG_SYSTEM_OPENGRAPH_IMAGE_ALT_FIELD_DESC"
33-
class="form-select">
34-
<option value="">PLG_SYSTEM_OPENGRAPH_NO_FIELD_SELECTED</option>
35-
</field>
36-
<field name="og_type_field"
37-
type="opengraph"
38-
label="PLG_SYSTEM_OPENGRAPH_TYPE_FIELD_LABEL"
39-
description="PLG_SYSTEM_OPENGRAPH_TYPE_FIELD_DESC"
40-
class="form-select">
36+
class="form-select"
37+
field-type="image-alt-fields">
4138
<option value="">PLG_SYSTEM_OPENGRAPH_NO_FIELD_SELECTED</option>
4239
</field>
4340
</fieldset>

0 commit comments

Comments
 (0)