Друзья,возникла потребность в сортировке всех тем оформления сайта по Алфавиту.
На Джоне 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 подключить?
Порекомендовал бы переписать на функцию, scandir() и там уже использовать либо стандартную сортировку, либо пересортировывать.
Спасибо за подсказку 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 сойдет.
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&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>';
}
Код именно сортировки смайлов или категорий