Форум -> Files (модуль и блок) -> block-Center_Files_4x от Alfainfo.ru |
block-Center_Files_4x от Alfainfo.ru |
---|
keeper | Дата: 06.03.2009, в 13:27 | Сообщение №21 |
Активный участникПользователь №: 121 Сообщений: 102
| Serg_pnz, Блин как жалко.
Может этот блок чемто поможет?
Прикрепленные файлы:
Скачать: 1.25 KB
|
|
|
|
shadow | Дата: 06.03.2009, в 14:45 | Сообщение №22 |
Активный участникПользователь №: 520 Сообщений: 100
| keeper, во временное решение чтоб выводилось из всех под категорий:
убиваем или ремируем строчки:
Код | 1
| function file_categories($cid)
{
global $db,$prefix;
$result=$db->sql_query("SELECT cid FROM ".$prefix."_files_categories WHERE parentid=$cid");
while(list($cid)=$db->sql_fetchrow($result))
{
$return.="cid=".$cid.'|';
$return.=file_categories($cid);
}
return $return;
} |
убиваем или ремируем строчки:
Код | 1
| $file_categories="cid=$start_cid|".file_categories($start_cid);
$file_categories=substr($file_categories,0,strlen($file_categories)-1);
$file_categories="(".str_replace('|',' OR ',$file_categories).")";
list($sumfiles_subcat) = $db->sql_fetchrow($db->sql_query("SELECT count(*) FROM ".$prefix."_files WHERE status !='0' AND $file_categories")); |
вот сюда в каждый if, elseif, else
Код | 1
| if ($blocks_num == 1) {
$start_cid = $num_cat_1;
$bcat = $num_cat_1;
$text_cat = "Новые Программы";
} elseif ($blocks_num == 2) {
$start_cid = $num_cat_2;
$bcat = $num_cat_2;
$text_cat = "Новые Фильмы";
} elseif ($blocks_num == 3) {
$start_cid = $num_cat_3;
$bcat = $num_cat_3;
$text_cat = "Новая Музыка";
} else {
$start_cid = $num_cat_4;
$bcat = $num_cat_4;
$text_cat = "Новые Игры";
} |
сколько их утебя, в каждый добавь строчку:
$file_categories="cid IN ('X','X','X','X','X','X')";
где X - перечисли ручками номера подкатегорий для каждого подблока (списка)
пример:
Код | 1
| if ($blocks_num == 1) {
$file_categories="cid IN ('10','11','13','14','17','22')";
$start_cid = $num_cat_1;
$bcat = $num_cat_1;
$text_cat = "Новые Программы";
} elseif ($blocks_num == 2) {
$file_categories="cid IN ('12','15','16','18')";
$start_cid = $num_cat_2;
$bcat = $num_cat_2;
$text_cat = "Новые Фильмы";
} elseif ($blocks_num == 3) {
$file_categories="cid IN ('19','20','21','23')";
...........................
...........................
........................... |
|
|
|
keeper | Дата: 06.03.2009, в 21:49 | Сообщение №23 |
Активный участникПользователь №: 121 Сообщений: 102
| shadow, Ой спасибо тебе огромное. Сегодня же попробую и обязательно отпишусь. |
|
|
keeper | Дата: 11.03.2009, в 13:58 | Сообщение №24 |
Активный участникПользователь №: 121 Сообщений: 102
| shadow, огромнейшее тебе спасибо. работает как часики, конечно пришлось немного ссылки поправить для этой версии, но в целом супер все работает.
Раньше отписаться не получалось, да и попробовал только сегодня.
Респект и уважуха! |
|
|
patriot | Дата: 12.03.2009, в 00:53 | Сообщение №25 |
УчастникПользователь №: 349 Сообщений: 92
| попробуйте такую функцию
PHP - Код | 1 2 3 4 5 6 7 8 9 10 11 12 13
| <?php function file_categories($cid){ global $db, $prefix; $result=$db->sql_fetchrowset($db->sql_query("SELECT id, parentid FROM ".$prefix."_categories WHERE modul='Files'")); if(is_array($result)) foreach($result as $item) $cats[$item['parentid']][]=$item['id']; $subcats=$cats[$cid]; if(is_array($subcats)) foreach($subcats as $subcat){ if(is_array($cats[$subcat])) $subcats=$subcats+$cats[$subcat]; } $result='cid='.$cid.'|'.implode('|', $subcats); return $result; } ?> |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Отредактированно patriot 14.03.2009 г. в 03:20:13 |
|
|
shadow | Дата: 13.03.2009, в 14:28 | Сообщение №26 |
Активный участникПользователь №: 520 Сообщений: 100
| так люди меня это очень улыбнула но на моей AS 4.2 блок спокойно заработал...
patriot, - спасибо но твоя функция не заработала...
В результате подправил только одну строчку в запросе этой функции, ну и ссылки так по мелочи... и пути к картинкам...
но сам блок замечательно работает - а разници в таблицах между 3х и 4х следа вроде нет.... - единственое в 4х - files а в 3х - Files
Вот пример работы блока.
и вот выкладываю сам блок можно сказать это бета версия для 3х и 4х так как осталось только подправить стили и HTML оформление... Кстати у меня с временем напряг так что если кто блок потестирует и подправит мелочи типа оформленя сам, от меня и от всех остальных будет большой респект....
Прикрепленные файлы:
Скачать: 2.71 KB
|
|
|
patriot | Дата: 14.03.2009, в 03:22 | Сообщение №27 |
УчастникПользователь №: 349 Сообщений: 92
| shadow, в самом деле. неправильно указал имя поля (parent вместо parentid). исправил.
работает аналогично твоей функции (без рекурсивных запросов к базе), хоть это и не оптимальный вариант
несколько модифицировал блок.
-изменил формат входных данных - по моему так удобнее
-возможность вывода не только в 2 колонки
-убрал лишние запросы и рекурсию
не проверял. отпишитесь, кто поставит
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Отредактированно patriot 14.03.2009 г. в 04:30:36
Прикрепленные файлы:
Скачать: 1.71 KB |
|
|
shadow | Дата: 16.03.2009, в 12:43 | Сообщение №28 |
Активный участникПользователь №: 520 Сообщений: 100
| Да, посмотрел, неплохо оптимизировал, но у меня на 4.2 не отобразились сами файлы, и кол во файлов отобразилось не правельно, в первом блоке 74 вместо 52 в остальных по 1, переменую мод подправлял на "files" для 4.2 но результат тот же, кстати эту переменую ты удачно ввел, и для запроса и для урлов...
P.S в таком блоке больше 2х колонок унриал, 2 и то влязят с трудом, лучше бы подправил кол-во блоков по вертикали...
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Отредактированно shadow 16.03.2009 г. в 13:04:38 |
|
|
keeper | Дата: 24.03.2009, в 04:39 | Сообщение №29 |
Активный участникПользователь №: 121 Сообщений: 102
| Цитата | shadow, в самом деле. неправильно указал имя поля (parent вместо parentid). исправил.
работает аналогично твоей функции (без рекурсивных запросов к базе), хоть это и не оптимальный вариант
несколько модифицировал блок.
-изменил формат входных данных - по моему так удобнее
-возможность вывода не только в 2 колонки
-убрал лишние запросы и рекурсию
не проверял. отпишитесь, кто поставит |
Ну собственно наконец то поставил проверить. Результат таков.... Блок заработал но как и раньше у меня было. Всё что входит в подкатегории не выводится.
Пока что полюзуюсь вариантом с прописаванием всех подкатегорий через запятую.
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Отредактированно keeper 24.03.2009 г. в 04:41:21 |
|
|
shadow | Дата: 24.03.2009, в 14:39 | Сообщение №30 |
Активный участникПользователь №: 520 Сообщений: 100
| keeper, а ты какой вариант то пробывал? а то тут так сказать уже родилось 2 варианта (блин метоз, - размножение дилением )
- от patriotа не заработал у меня, а мой нормально и в автомате выводит из подкатегорий, стоит сейчас у меня на сайте.... |
|
|
patriot | Дата: 24.03.2009, в 15:33 | Сообщение №31 |
УчастникПользователь №: 349 Сообщений: 92
| а можно мой вариант в действии посмотреть?
отладим как раз
он побыстрее будет
shadow, это все тот же твой вариант). так что не митоз, а эволюция
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Отредактированно patriot 24.03.2009 г. в 16:10:26 |
|
|
|
Вы не можете ответить в тему анонимно, пожалуйста, войдите или зарегистрируйтесь!
|