Форум -> Files (модуль и блок) -> block-Center_Files_4x от Alfainfo.ru |
block-Center_Files_4x от Alfainfo.ru |
---|
alfainfo | Дата: 28.04.2008, в 20:08 | Сообщение №1 |
  Активный участникПользователь №: 237 Сообщений: 152
 | - Центральный блок для вывода новых файлов из 4 категорий модуля, с учетом всех категорий и их под категорий и с подсчетом количества файлов в этих категориях, включая неограниченную вложенность под категорий.
В этой теме пишем все пожелания по разработке и улучшению блока, а так же выкладываем файлы (ссылки) своей версии этого файла если кто пожелает самостоятельно изменить/доработать...
СКАЧАТЬ БЛОК МОЖНО ТУТ! (для Slaed v2x)
БЕТА ВЕРСИЯ для SLAED 3.x
Прикрепленные файлы:
 Скачать: 1.71 KB
БЕТА ВЕРСИЯ для SLAED 4.x / AS 4.x
Прикрепленные файлы:
 Скачать: 2.71 KB
Пример смотрим у меня на сайте (ссылка - банер в подписи).
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Отредактированно alfainfo 16.03.2009 г. в 13:20:57 |
|
|
alfainfo | Дата: 28.04.2008, в 20:35 | Сообщение №2 |
  Активный участникПользователь №: 237 Сообщений: 152
 | P.S
Описание:
блок можно легко настроить под себя и свой сайт,
открываем блок с помощью любого простого текстового редактора и:
если стереть "//" двойные слеши в начале строчек (всего их 7) то в начале каждого файла будет выводится значек картинки, если на него навести курсор то можно увидеть скриншот данного файла если он конечно есть,
НО!!! - это действие сильно притормаживает загрузку сайта и рекомендуется только на быстрых хостингах.
PHP - Код | 1 2 3
| <?php $strip_block = 37; //обрезать заголовок файла до указанного количества символов ?> |
- значение "37" обозначает сколько символов будет выведено в строчке файла, после чего название будет урезанно... совет - если строчки с названиями файлов продолжаются с новой строки в блоке - уменьшите это значение, ну а если вам кажется что в блоке слишком много свободного места - увеличьте! )))
PHP - Код | 1 2 3
| <?php $limit_block_link = 10; //кол-во строк в блоках ?> |
- значение "10" обозначает кол во строчек для каждой из 4 колонок блока вы можете изменить его на любое другое по вашему усмотрению...
PHP - Код | 1 2 3 4 5 6
| <?php $num_cat_1 = 1; //номер категории 1го блока (Программы) $num_cat_2 = 26; //номер категории 2го блока (Фильмы) $num_cat_3 = 28; //номер категории 3го блока (Музыка) $num_cat_4 = 30; //номер категории 4го блока (Игры) ?> |
- здесь вместо заданных впишите номера своих категорий, любые из этих четырех категорий могут находится в любом месте модуля файлы, и не обязательно должны быть категориями первого уровня, - Главное чтоб каждая из 4 категорий не являлась родителем или не была вложением в другую из четырех категорий. |
|
|
Club-Ua | Дата: 29.04.2008, в 00:49 | Сообщение №3 |
  СтарожилПользователь №: 163 Сообщений: 274
 | спасибо большое то что нужно  |
|
|
RockKenny | Дата: 30.04.2008, в 17:17 | Сообщение №4 |
  Активный участникПользователь №: 171 Сообщений: 232
 | не в тему конечно, но...
alfainfo, где можно, взять блок статистика как у тебя на сайте и карту сайта? |
|
|
alfainfo | Дата: 01.05.2008, в 12:10 | Сообщение №5 |
  Активный участникПользователь №: 237 Сообщений: 152
 | RockKenny, думаю не где.... просто было три разных блока... один статистику по пользователю выводил (стандартный след блок) другой банеры прокручивал... я его точно на следе в свое время выкладывал (когда на следе в одной из версий был глюк со вставкой ява скрипта), третий не помню где нарыл тож вроде кто то выкладывал, он подсчитывал статистику по кол ву контента из файлов помойму, а я добавил туда еще две позиции для себя и чтоб все сумироваллось....
- ну тебе если что из этого надо, пиши, поделимся - я не жадный... |
|
|
rockKenny | Дата: 01.05.2008, в 13:00 | Сообщение №6 |
  Активный участникПользователь №: 171 Сообщений: 232
 | я я бы хотел блок "Статистика" очень уж он мне понравился:) |
|
|
Club-Ua | Дата: 01.05.2008, в 13:04 | Сообщение №7 |
  СтарожилПользователь №: 163 Сообщений: 274
 | а больше категорий можно забадяжить? скажем штук 10 |
|
|
alfainfo | Дата: 01.05.2008, в 16:02 | Сообщение №8 |
  Активный участникПользователь №: 237 Сообщений: 152
 | Club-Ua, - гы, вы еще сами не знаете насколько блок универсален!
