Контакты
email:
skype:
© 2008 – 2015
#

Горизонтальная навигация ul по центру


Задача простая, только на первый взгляд. text-align не помогает, margin:auto работает только при фиксированной ширине. И вот она разгадка:

div#mainmenu, div#mainmenu ul { position:relative; }
div#mainmenu { float:right; right:50%; margin:38px 0px; width:auto; }
div#mainmenu ul { float:none!important; float:left; right:-50%; }


Пару слов о том как это работает:
- сначала мы прибиваем все к правой границе браузера и блок (#mainmenu) гарантированно имеет ширину равную всей области экрана. Затем мы сдвигаем его на 50% влево (right:50%;), после правая граница оказывается ровно посреди экрана.
- затем вложенный блок (сам список) принудительно уводится в левую область родительского блока (#mainmenu). Так как все слои имеют номинальную ширину в 100% то на данный момент ширина у списка (ul) получается равной 150%, а его сдвиг вправо приводит к получению его 100%ой ширины. Таким образом он оказывается всегда по центру относительно своего родительского элемента.
#

ИЕ шизоид или суицид IE


Все верстальщики знают не по наслышке о ИЕ. Некоторые мужественно сражаются, возвращая на место непонятно куда свалившиеся div'ы, поехавшие margin'ы и уплывшие padding'и, попутно сражаясь с PNGA и укрощая вложенные CSS-классы. Другие (более хитрые/ленивые/принципиальные) просто кладут на верстку под IE6 болт, в надежде заставить пользователя обновить браузер/почувствовать себя лохом/покинуть сайт.

Огромное количество сйтов официально отказалось от поддержки ИЕ. Да если мне не изменяет память, то и сам Майкрософт настоятельно «требует» от всех упдаторов виндовса обновить ИЕ на более новый.

И тем не мене «необразованные» пользователи интернета все еще используют ИЕ и плюются на всякие «уродливые и непонятные сайты» которые не работают у них «как надо». И вот для таких пользователей ставятся заглушки. Очень приятные штуки, которые ненавязчиво просят обновить устаревший браузер.
Вот один из сайтиков с которых можно скачать и установить симпатичную заглушку: http://jreject.turnwheel.com/
#

Критическая уязвимость DLE 8.2


Недостаточная фильтрация входящих данных в модуле восстановления пароля. Очень-очень опасно!

Ошибка в версии: только 8.2, версии ниже 8.2, а также актуальная версия 8.3 данной уязвимости не подвержены

Степень опасности: Очень высокая.

Как это работает:

Вы обращаетесь по адресу site/index.php?do=lostpassword&douser=1&lostid=

...и получаете свеже испеченый логи и пароль админа

Поэтому: следите за обновлениями и переименовуйте admin.php. А те подованы которые ломали этот сайт педики!

Скачать патч: Скачать патч
#

Картинка в стороне от текста без обтекания


К примеру есть на сайте набор вот таких блоков: картинка + заголовок + выдержка.
В коде соответственно имеем:

”"

Heading


text tex text text text text



Cуть проблемы в том что заказчик хочет картинку с одной стороны блока и текст с другой. И это при том что картинка может быть какого угодно размера.

Итак первое и очевидное сделать float:left; картинке, но тогда появится обтекание. Если бы знать размеры картинок - можно бы было задать ширину для выдержки и заголовка. Но в том то и дело что картинки эти могут быть любыми. Казалось бы без таблиц не обойтись, а не тут то было, можно:
div.post p{ 
display: table;
_height: 0;/*это для ИЕ5-6*/
zoom: 1;/*это для ИЕ7*/
}


Эта приблуда должна работать в Opera 7-8, Firefox 1.0, Safari 1.2.4, IE/win
#

Хак DLE ограничение длины новости


Не сложно догадаться, что я тесно связан с разработкой сайтов на коммерческой CMS - DLE.

И не давно столкнулся с проблемой которую никогда не видел. Оказуется длинна поста в fullstory ограничена в БД полем типа TEXT. Все что больше определенной длины вырезается.

Что бы избежать этой проблемы нужно указать тип LONGTEXT. Всего-то -)
#

Фап в интерпретатор PHP


Еще регулярные выражения и парочка полезных функций, честно скопипастеный где-то на просторах интернета:

Яндекс тИЦ
function cy($url){ 
preg_match("/value=\"(.\d*)\"/", join("", file('http://bar-navig.yandex.ru/u?ver=2&show=32&url=http://'.$url.'/')), $tic);
return($tic[1]!=""?$tic[1]:0); }


Яндекс число страниц в индексе
function ya_stat($url){
$str=file_get_contents("http://yandex.ru/yandsearch?numdoc=10&serverurl={$url}");
preg_match("\/(.*)нашл(.*)сь(.*)страниц(.*)/s", $str, $find); $res=$find[3];
if(preg_match("/(.*)ничего не найдено(.*)<\/title>/s", $str)) {$res=0;}<br>$res=str_replace(" ","",$res);<br>$res=str_replace("млн","000000",$res);<br>$res=str_replace("тыс.","000",$res);<br>return $res;}</code></pre> <br> <br> <b>Веб прокси</b><br> <pre><code>echo file_get_contents($_GET['q']);<br>$content=file_get_contents("http://урл.сайта/имя.скрипта?=".$url); </code></pre> <br> <br> <b>LiveInternet статистика</b><br> <pre><code>function listat($url){<br>$content = file_get_contents("http://counter.yadro.ru/values?site=".$url); <br>preg_match_all("|LI_([^ ]+) = (\d*);|",$content,$ok);<br>for($i=0; $i<count($ok[1]); $i++) $info[$ok[1][$i]]=$ok[2][$i];<br>return $info;}<br><br>$ff=listat($url);<br>$w_vis=floor($ff[week_vis]/7);<br>$w_hit=floor($ff[week_hit]/7);//Средняя посещаемость за последнюю неделю<br>$li_vis=$ff[day_vis];<br>$li_hit=$ff[day_hit];//И дневная посещаемость<br>echo "Week $w_vis / $w_hit, today $li_vis / $li_hit";</code></pre> <br> <br> Информация для счетчика <b>LiveInternet</b>. Показывается для всех сайтов, которые не закрыли отображение инфы на счетчике (даже если сама статистика закрыта). Удобно как анализировать чужие сайты, так и просматривать суммарную посещаемость своих. <div class="post-footer"> 13.11.09 / Категории: <a href="/blog/">Блог</a> / <a href="/blog/php/">PHP</a> / Теги: <a href="/tags/php/">php</a>, <a href="/tags/%D1%80%D0%B5%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%BE%D0%B5+%D0%B2%D1%8B%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5/">регулярное выражение</a>, <a href="/tags/%D0%BA%D0%BE%D0%B4/">код</a>, <a href="/tags/%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D1%8B/">скрипты</a><span class="com_link"><a href="/218-fap-v-interpretator-php.html#comment">Комментировать (0)</a></span> </div> </div> <div class="pagin"> « <div class="pages"> <a href="/">1</a><span class="nav_ext">...</span>242243244245246247248249<span>250</span>251 </div>» </div> </div> <a href="#0" class="cd-top">Вверх</a> <link href="//fonts.googleapis.com/css?family=Ubuntu:400,700,400italic&subset=latin,cyrillic" rel="stylesheet" type="text/css"> <script src="//code.jquery.com/jquery-2.1.3.min.js"></script> <script src="/templates/v/js/1.js?14"></script> </body> </html>