Craft\RelabelPlugin::bindEvent PHP Method

bindEvent() protected method

protected bindEvent ( )
    protected function bindEvent()
    {
        craft()->on('fields.saveFieldLayout', function (Event $e) {
            $layout = $e->params['layout'];
            $relabel = craft()->request->getPost('relabel');
            if ($relabel) {
                $transaction = craft()->db->getCurrentTransaction() ? false : craft()->db->beginTransaction();
                try {
                    foreach ($relabel as $fieldId => $labelInfo) {
                        $label = new RelabelModel();
                        $label->fieldId = $fieldId;
                        $label->fieldLayoutId = $layout->id;
                        if (array_key_exists('name', $labelInfo)) {
                            $label->name = $labelInfo['name'];
                        }
                        if (array_key_exists('instructions', $labelInfo)) {
                            $label->instructions = $labelInfo['instructions'];
                        }
                        craft()->relabel->saveLabel($label);
                    }
                    if ($transaction) {
                        $transaction->commit();
                    }
                } catch (\Exception $e) {
                    if ($transaction) {
                        $transaction->rollback();
                    }
                    throw $e;
                }
                // Make sure these labels don't get saved more than once
                unset($_POST['relabel']);
            }
        });
    }