Форум -> Система оформления -> подскажите с блоком «ТЕГИ» |
подскажите с блоком «ТЕГИ» |
---|
shadow | Дата: 18.03.2009, в 11:18 | Сообщение №1 |
  Активный участникПользователь №: 520 Сообщений: 100
 | Собственно создал блок - аля теги, простенький, берет из масива набор слов и кол во, и соответствено выводит их разного размера ... все устраевает только такой косяк, размер слов генерится как надо, но слова слипаются между собой по высоте... как бы это подправить????????
сами слова это с сылки со стилем
Код | 1
| ... style="font-size:".$size."px" .. |
правится только размер слов а как бы еще отступы по высоте задать, ну что то в этом духе...
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Отредактированно shadow 19.03.2009 г. в 11:17:44 |
|
|
Serg_pnz | Дата: 18.03.2009, в 12:48 | Сообщение №2 |
  АдминистраторПользователь №: 1 Сообщений: 2243
 | shadow, устанавиливай межстрочник line-height с коэффициентом 1.2 от высоты. | Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот |
|
|
shadow | Дата: 18.03.2009, в 13:19 | Сообщение №3 |
  Активный участникПользователь №: 520 Сообщений: 100
 | Serg_pnz, а вот чуть чуть по конкретней можно?
Код | 1
| $content .= "<a href=\"$homeurl/index.php?name=files&genre=".urlencode($gen)."\" target=\"_self\" title=\"$gen\" style=\"font-size:".$size."px\">$gen</a>"; |
И еще значения берутся из файлика, через запятую, потом соответственно генерится масив, прокручивается и выводится...
- есть идеи как бы сделать чтоб при выводе слова шли не по порядку а рандомом, и не повторялись в случаи рандома? |
|
|
Serg_pnz | Дата: 18.03.2009, в 14:35 | Сообщение №4 |
  АдминистраторПользователь №: 1 Сообщений: 2243
 | Код | 1
| style=\"font-size:".$size."px; line-height:".(1.2*$size)."px;\" |
Пример того, что в файле лежит дай. Строк с десяток, но с повторами или что там у тебя.
Кстати сам файл как засасываешь? | Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот |
|
|
shadow | Дата: 18.03.2009, в 15:25 | Сообщение №5 |
  Активный участникПользователь №: 520 Сообщений: 100
 | вот выкладываю, заточен под мои нужды и писал полностью сам, единственное что внем интересно так моя функция расчета размера тегов - задаем минимальный и максимальный размер... все остальное блок расчитает сам.... ГЫ как реализовать... - как всегда на толчке осенило....
genre_num.txt создается другим скриптом по запуску с крона, и содержит количество "жанров" : (присваевается $num)
12,0,1,7,23,45,0,6,.......
список самих жанров(названия) инклудится из конфига файлов и содержит:
$conff['genre'] = "анимация,боевик,вестерн,военный,......
ну и сам блок: (пару строчек заремил чтоб он был центральным, а с ними он боковой,)
Прикрепленные файлы:
 Скачать: 760 Bytes
|
|
|
Serg_pnz | Дата: 18.03.2009, в 16:54 | Сообщение №6 |
  АдминистраторПользователь №: 1 Сообщений: 2243
 | я так и думал... что тебе мешает юзать ассоциативный массив?
Код | 1
| $mass['<жанр>'] = <номер>; |
Потом ему сделаешь шафл (перемешивание) и потом вывод. | Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот |
|
|
patriot | Дата: 18.03.2009, в 20:30 | Сообщение №7 |
  УчастникПользователь №: 349 Сообщений: 92
 | по стилям. добавь к стилям ссылки
display:block; float:left
должно помочь |
|
|
shadow | Дата: 19.03.2009, в 11:15 | Сообщение №8 |
  Активный участникПользователь №: 520 Сообщений: 100
 | так, а подскажите, даже не знаю что придумать с такой проблемкой – в общем, этот блок (выложил выше) только так сказать отображает инфу, а есть еще меленький скриптик который генерит файлик "genre_num.txt" с количеством, так вот там всего лишь один запрос в бд и счетчик, работает так - подставляется слово в запрос и оно ищется в определенной таблице и записывается общее кол во таких слов...
все бы замечательно,… но наш блин… великий русский язык….
Когда подставляю «мелодрама» то все замечательно результат верный, а вот когда «драма» то соответственно засчитывает и то и то…
Запрос такой:
Код | 1
| ……sql_query("SELECT count(lid) FROM ".$prefix."_files WHERE genre LIKE '%драма%'")); |
Колонка «genre» допустим содержит:
«детектив,документальный,драма,исторический,мелодрама» что можно тут придумать?
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Отредактированно shadow 19.03.2009 г. в 11:16:14 |
|
|
patriot | Дата: 19.03.2009, в 11:43 | Сообщение №9 |
  УчастникПользователь №: 349 Сообщений: 92
 | проверять на полное соответствие
PHP - Код | 1 2 3
| <?php genre = 'драма' ?> |
ПС почему бы не воспользоваться готовым ) http://onlinews.ru/shop/mod_tags.html
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Отредактированно patriot 19.03.2009 г. в 11:44:40 |
|
|
shadow | Дата: 19.03.2009, в 12:05 | Сообщение №10 |
  Активный участникПользователь №: 520 Сообщений: 100
 | patriot, Гы так говорю же что поле "genre" не содержит отдельно слова например "драма" , а наборы слов, соответственно такого соответствия не будет, давно бы так уже сделал.... |
