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

Печать RSS
396

Автор
Землянин
0
Доброго, давно маюсь пыхом, но на базе, тут у меня загвоздка как можно от сортировать выводимую массу на странице если в файле 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
Нууу... в массив заноси
$index[$module1[$sort]]=$module;
И сортируй по ключу, ksort() вроде. Значением элемента массива будет папка
Автор
Землянин
0
2. shilo, я скорее всего очепятался, не сортировка а позиция

Чатланин
0
3. CoMMoN, не понимаю задачи... что значит позиция? номер строки в ini файле?
Опиши вообще всю задачу
Автор
Землянин
0
4. shilo, кароче в каждом ini файле есть строка сорт = 1 сорт = 2 сорт = 3 http://shot.qip.ru/00FCBw-6l0Ojp5qV/ упорядочить при сорт нужно

Господин ПЖ
0
5. CoMMoN, ну вроде все правильно тебе shilo подсказал сойдай временный массив с ключами sort и отсортируй его

Господин ПЖ
0
<?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
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
можно подключить все модули, предварительно вывод каждого собрав в буфер, прочитать его положение, добавить в ключ его местоположение, в массив с таким ключем добавить вывод самого модуля и в цикле прогнать вывод

2000 лет д.н.э.
0
Кевин Митник_HHTeam (21 Мая 2015 / 22:18)
можно подключить все модули, предварительно вывод каждого собрав в буфер, прочитать его положение, добавить в ключ его местоположение, в массив с таким ключем добавить вывод самого модуля и в цикле прогнать вывод
самое логичное, и кеширование прилепить, что бы не читать каждый раз гору файлов
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск