Инструменты web-мастера

Собственно то, что очень круто помогает мне в работе и сильно экономит время. Эти программы показывают кусок кода того места, на которое вы навели мышку, а также его css свойства.
Т.к. браузер Opera я считаю извращенством, то пишу только для IE и FireFox, хотя для первого где-то видел подобное.
IE: IE Developer toolbar – скачать с сайта разработчика
FireFox: Firebug – установить

Конечно же их функционал не ограничен лишь просмотром css, но использую я их только для этого.

No Comments | Filed under Новичкам

Редирект, скрипт редиректа

Наиболее внятный скрипт редиректа

<script language="JavaScript1.1″ type="text/javascript">
setTimeout(‘location.replace("
http://www.fixblog.ru")’, ‘3000′);
</script>
<noscript>
<meta http-equiv="Refresh" content="3; URL=http://www.fixblog.ru">
</noscript>

Все это конечно же в <head>. При включенном ява скрипте произойдет редирект на fixblog.ru через 3000 миллисекунд, что равно 3 секундам, при отключенном – тоже самое через три секунды.

No Comments | Filed under Новичкам

XSLT paging, или XSLT пейджинг – по русски

Долго искал в рунете подходящее, в итоге написал сам. Статья о том, как с помощью xslt сделать пейджинг. Подразумевается что каждая статья имеет свой уникальный ID, и идут они по порядку.

Объявим переменные:
<xsl:value-of select="$base_address" />
<!– Первая страница –>
<xsl:param name="page" select="1″/>
<!– Сколько статей на странице –>
<xsl:param name="limitperpage" select="7″/>
<!– Всего статей. Не всегда получается узнать, но если известно – хорошо. Служит, чтобы на последней (при листинге) странице не было ссылки "дальше" –>
<xsl:param name="limitrss" select="51″/>

Далее внутри шаблона самого:

<xsl:choose>
<!– Проверяем, не первая ли это страница, если нет, то выводим ссылку назад –>
<xsl:when test="$page &gt; $limitperpage">
<xsl:element name="a">
<xsl:attribute name="href">
<xsl:value-of select="$base_address" />/page_<xsl:value-of select="$page – $limitperpage"/>
</xsl:attribute>
Назад
</xsl:element>
</xsl:when>
</xsl:choose>

<!– Следующая страница –>
<xsl:choose>
<!– Проверяем, не последняя ли это страница, если нет, выводим next –>

<xsl:when test="$page &lt; $limitrss">
<xsl:element name="a">
<xsl:attribute name="href"><xsl:value-of select="$base_address" />/page_<xsl:value-of select="$page+$limitperpage"/>
</xsl:attribute>
Следующая
</xsl:element>
</xsl:when>
</xsl:choose>

Ну и если неизвестно сколько всего записей, то тогда просто:
<xsl:element name="a">
<xsl:attribute name="href"><xsl:value-of select="$base_address" />/page_<xsl:value-of select="$page+$limitperpage"/>
</xsl:attribute>
Следующая
</xsl:element>

No Comments | Filed under Новичкам

Wordpress и Sape, проблеммы индексации

Не хотели мои сайты на wordpress индексироваться sape‘овским роботом, не хотел и все тут.
Причем некоторые из них, например этот блог – индексировался на ура, а сделанные по шаблонной системе и одной и той же сборки – нет.
И вот сегодня – ура, ура, кричат фанфары – разобрался.
Итак, по пунктам, какие могут возникнуть проблемы:
1) Это конечно же UTF8, о чем я подумал первым делом. Исправляется заменой:
$sape = new SAPE_client();
на
$o[’charset’] = ‘UTF-8?;
$sape = new SAPE_client($o);
unset($o);

2) Использование mod_rewrite, красивых ссылок т.е.
Лечится изменением строчки
$sape = new SAPE_client();
на строчку
$o['request_uri'] = $_SERVER['REDIRECT_URL'];
$sape = new SAPE_client($o);
unset($o);

После всех махинаций получаем следующий код:

define(‘_SAPE_USER’, ‘1234qwertyuiop567890asdf’);
require_once($_SERVER['DOCUMENT_ROOT'].’/’._SAPE_USER.’/sape.php’);
$o['request_uri'] = $_SERVER['REDIRECT_URL'];
$o[’charset’] = ‘UTF-8?;
$sape = new SAPE_client($o);
unset($o);
echo $sape->return_links();

Где 1234qwertyuiop567890asdf – номер вашей папки в sape.
О том, какие плагины лучше использовать – напишу позже.

Увы, эти махинации мне не помогли, и я вообще не знал что делать.
Решил посмотреть логи апача – робот достукивается до страниц нормально.
Решил внимательнее рассмотреть страницы, и увидел следующий мета тег, оставленный заботливым
All-in-one-seo-pack
<meta name="robots" content="noindex,follow" />

В обще после долгих матюков и радости что я наконец нашел причину – отключил этот плагин (ибо особо его и не использовал) и наслаждался как саповский робот добавляет >1000 страниц

7 Comments | Filed under Fix, Новичкам

Таблица спецсимволов HTML

Внутри поста
Read the rest of this entry »

1 Comment | Filed under Новичкам