ВОТ сабж (допустим надо 10 разделов!) :
1) увеличиваем $num_cat_X = YY; увеличиваем в начале блока до нужного количества (где X порядковый номер а YY номер категории из которой хотим вывести список)
получае примерно следующее:
PHP - Код | 1 2 3 4 5 6 7 8 9 10 11 12
| <?php $num_cat_1 = 1; $num_cat_2 = 26; $num_cat_3 = 28; $num_cat_4 = 30; $num_cat_5 = 10; $num_cat_6 = 27; $num_cat_7 = 16; $num_cat_8 = 12; $num_cat_9 = 41; $num_cat_10 = 18; ?> |
2) меняем значение "4" в строчке
PHP - Код | 1 2 3
| <?php while ($blocks_num <= 4) ?> |
на необходимое - например 10 (значение должно быть обязательно четным!!!)
3) добавляем сюда нехваттающее значение " elseif"
PHP - Код | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| <?php 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 = "Новые Игры"; } ?> |
получится что то типа:
PHP - Код | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| <?php 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 = "Новая Музыка"; ......................................... ......................................... ......................................... } elseif ($blocks_num == 8) { $start_cid = $num_cat_8; $bcat = $num_cat_8; $text_cat = "Новая Музыка"; } elseif ($blocks_num == 9) { $start_cid = $num_cat_9; $bcat = $num_cat_9; $text_cat = "Новая Музыка"; } else { $start_cid = $num_cat_10; $bcat = $num_cat_10; $text_cat = "Новые Игры"; } ?> |
4) добавляем в эту строчку необходимо количество НЕ ЧЕТНЫХ ЗНАЧЕНИЙ!!!
PHP - Код | 1 2 3
| <?php if ($blocks_num == 1 or $blocks_num == 3) { ?> |
получится так:
PHP - Код | 1 2 3
| <?php if ($blocks_num == 1 or $blocks_num == 3 or $blocks_num == 5 or $blocks_num == 7 or $blocks_num == 9) { ?> |
5) по аналогии ниже добавляем все четные значения в строчку:
PHP - Код | 1 2 3
| <?php if ($blocks_num == 2 or $blocks_num == 4) { ?> |
получится так:
PHP - Код | 1 2 3
| <?php if ($blocks_num == 2 or $blocks_num == 4 or $blocks_num == 6 or $blocks_num == 8 or $blocks_num == 10) { ?> |
ВСЕ ГОТОВО, наслаждайтесь!
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Отредактированно alfainfo 01.05.2008 г. в 16:05:16 |
|
|
alfainfo | Дата: 01.05.2008, в 16:16 | Сообщение №9 |
  Активный участникПользователь №: 237 Сообщений: 152
 | еще один сабж:
мой блок выводит файлы ранжируя их по дате
(замете я исправил тупой следовский косяк стандартного блока, где вывод производился не по дате а просто по номеру это было заметно когда вайд с меньшим порядковым номером обновлялся по дате а в блоке он не учитывался)
так вот как я уде сказал ранжирование идет по дате но допустим вы хотите выводить список используя другой критерий - например вы хотите выводить самые скачиваемые из определенных категорий
как это сделать?
пример:
находим код (он примерно в середине файла)
Код | 1
| $result = $db->sql_query("SELECT lid, title, img, UNIX_TIMESTAMP(date) as formatted FROM ".$prefix."_files WHERE status !='0' AND ".$file_categories." ORDER BY UNIX_TIMESTAMP(date) DESC LIMIT ".$limit_block_link.""); |
в самом конце есть "ORDER BY UNIX_TIMESTAMP(date)"
что означает - упарядочить по дате
заменяем "TIMESTAMP(date)" на например "hits"
теперь блок будет выводить самы скачиваемые файлы...
по аналогии заменив всего одно значение можно выводить самые популярные по голосам (выставленным оценкам) и так далие...... |
|
|
rockKenny | Дата: 01.05.2008, в 19:14 | Сообщение №10 |
  Активный участникПользователь №: 171 Сообщений: 232
 | alfainfo, благодарю!!!
чет не нашел ротатора "Поисковые боты"... |
|
|
alfainfo | Дата: 01.05.2008, в 19:49 | Сообщение №11 |
  Активный участникПользователь №: 237 Сообщений: 152
 | rockKenny, - это наверное по тому что: такого блока нет, есть просто блок с ботами а я просто в блоке где идет вывод ботов взял в тег:
Код | 1
| <Marquee Behavior=\"Scroll\" Direction=\"up\" Height=\"30\" ScrollAmount=\"2\" ScrollDelay=\"100\" onMouseOver=\"this.stop()\" onMouseOut=\"this.start()\"> |
.................
.................
ниже в архиве весь блок Статистики,
только не забудте ОБЯЗАТЕЛЬНО сразу сменить счетчики и банеры на свои... а то я уже запарился звонить разным людям по всей россии и просить их счетчики на свои поменять в блоке статистики который я раньше выкладывал )))
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Отредактированно alfainfo 01.05.2008 г. в 19:56:20
Прикрепленные файлы:
 Скачать: 4.43 KB |
