So I add ClientConfig settings on package install using a resolver with elements like this:
$analyticsSettings = $modx->getObject('cgGroup', array('key' => 'analyticsSettings'));
if (!$analyticsSettings) {
$analyticsSettings = $modx->newObject('cgGroup');
$analyticsSettings->fromArray(array(
'label' => 'Google Analytics',
'sortorder' => '20',
'description' => 'Settings for Google Analytics SEO'
));
$analyticsSettings->save();
}
$analytics_code = $modx->getObject('cgSetting', array('key' => 'analytics_code'));
if (!$analytics_code) {
$analytics_code = $modx->newObject('cgSetting');
$analytics_code->fromArray(array(
'key' => 'cosmos.analytics_code',
'label' => 'Analytics code',
'xtype' => 'textfield',
'description' => 'Fill in your tracking code (like: UA-10989210-17)',
'is_required' => '0',
'sortorder' => '1',
'value' => '',
'group' => $analyticsSettings->get("id")
));
$analytics_code->save();
}
It work on first install, but when somebody updates the package the same values get installed again...
How can I check if a setting already exists and NOT update or create a duplicate of it?