Как вставить PHP(Sape, Setlinks и т.п.) в Smarty

Есть у меня несколько сайтов, шаблоны на которых построены на технологии smarty. И когда они проиндексировались, встал вопрос: а как собственно поставить код сапы?

Все как всегда очень просто, вместо открывающего тега <?php ставим {php}, вместо закрывающего ?> ставим {/php}, и внутрь вставляем любой php код.

No Comments | Filed under Новичкам

Маскируем ссылки с помощью mod rewrite

Гораздо симпатичнее будет выглядеть ссылка вида http://fixblog.ru/sape, чем ссылка вида http://www.sape.ru/r.77b51afb98.php. Пример – блок партнеры справа.

Для этого используется mod rewrite, который должен поддерживать ваш сервер на apache (большинство платных хостингов поддерживают).

И так, создаем в корне папку, например partner, в ней файл sape.php.

В файл вставляем следующий код:

<?php $URL="http://www.sape.ru/r.77b51afb98.php";
header("Location:$URL");
exit();
?>

URL естественно заменяем на свой.

Далее в корне сайта открываем файл .htaccess (или создаем если его нет), и в него вставляем слеудующее:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^([A-Za-z]+)$ partner/$1.php [L]
</IfModule>

Первый код делает редирект пользователя на указанный URL, второй делает первый файл, находящийся по адресу /partner/sape.php, доступным по адресу /sape.

Соответственно можно создавать файлы с любыми именами, где имя файла (XXX), например partner/XXX.php будет соответствовать адресу /XXX

2 Comments | Filed under Fix, Новичкам

Прозрачный PNG в IE 6

Достигается на самом деле довольно-таки легко. Берем прозрачный png, берем следующий код:
<script type="text/javascript">
function fixPNG(element)
{
//Если браузер IE версии 5.5-6
if (/MSIE (5\.5|6).+Win/.test(navigator.userAgent))
{
var src;
if (element.tagName==’IMG’) //Если текущий элемент картинка (тэг IMG)
{
if (/\.png$/.test(element.src)) //Если файл картинки имеет расширение PNG
{
src = element.src;
element.src = "/blank.gif"; //заменяем изображение прозрачным gif-ом
}
}
else //иначе, если это не картинка а другой элемент
{
//если у элемента задана фоновая картинка, то присваеваем значение свойства background-шmage переменной src
src = element.currentStyle.backgroundImage.match(/url\("(.+\.png)"\)/i);
if (src)
{
src = src[1]; //берем из значения свойства background-шmage только адрес картинки
element.runtimeStyle.backgroundImage="none"; //убираем фоновое изображение
}
}
//если, src не пуст, то нужно загрузить изображение с помощью фильтра AlphaImageLoader
if (src) element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src=’" + src + "‘,sizingMethod=’scale’)";
}
}
</script>
Вставляем ПЕРЕД следующим html:
<div style=”background: url(some.png) no-repeat;” class=”someclass”><a href=”#”>Ссылка</a></div>
Или таким, если png вставляется не бекграундом:
<div class=”someclass”><img src=”some.png” /></div>
Остается добавить в css следющее:
.someclass {
filter:expression(fixPNG(this));
}

Все, теперь png во всех браузерах прозрачная!
Остается добавить – что если сверху png присутствуют какие-либо ссылки, или интерактивные поля (формы и т.п.), то они будут ниже картинки и не кликабельны, решается это просто, добавляется объекту, который нужно поставить выше position: relative;
На данном примере это выглядит так:
.someclass a {
position: relative;
}

17 Comments | Filed under Fix, Новичкам

Max-width, max-height, min-height, min-width в IE

Проблема – не работают эти свойства в Internet Explorer 6 и ниже версий. Решений в интернете нашел много, но большинство вешали браузер, либо просто не работали. Что заметил, совместная попытка использования замены max-height и max-width – приведет к сносу башни у IE, и он попросту зависнет. Но, ближе к делу:
max-width
#block {
max-width:100px;
width: expression(this.offsetWidth > 101?"100″:"this.offsetWidth");

}
max-height
#block {
max-height:100px;
height: expression(this.offsetHeight > 101?"100″:"this.offsetHeight");
}

Принцип действия понять не сложно – "если размер больше 100, ставь 100″

Что до min-height и min-width – тут проще, в IE6 они равносильны обычным width и height, и нужны только для firefox и opera.

9 Comments | Filed under Fix, Новичкам

Откуда взять эксклюзивную информацию

Метод незаконный, и не является руководством к действию. Это лишь одна из мыслей.

Основная проблема создания сайта для sape – где взять контент, чтобы яндекс не забанил за воровство?
Ответ собственно прост – скан книг. И если вы думаете что все книжки уже есть в Интернете – вы глубоко ошибаетесь. Зайдите в районную библиотеку, и возьмите пару книжек 80-90-х годов. Уникальность контента – примерно в 70% случаев, что в принципе не плохо. А с ценной сканера в 2-3 тысячи рублей – это становится практически бесплатным источником текста.
И создав около сотни уникальных страниц, можно смело воровать контент еще на 1000, для конспирации делая их страницами третьего уровня.

No Comments | Filed under Мысли, Новичкам