Позиция из файла модуля.

Печать / RSS
0
1. Жека 21.05.2015 / 17:33
Землянин
Доброго, давно маюсь пыхом, но на базе, тут у меня загвоздка как можно от сортировать выводимую массу на странице если в файле module.ini стоит переменная sort = 1; в других файлах с таким же названием стоит 2,3,4,5.. и т.д, в общем нужно выводить по сортировке первая 1 а ниже уже по порядку
Вот код что выводит

$modules = scandir(ROOT.'/modules');

foreach($modules as $module)
{
if($module != '.' && $module != '..')
{
$module1 = parse_ini_file(ROOT.'/modules/'.$module.'/module.ini');
if($module1['open'] == 1 && $module1['location'] == 0 сюда позицию)
{
бла бла бла
}
}
}

переменная
$module1['sort']
0
2. shilo 21.05.2015 / 17:54
Чатланин
Нууу... в массив заноси
$index[$module1[$sort]]=$module;
И сортируй по ключу, ksort() вроде. Значением элемента массива будет папка
0
3. Жека 21.05.2015 / 18:19
Землянин
2. shilo, я скорее всего очепятался, не сортировка а позиция
0
4. shilo 21.05.2015 / 19:08
Чатланин
3. CoMMoN, не понимаю задачи... что значит позиция? номер строки в ini файле?
Опиши вообще всю задачу
0
5. Жека 21.05.2015 / 20:13
Землянин
4. shilo, кароче в каждом ini файле есть строка сорт = 1 сорт = 2 сорт = 3 http://shot.qip.ru/00FCBw-6l0Ojp5qV/ упорядочить при сорт нужно
0
6. Вантуз-мен 21.05.2015 / 20:46
Господин ПЖ
5. CoMMoN, ну вроде все правильно тебе shilo подсказал сойдай временный массив с ключами sort и отсортируй его
0
7. Вантуз-мен 21.05.2015 / 20:57
Господин ПЖ
<?php
$modules = scandir(ROOT.'/modules');
$prepare_array = [];
foreach($modules as $module)
{
if($module != '.' && $module != '..')
{
$module1 = parse_ini_file(ROOT.'/modules/'.$module.'/module.ini');
if($module1['open'] == 1 && $module1['location'] == 0)
{
$prepare_array[$module1['sort']][] = бла бла бла;
}
}
}


ksort($prepare_array);

foreach ($prepare_array as $key => $value) {
тут вывод
}
0
8. Жека 21.05.2015 / 21:59
Землянин
7. Vantuz, полный код выгядит так

<?php
$modules = scandir(ROOT.'/modules');

foreach($modules as $module)
{
if($module != '.' && $module != '..' && $module != 'other' && $module != 'panel' && $module != 'pages' && $module !='.htaccess' && $module != 'index.php')
{
$_module = parse_ini_file(ROOT.'/modules/'.$module.'/module.ini');
if($_module['open'] == 1 && $_module['location'] == 0 && $_module['sort'] == 1)
{
if(file_exists(ROOT.'/modules/'.strtolower($module).'/images/icon.png'))
$img = '<img src="/'.strtolower($module).'/images/icon.png" alt="'.strtolower($module).'" />';
else
$img = img(strtolower($module).'.png');
echo '<div class="row"><a href="/'.$module.'">'.$img.' '.ucfirst(strtolower($_module['name'])).' '.(isset($_module['counter']) && $_module['counter'] == 'true' ? include_once(ROOT.'/modules/'.$module.'/_counter.php') : null).'</a> </div>';
(isset($_module['widget']) && $_module['widget'] == 'true' ? include_once(ROOT.'/modules/'.$module.'/_widget.php') : null);
}
}
}
?>


с ем что предложил ты мне придется сори по мучаться, есть другой вариант? мне нужно именно ПОЗИЦИОНИРОВАНИЕ делать позицию модулей
Изменил: Жека (21.05.2015 / 21:59)
0
9. Кевин Митник 21.05.2015 / 22:18
Айсберг Визави
можно подключить все модули, предварительно вывод каждого собрав в буфер, прочитать его положение, добавить в ключ его местоположение, в массив с таким ключем добавить вывод самого модуля и в цикле прогнать вывод
0
10. ramzes 21.05.2015 / 23:27
2000 лет д.н.э.
Кевин Митник_HHTeam (21 Мая 2015 / 22:18)
можно подключить все модули, предварительно вывод каждого собрав в буфер, прочитать его положение, добавить в ключ его местоположение, в массив с таким ключем добавить вывод самого модуля и в цикле прогнать вывод

самое логичное, и кеширование прилепить, что бы не читать каждый раз гору файлов
Для выполнения действия необходимо авторизоваться!
Стикеры / Теги / Правила / Топ тем / Топ тем / Поиск