View file MMO-Hide-2.3.4/upload/src/addons/MMO/Hide/Install/InstallerHelper.php

File size: 1.9Kb
<?php

namespace MMO\Hide\Install;

use XF\Finder\StylePropertyFinder;

/**
 * @author Xon
 */
trait InstallerHelper
{
    /**
     * @param string $oldGroupId
     * @param string $oldPermissionId
     * @param string $newGroupId
     * @param string $newPermissionId
     *
     * @throws \XF\Db\Exception
     */
    protected function renamePermission(string $oldGroupId, string $oldPermissionId, string $newGroupId, string $newPermissionId)
    {
        $this->db()->query('
            UPDATE IGNORE xf_permission_entry
            SET permission_group_id = ?, permission_id = ?
            WHERE permission_group_id = ? AND permission_id = ?
        ', [$newGroupId, $newPermissionId, $oldGroupId, $oldPermissionId]);

        $this->db()->query('
            UPDATE IGNORE xf_permission_entry_content
            SET permission_group_id = ?, permission_id = ?
            WHERE permission_group_id = ? AND permission_id = ?
        ', [$newGroupId, $newPermissionId, $oldGroupId, $oldPermissionId]);

        $this->db()->query('
            DELETE FROM xf_permission_entry
            WHERE permission_group_id = ? AND permission_id = ?
        ', [$oldGroupId, $oldPermissionId]);

        $this->db()->query('
            DELETE FROM xf_permission_entry_content
            WHERE permission_group_id = ? AND permission_id = ?
        ', [$oldGroupId, $oldPermissionId]);
    }

    /**
     * @param string $old
     * @param string $new
     */
    protected function renameStyleProperty($old, $new)
    {
        $optionOld = \XF::finder(StylePropertyFinder::class)->where('property_name', '=', $old)->fetchOne();
        $optionNew = \XF::finder(StylePropertyFinder::class)->where('property_name', '=', $new)->fetchOne();
        if ($optionOld && !$optionNew)
        {
            $optionOld->property_name = $new;
            $optionOld->saveIfChanged();
        }
    }
}