|
|
Serg_pnz | Дата: 19.03.2009, в 12:14 | Сообщение №11 |
  АдминистраторПользователь №: 1 Сообщений: 2243
 | Засасывай поле целиком, потом его эксплодь по запятым, сливай всё в один массив и родной пхп функцией для массивов посмотри количество совпадений. | Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот |
|
|
shadow | Дата: 19.03.2009, в 12:28 | Сообщение №12 |
  Активный участникПользователь №: 520 Сообщений: 100
 | а что будет с сайтом?, с сервером? выживет?
1500 полей, в каждом 3-6 слов. не хилый массивчек получится...
и того подсчет по массиву в виде переменой хранящейся в оперативке среди 6000 слов , и к тому же кол во поле каждый день увеличивается на 10! что будет дальше...
да конечно можно создать массив с нулевыми значениями, потом второй - брать из бд по 1-5 полей, посчитывать и увеличивать соответственные значения в первом массиве и прокручивать все это пока не дойду до конца базы, но такую реализацию я сам не осилю... 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Отредактированно shadow 19.03.2009 г. в 12:46:38 |
|
|
Serg_pnz | Дата: 19.03.2009, в 14:44 | Сообщение №13 |
  АдминистраторПользователь №: 1 Сообщений: 2243
 | shadow, может 1500 записей, а не полей? | Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот |
|
|
Serg_pnz | Дата: 19.03.2009, в 15:07 | Сообщение №14 |
  АдминистраторПользователь №: 1 Сообщений: 2243
 | Код | 1
| <?php
//эмулируем запрос
$str[] = 'кино,вино,домино';
$str[] = 'киносы,виносы,доминосы';
$str[] = 'кино,вино,домино';
$str[] = 'кинос,винос,доминос';
$str[] = 'киносы,виносы,доминосы';
$str[] = 'киносы,виносы,доминосы';
$str[] = 'киносы,виносы,доминосы';
$str[] = 'киносы,виносы,доминосы';
$str[] = 'драма,меладрама';
//ставлю foreach, но на самом деле тут должен быть while от запроса
foreach($str as $key => $val) {
$tmp = explode(',', $val);
foreach($tmp as $key2 => $val2) {
@$mass[$val2]++;
}
}
//результат работы
echo "<pre>";
print_r($mass);
echo "</pre>";
?> |
вернет
Цитата | Array
(
[кино] => 2
[вино] => 2
[домино] => 2
[киносы] => 5
[виносы] => 5
[доминосы] => 5
[кинос] => 1
[винос] => 1
[доминос] => 1
[драма] => 1
[меладрама] => 1
)
|
| Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот |
|
|
shadow | Дата: 19.03.2009, в 15:22 | Сообщение №15 |
  Активный участникПользователь №: 520 Сообщений: 100
 | Serg_pnz, ну я имел в виду кол во строк в бд таблицы.
(ну проще говоря 1500 файлов в модуле).
ну покрайней мере с рабочим примером )))
но на самом деле именно в моем случае мне уже подсказали просто LIKE "расписать" по подробней, получилось вот:
Код | 1
| sql_query("SELECT count(lid) FROM ".$prefix."_files WHERE genre LIKE 'драма%' OR genre LIKE '%,драма%'") |
вроде это перекрывает все варианты и когда только одно слово и когда оно в середине или в конце причем "мелодрама" не подходит...
просто и со вкусом....
Гы сейчас вот сижу жду часа Х, когда крон стартанет... посмотрим... |
|
|
Serg_pnz | Дата: 19.03.2009, в 16:29 | Сообщение №16 |
  АдминистраторПользователь №: 1 Сообщений: 2243
 | shadow, сделай как я тебе написал в #14 и не мучайся.
У тебя на каждое слово запрос что ли получается? А если ошибка в слове или список изменится? | Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот |
|
|
shadow | Дата: 19.03.2009, в 17:13 | Сообщение №17 |
  Активный участникПользователь №: 520 Сообщений: 100
 | при создании файла в админке - эти слова в ручную не вбиваются, вставляются из выподающего списка который берется из конфига, это же поле из конфига инклюдится и в сам - скрипт счетчик, который стартует тока 2 раза в сутки, больше и нет смысла.
не я не спорю что твой код лучше, можно и его прекрутить, ток у меня щас 5 клонов этого блока и счетчиков.... так в лом переписывать все..., щас в 18.00 москве пересчитае.. посмотрю результат...
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Отредактированно shadow 19.03.2009 г. в 17:14:59 |
|
|
shadow | Дата: 19.03.2009, в 18:29 | Сообщение №18 |
  Активный участникПользователь №: 520 Сообщений: 100
 | столько уже тут всего написано что я все же решил показать результат.
вот скрин с сайта, и 4 клона этого блока в 2х вариантах - в одном кол-во выводится а в другом используется как критерий размера...
P.C
ток не бейте, совсем не в корзину, но пока темка в топах....
оч нужно поднять свой форум, но пока там постов почти нет чтоб народ превлекать, кому не трудно оставте хотяб по одному посту или топику у меня на форуме... http://alfafilms.ru/forum/
тематика - фильмы, кинематограф.
Спасибо. (Сергей не сердись ) |
|
|
Serg_pnz | Дата: 19.03.2009, в 20:21 | Сообщение №19 |
  АдминистраторПользователь №: 1 Сообщений: 2243
 | shadow, да мне-то что - пости, только скоро на всех страницах будет внедрен редирект... Ну как скоро - по мере надоедания и настроения. ссылки в подписи на форуме уже прикрыты, скоро доберусь до каментов и постов в форуме, а так же инфе юзеров. | Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот |
|
|
|
Вы не можете ответить в тему анонимно, пожалуйста, войдите или зарегистрируйтесь!
|