|
|
keeper | Дата: 04.03.2009, в 08:41 | Сообщение №12 |
  Активный участникПользователь №: 121 Сообщений: 102
 | alfainfo, классный блок, но мне нужно для версии 3,5, никак не могу понять как адаптировать.
Помоги если можешь.  |
|
|
shadow | Дата: 04.03.2009, в 11:42 | Сообщение №13 |
  Активный участникПользователь №: 520 Сообщений: 100
 | keeper, - выложи index.php от своей версии следа из модуля файлов, и какой неть стандартный блок файлов который шел в комплнкте... сравним, поможем... |
|
|
keeper | Дата: 05.03.2009, в 00:04 | Сообщение №14 |
  Активный участникПользователь №: 121 Сообщений: 102
 | shadow, ты супер. Спасибо огромное.
Оба файла прилагается. 
Прикрепленные файлы:
 Скачать: 5.41 KB |
|
|
shadow | Дата: 05.03.2009, в 13:39 | Сообщение №15 |
  Активный участникПользователь №: 520 Сообщений: 100
 | keeper, попробуй для начала подправить в блоке строчки:
Код | 1
| $result=$db->sql_query("SELECT cid FROM ".$prefix."_files_categories WHERE parentid=$cid"); |
на
Код | 1
| $result=$db->sql_query("SELECT id FROM ".$prefix."_categories WHERE parentid=$cid"); |
и
Код | 1
| $result = $db->sql_query("SELECT lid, title, img, UNIX_TIMESTAMP(date) as formatted FROM ".$prefix."_files WHERE status !='0' AND ".$file_categories." ORDER BY UNIX_TIMESTAMP(date) DESC LIMIT ".$limit_block_link."");
while(list($lid, $title, $f_img, $f_date) = $db->sql_fetchrow($result)) { |
на
Код | 1
| $result = $db->sql_query("SELECT lid, title, UNIX_TIMESTAMP(date) as formatted FROM ".$prefix."_files WHERE status !='0' AND ".$file_categories." ORDER BY UNIX_TIMESTAMP(date) DESC LIMIT ".$limit_block_link."");
while(list($lid, $title, $f_date) = $db->sql_fetchrow($result)) { |
а там будем смотреть дальше, просто у меня 3.5 не где не стоит, и в живую потестить не получается... |
|
|
keeper | Дата: 05.03.2009, в 14:00 | Сообщение №16 |
  Активный участникПользователь №: 121 Сообщений: 102
 | shadow, сейчас попробую и отпишусь.
Спасибо огромное. |
|
|
keeper | Дата: 05.03.2009, в 15:35 | Сообщение №17 |
  Активный участникПользователь №: 121 Сообщений: 102
 | Спасибо дружище. Теперь работает.
Но есть одно но....
В модуле имеется всего 2 категории.
Ява книги и Ява игры
Как в одном так и во втором, нет ничего кроме подкатегорий.
Как сделать, чтобы вставляя в блок только номера категории, можно было выводить всё последние, что внутри всех подкатегорий. Так как перечислять всех невозможно. Только книжек там 30 подкатегорий по авторам.
Сейчас выводит только тогда когда задаю конкретный номер подкатегории. Может можно както перечислить через запятую или какой другой разделитель в блоке? |
|
|
shadow | Дата: 05.03.2009, в 17:31 | Сообщение №18 |
  Активный участникПользователь №: 520 Сообщений: 100
 | ну вообще то он как раз и должен был находить все подкатегории при указании только одной родительской категории для каждого куска блока, а потом находить самые последнии во всех подкатегориях. а сейчас как я понял из твоего сообщения выводятся только последнии файлы непосредственно из указанных категорий,
тогда скорее всего не отрабатывает эта функция:
Код | 1
| function file_categories($cid)
{
global $db,$prefix;
$result=$db->sql_query("SELECT id FROM ".$prefix."_categories WHERE parentid=$cid");
while(list($cid)=$db->sql_fetchrow($result))
{
$return.="cid=".$cid.'|';
$return.=file_categories($cid);
}
return $return;
} |
а ее кстати писал Serg_pnz надо бы чтоб он помог... 
Собственно все отличия между движками касаемые этого блока сводятся только к одному:
в 2.х слкде для категорий файлов была таблица ".$prefix."_files_categories
а в 3.х это ".$prefix."_categories, это я вроде подправил.... |
|
|
keeper | Дата: 05.03.2009, в 17:48 | Сообщение №19 |
  Активный участникПользователь №: 121 Сообщений: 102
 | shadow, спасибо огромное.
Ну что ж... будем ждать Сержа.  |
|
|
Serg_pnz | Дата: 06.03.2009, в 10:54 | Сообщение №20 |
  АдминистраторПользователь №: 1 Сообщений: 2243
 | 2shadow, это не моя функция - я не пишу на рекурсиях.
2keeper, у меня нет 3.5, к сожалению не на чем проверить. | Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот |
|
|
|
Вы не можете ответить в тему анонимно, пожалуйста, войдите или зарегистрируйтесь!
|