Gruppi secondari in ordine alfabetico!

Aperto da Flavio93Zena, Giovedì - 04 Giugno 2015 - 20:16

0 Utenti e 1 Visitatore stanno visualizzando questa discussione.

Flavio93Zena

Sì lo so che sono un rompipalle, non c'è bisogno che me lo diciate ;D Allora, nel profilo è possibile selezionare, con le apposite checkboxes, i vari gruppi secondari di appartenenza e con un dropdown per quelli primari.
Sarebbe possibile renderli ambedue in ordine alfabetico?

function template_profile_group_manage()
{
global $context, $txt, $scripturl;

echo '
<dt>
<strong>', $txt['primary_membergroup'], ': </strong><br />
<span class="smalltext">(<a href="', $scripturl, '?action=helpadmin;help=moderator_why_missing" onclick="return reqWin(this.href);">', $txt['moderator_why_missing'], '</a>)</span>
</dt>
<dd>
<select name="id_group" ', ($context['user']['is_owner'] && $context['member']['group_id'] == 1 ? 'onchange="if (this.value != 1 &amp;&amp; !confirm(\'' . $txt['deadmin_confirm'] . '\')) this.value = 1;"' : ''), '>';
// Fill the select box with all primary member groups that can be assigned to a member.
foreach ($context['member_groups'] as $member_group)
if (!empty($member_group['can_be_primary']))
echo '
<option value="', $member_group['id'], '"', $member_group['is_primary'] ? ' selected="selected"' : '', '>
', $member_group['name'], '
</option>';
echo '
</select>
</dd>


// For each membergroup show a checkbox so members can be assigned to more than one group.
foreach ($context['member_groups'] as $member_group)
if ($member_group['can_be_additional'])
echo '
<label for="additional_groups-', $member_group['id'], '"><input type="checkbox" name="additional_groups[]" value="', $member_group['id'], '" id="additional_groups-', $member_group['id'], '"', $member_group['is_additional'] ? ' checked="checked"' : '', ' class="input_check" /> ', $member_group['name'], '</label><br />';
echo '
</span>
<a href="javascript:void(0);" onclick="document.getElementById(\'additional_groupsList\').style.display = \'block\'; document.getElementById(\'additional_groupsLink\').style.display = \'none\'; return false;" id="additional_groupsLink" style="display: none;">', $txt['additional_membergroups_show'], '</a>
<script type="text/javascript"><!-- // --><![CDATA[
document.getElementById("additional_groupsList").style.display = "none";
document.getElementById("additional_groupsLink").style.display = "";
// ]]></script>
</dd>';

}

Queste sono rispettivamente il template del gruppo primario/i e secondario/i. Ho provato a mettere un ksort ma mi escono in ordine di id :( Dove sbaglio? Grazie in anticipo :)

emanuele

Profile-Modify.php:
Codice (search) Seleziona
$context['member']['group_id'] = $user_settings['id_group'];
Codice (add before) Seleziona

uasort($context['member_groups'], function ($a, $b) {
return strcasecmp($a['name'], $b['name']);
});


Citazione di: Flavio93Zena il Giovedì - 04 Giugno 2015 - 20:16
Dove sbaglio?
Nell'usare funzioni a caso senza leggere la documentazione di php.
Sorry, ma questa te la sei cercata. :P

Flavio93Zena

#2
Ha! Beh intanto memore degli insegnamenti ero riuscito a listarli in ordine di ID, che per me è già buono :)
Poi... Come sai non ho tempo (nè voglia, passione e dedicazione) per diventare un coder come te ;) Mi ritengo già molto soddisfatto per il risultato che avevo ottenuto già da solo, anche se chiaramente ti ringrazio per la soluzione che chiaramente, come al solito, funge :)

P.S.: un po' di documentazione ho provato a leggerla, però che ne sapevo che dovevo mettere il codice nel sources? Ho visto 2 foreach e ho provato a modificare entrambi con un qualcosasort >_<

Discussioni simili (3)