50٪ تخفیف روی تمام دوره‌ها!
پایان تخفیف تا:
مشاهده دوره‌ها
0

حذف یک ردیف از foreach

سلام؛ یه سی آر ام دارم که بخش کارکنان رو با کد زیر دریافت میکنه و نشون میده:

foreach ($rResult as $aRow) {
    $row = array();
    for ($i = 0; $i < count($aColumns); $i++) {
        if (strpos($aColumns[$i], 'as') !== false && !isset($aRow[$aColumns[$i]])) {
            $_data = $aRow[strafter($aColumns[$i], 'as ')];
        } else {
            $_data = $aRow[$aColumns[$i]];
        }
        if ($aColumns[$i] == 'last_login') {
            if ($_data != null) {
                $_data = time_ago($_data);
            } else {
                $_data = 'Never';
            }
        } elseif ($aColumns[$i] == 'active') {
            $checked = '';
            if ($aRow['active'] == 1) {
                $checked = 'checked';
            }

            $_data = '<div class="onoffswitch">
                <input type="checkbox" data-switch-url="'.admin_url().'staff/change_staff_status" name="onoffswitch" class="onoffswitch-checkbox" id="c_'.$aRow['staffid'].'" data-id="'.$aRow['staffid'].'" ' . $checked . '>
                <label class="onoffswitch-label" for="c_'.$aRow['staffid'].'"></label>
            </div>';

            // For exporting
            $_data .= '<span class="hide">' . ($checked == 'checked' ? _l('is_active_export') : _l('is_not_active_export')) . '</span>';
        } elseif ($aColumns[$i] == 'firstname') {
            $_data = '<a href="' . admin_url('staff/profile/' . $aRow['staffid']) . '">' . staff_profile_image($aRow['staffid'], array(
                'staff-profile-image-small'
                )) . '</a>';
            $_data .= ' <a href="' . admin_url('staff/member/' . $aRow['staffid']) . '">' . $aRow['firstname'] . ' ' . $aRow['lastname'] . '</a>';
        } elseif ($aColumns[$i] == 'email') {
            $_data = '<a href="mailto:' . $_data . '">' . $_data . '</a>';
        } else {
            if (strpos($aColumns[$i], 'date_picker_') !== false) {
                $_data = (strpos($_data, ' ') !== false ? _dt($_data) : _d($_data));
            }
        }
        $row[] = $_data;
    }
    $options = icon_btn('staff/member/' . $aRow['staffid'], 'pencil-square-o');
    if (has_permission('staff', '', 'delete') && $output['iTotalRecords'] > 1 && $aRow['staffid'] != get_staff_user_id()) {
        $options .= icon_btn('#', 'remove', 'btn-danger', array(
            'onclick'=>'delete_staff_member('.$aRow['staffid'].'); return false;',
            ));
    }
    $row[]              = $options;
    $output['aaData'][] = $row;
}

کاربر Admin در این CRM با آی دی شماره 1 شناخته میشه؛

حالا من میخوام ادمین اصلی بعنوان backdoor باشه و بقیه ادمین ها اون رو نبینن؛

بطور واضح تر اینکه میخوام وقتی تمام کاربرها فراخوانی میشن، ردیف کاربر Admin با آی دی 1 برای کسی قابل مشاهده نباشه.

حالا توی این foreach چطوری میتونم بگم که ردیف این آی دی رو حذف کن؟

ممنون

پرسیده شده در 1396/09/26 توسط

1 پاسخ

0

راهی که به ذهن من میرسه اینه که یک property جدید مثلا isVisible یا isAdmin به object بدین و اگه اون 1 بود تو foreach نمایشش ندین.

یا اینکه کلا تو query قبل foreach یه جوری این کاربر رو نگیرید مثلا بگید isAdmin wtv باشه.

ساده ترین راه (شاید استاندارد نباشه ) اینه که تو query قبل foreach بگید از ID شماره 2 به بالا رو بگیره اینجوری حتی تغییر دیتابیس هم نمی خواد.

پاسخ در 1396/09/27 توسط

پاسخ شما