Home

読み込み中...

美しきXOOPSの世界

2009/12/27

このエントリーをはてなブックマークに追加

ホダ塾 – もっとXOOPS!より、HD-1.0.4を使用。
/hd_full_1_0_4/html/modules/legacy/include/groupperm.php 35行目から

if (is_array($_POST['perms']) && !empty($_POST['perms'])) {
  $gperm_handler = xoops_gethandler('groupperm');
  foreach ($_POST['perms'] as $perm_name => $perm_data) {
    if (false != $gperm_handler->deleteByModule($modid, $perm_name)) {
      if (is_array($perm_data['groups'])) {
        foreach ($perm_data['groups'] as $group_id => $item_ids) {
          foreach ($item_ids as $item_id => $selected) {
            if ($selected == 1) {
              // make sure that all parent ids are selected as well
              if ($perm_data['parents'][$item_id] != '') {
                $parent_ids = explode(':', $perm_data['parents'][$item_id]);
                foreach ($parent_ids as $pid) {
                  if ($pid != 0 && !in_array($pid, array_keys($item_ids))) {
                    // one of the parent items were not selected, so skip this item
                    $msg[] = sprintf(_MD_AM_PERMADDNG, '<b>'.$perm_name.'</b>', '<b>'.$perm_data['itemname'][$item_id].'</b>', '<b>'.$group_list[$group_id].'</b>').' ('._MD_AM_PERMADDNGP.')';
                    continue 2;
                  }
                }
              }
              $gperm =& $gperm_handler->create();
              $gperm->setVar('gperm_groupid', $group_id);
              $gperm->setVar('gperm_name', $perm_name);
              $gperm->setVar('gperm_modid', $modid);
              $gperm->setVar('gperm_itemid', $item_id);
              if (!$gperm_handler->insert($gperm)) {
                $msg[] = sprintf(_MD_AM_PERMADDNG, '<b>'.$perm_name.'</b>', '<b>'.$perm_data['itemname'][$item_id].'</b>', '<b>'.$group_list[$group_id].'</b>');
              } else {
                $msg[] = sprintf(_MD_AM_PERMADDOK, '<b>'.$perm_name.'</b>', '<b>'.$perm_data['itemname'][$item_id].'</b>', '<b>'.$group_list[$group_id].'</b>');
              }
              unset($gperm);
            }
          }
        }
      }
    } else {
      $msg[] = sprintf(_MD_AM_PERMRESETNG, $module->getVar('name').'('.$perm_name.')');
    }
  }
}

なんじゃこりゃー!!

Leave a comment