Сортировка Дизайнов сайта

569
.
blackvj
Друзья,возникла потребность в сортировке всех тем оформления сайта по Алфавиту.

На Джоне 3.2.2 все дизайны сортируются в хаотичном порядке,что очень не удобно.

У меня 40 тем оформления и все они показываются в случайном порядке в основном списке выбора темы для сайта.

Кто поможет.понять не могу вообще как работает алгоритм вывода дизайнов...

$dir = opendir('../theme');
        while ($skindef = readdir($dir)) {
            if (($skindef != '.') && ($skindef != '..') && ($skindef != '.svn')) {
                $skindef = str_replace('.css', '', $skindef);
                echo '<option' . ($set_user['skin'] == $skindef ? ' selected="selected">' : '>') . $skindef . '</option>';
            }
        }
        closedir($dir);
        echo '</select>'; 


Это код из основных настроек сайта.При выборе дизайна.
.
вроде выводятся так как расположены на хостинге
.
Hat-Trik, у меня по алфавиту.

На 4-ке вывод через

foreach (массив as $ключ=>$значение)

А вот как его к 3.2.2 подключить?
.
Simba
Кадило крутится, лавэха мутится
Порекомендовал бы переписать на функцию, scandir() и там уже использовать либо стандартную сортировку, либо пересортировывать.
.
Спасибо за подсказку Simba.

Вот хак.

Сортировка тем оформления по Алфавиту и возрастанию.
Прикрепленные файлы:
.
Simba
Кадило крутится, лавэха мутится
там лишняя проверка.
Функция scandir() возвращает массив такого вида:
0 => '.',
1 => '..',
2 => '.htaccess',
3 => 'index.php',
4 => 'dir'

Вначале файлы и точки, а дальше папки.
Когда мы выводим фором, мы пропускаем первые несколько результатов чтоб были только папки на выводе.
for($i = 2; $i<$ii; $i++){
}

соответственно $i = 2 пропускаем . .. если в папке есть htaccess и index, то прописываем 4 вместо двух.
.
Simba, У кого там есть эти файлы поставит 4.

Хотя если это обычные дизайны без глобальной замены шапок и ног..то и 2 сойдет.
.
Fenix_61
blackvj (17.08.2012/19:01)
Друзья,возникла потребность в сортировке всех тем оформления сайта по Алфавиту.
На Джоне 3.2.2 все дизайны сортируются в хаотичном порядке,что очень не удобно.

У меня 40 тем оформления и все они
Мой вариант ! $files = natsort(array_diff(scandir('../theme'),array('.', '..','.svn','.htaccess','.mainmenu.php','end.php','head.php')));
foreach($files as $themes){
$themes = str_replace('.css', '', $themes);
echo '<option' . ($set_user['skin'] == $theme ? ' selected="selected">' : '>') . $theme . '</option>';
}
echo '</select>';
.
Simba, Блин,а как к сортировке смайлов прикрутить.
Пробывал через код который ты отписал не получилось

Сам код сортировки смайлов

$dir = glob($rootpath . 'smileys/user/*', GLOB_ONLYDIR);
        $total_dir = count($dir);
        for ($i = 0; $i < $total_dir; $i++) {
            echo is_integer($i / 2) ? '<div class="list1">' : '<div class="list2">';
            echo '<a href="smile.php?act=cat&amp;id=' . preg_replace('#^' . $rootpath . 'smileys/user/#isU', '', $dir[$i], 1) . '">' . htmlentities(file_get_contents($dir[$i] . '/name.dat'), ENT_QUOTES, 'utf-8') . '</a> ('
                . (int)count(glob($dir[$i] . '/*.gif')) . ')</div>';
        }
.
Код именно сортировки смайлов или категорий
Всего: 17