Tamam, ben böyle bir şey yapmak isteyen am:
$which = !empty($param_id) ? "['groups'][$param_id]" : "['groups']";
Ve ben gibi pek bir şey yapmak mümkün istiyorum daha ...
$all_groups . $which = array(
-1 => array(
'id' => '-1',
'name' => $txt['parent_guests_only'],
'checked' => in_array('-1', $checked) || in_array('-3', $checked),
'is_post_group' => false,
)
Ve ben, gibi pek bir dizi oluşturmak gerekiyorsa !empty($param_id)
$all_groups['groups'][$param_id] = array(the array info);
Ama $ param_id boşsa yerine yapmalıdır:
$all_groups['groups'] = array(the array info);
Ben bunu birleştirmek sanmıyorum ya da ben can?
Birisi lütfen bana yardımcı olabilir? Bu bir işlev boyunca birçok birçok kez oluyor, bu yüzden başka ... eğer kullanmak istemiyorsanız ... beyanlara her zaman. Çok olurdu, hepsi için bir 1 hızlı yaklaşım düşünme.
Teşekkürler :)
DÜZENLEME, burada söz konusu işlevi:
function ListGroups($checked = array(), $unallowed = array(), $order = array(), $param_id = 0)
{
global $context, $smcFunc, $txt;
// We'll need this for loading up the names of each group.
if (!loadLanguage('ManageBoards'))
loadLanguage('ManageBoards');
if (empty($checked))
return array();
$all_groups['groups'][$param_id] = array();
if (!in_array('-1', $unallowed))
// Guests
$all_groups['groups'][$param_id] = array(
-1 => array(
'id' => '-1',
'name' => $txt['parent_guests_only'],
'checked' => in_array('-1', $checked) || in_array('-3', $checked),
'is_post_group' => false,
)
);
if (!in_array('0', $unallowed))
{
// Regular Members
if (!empty($all_groups['groups']))
$all_groups['groups'][$param_id] += array(
0 => array(
'id' => '0',
'name' => $txt['parent_members_only'],
'checked' => in_array('0', $checked) || in_array('-3', $checked),
'is_post_group' => false,
)
);
else
$all_groups['groups'][$param_id] = array(
0 => array(
'id' => '0',
'name' => $txt['parent_members_only'],
'checked' => in_array('0', $checked) || in_array('-3', $checked),
'is_post_group' => false,
)
);
}
// Load membergroups.
$request = $smcFunc['db_query']('', '
SELECT group_name, id_group, min_posts
FROM {db_prefix}membergroups
WHERE id_group > {int:is_zero}',
array(
'is_zero' => 0,
)
);
while ($row = $smcFunc['db_fetch_assoc']($request))
{
if (!in_array($row['id_group'], $unallowed))
{
$all_groups['groups'][(int) $param_id][(int) $row['id_group']] = array(
'id' => $row['id_group'],
'name' => trim($row['group_name']),
'checked' => in_array($row['id_group'], $checked) || in_array('-3', $checked),
'is_post_group' => $row['min_posts'] != -1,
);
}
}
$smcFunc['db_free_result']($request);
// Let's sort these arrays accordingly!
if (!empty($order))
{
$all_groups['groups'][$param_id] = sortGroups($all_groups['groups'][$param_id], $order);
$context['group_order' . $param_id] = implode(', ', $order);
}
else
{
$context['group_order' . $param_id] = '';
sort($all_groups['groups'][$param_id]);
$x = 0;
foreach ($all_groups['groups'][$param_id] as $key => $value)
{
$x++;
$context['group_order' . $param_id] .= $x < count($all_groups['groups'][$param_id]) ? $value['id'] . ', ' : $value['id'];
}
}
return $all_groups['groups'][$param_id];
}
Böylece, o $ param_id olmadan $ all_groups ['grup'] dizisi oluşturmak gerekiyorsa ben! Boş ($ param_id) için bir kontrol yapmak gerekir.
Bunun yerine böyle inşa $all_groups['groups'][$params_id]
else: Yani if (!empty($params_id))
şöyle dizi oluşturmak için bir kontrol eklemek gerekir $all_groups['groups']
. Ben ... else if bir demet istemiyorum ... Burada ifadeleri, sadece 1 veya 5 liner BÜYÜK olurdu!
Teşekkür Guys :)