+3.20
Рейтинг

Виталий Никсенкин

Оптимизация дефолтного ls

  • Скопировать все содержимое файла comment.tpl и вставить его в файл comments_tree.tpl, вместо строки
    {include file='comment.tpl'}  

    тоже самое сделать, с topic_list.tpl + topic.tpl

    Итого — full time на топиках с 1000+ комментариев будет без тормозов.
  • Удалить нахуй у себя файл /engine/lib/external/CSSTidy-1.3/css_optimiser.php
  • И еще вот это.
    Найти в файле /engine/modules/text/Text.class.php
    213 строчку:
    return array($sTextShort,$sTextNew,$sTextCut);

    Заменить ее на строчку:
    return array($sTextShort,$sTextNew,$sTextCut? htmlspecialchars($sTextCut): null);

Еще, если будут напряги на хостинге с кешем, то отключить его просто. В разы ускорит публицации. Ибо кеш в livestreet говянно написан.
Отключается это так:
в файле config.php найди эту строчки:
$config['compress']['css']['merge'] = true;
$config['sys']['cache']['use'] = true;

и заменить true, на false.

RSS в livestreet



//

Алсо, можно подписаться, на email подписки.


Еще, можно читать этот блог, в Twitter, или Facebook.

Проблемы с занятым местом

Со стороны, админа сервера:
Очень часто при работе с ISPmanager возникает проблема с «утечкой» места». Панель показывает, что занято пользователем места больше, чем в сумме с
составляют файлы пользователя в домашней директории (/home/usr, /var/www/usr) и базы данных.

На самом деле в место, занятое пользователем включается также и логи apache, nginx, которые часто занимают много места.

В первую очередь при недостатке места нужно очистить логи в разделе Журнал ISPmanager, и настроить ротацию логов (в частности уменьшить кол-во сохраняемых архивов).
Если же проблема не исчезла, то можно найти все файлы, которые считаются в квоте командой
find / -group имя_пользователя.
Ну и на последок можно выполнить ремонт квот из ISPmanager.

Иногда, бывает, что заканчивается место, у хостера, на ноде.
Warning: Unknown: open(/var/www/a2k/data/mod-tmp/sess_ea4333e3b35d18afc952a58f7eeb9ff7, O_RDWR) failed: No space left on device (28) in Unknown on line 0
Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/www/a2k/data/mod-tmp) in Unknown on line 0
Подключаемся по ssh, смотрим сравнительный вывод df -h и df -i

Еще, хочу отметить, что Пользователь в ISPmanager удаляется(сразу) при удалении аккаунта хостинга(услуги) в BILLmanager (Пользователь ISPmanager != Клиент BILLmanager).
А бекапы этого пользователя ISPmanager(если делались) еще живут некоторое время. До глобальных ребутов обычно.

Со стороны, админа vds ISP manager.
Обязательно всегда проверяйте, в панели — Информация о системе(/manager/ispmgr?startpage=sysinfo) — там где hdd, двойным щелчком. (/dev/simfs)
Остальные подсчеты, в ISP панелях могут сбиваться. А ремонт дисковых квот, не доступен, для vds обычно.

Точно так же, проверяйте ротацию логов. Что хранятся последние там 5 архивов, потом удаляется.
А если все проверено, но по /dev/simfs все равно занимает больше, чем /www/ всех ваших пользователей. Ну, вы же следите, знаете что к чему.

То вперед в консоль, du -h --max-depth 1 /
и далее смотреть от корня, где вам кажется, занимать не должно :)

Полезные советы:
repquota -g / | grep user (покажет сколько места занято у пользователя)

ISPmanager использует собственный механизм ротации логов, есть задача rotate в crontab пользователя root, работает если запускается она в период с 00 до 01 часов, она ротирует логи и запускает скрипт статистики webstat, конфиг его лежит в /usr/local/ispmgr/etc/rotate.conf, но руками него править не надо, настраивается ротация логов через ISPmanager в меню WWW-домены ;)
Если какой-то лог сильно разросся, то его надо просто обнулить
cp /dev/null /home/httpd-logs/sitename.ru.error.log

Еще, бывает, что в ISPmanager Pro перестает скачивать и закачивать файлы на сервер.
Увеличиваем лимит на кол-во открытых файлов (на самой VDS значение в limits.conf)
например: * — nofile 931200000

Подробнее про quotacheck
0) заходим в ssh
1) убиваем апач
2) убиваем энжынкс (если есть)
3) убиваем остальные пишущие на диск процессы, вроде вочдогов
3) quotacheck -bcguvf /dev/<диск>
где <диск> — раздел, который нужно проверить. например, /dev/sda3
4) ждем (полтора-терабайтный раздел, занято 900гб, сканировался минут 20)
5) если все ок, то радуемся.
также стоит проверить квоты в панели — у нас они все сбросились на 0 (т.е. неограниченно). если то же самое будет — выставить квоты вручную (да, ад)

Если кому-то нужен аккуант на forum.ispsystem.com/ru/

forum.ispsystem.com/ru
Ну, вы знаете, там чтобы регнуться, нужна лицензия.

Так вот, у меня кое-что накопилось. Могу помочь создать там вам аккуанты. Кому нужно, пишите мне в лс, я скажу что ввести при регистрации.

Что такое Gravatar?



Как загрузить свой аватар?
Регистрируемся на сайте gravatar.com, активируем аккаунт, жмакнув на ссылку в письме, которое будет выслано вам после регистрации. Задаем пароль для аккаунта и логинимся. Внутри системы загружаем свой аватар. Думаю, вы легко разберетесь, там все просто. Вот и все, теперь на сайтах поддерживающих глобальные аватары вам никогда не придется загружать его снова.

Поясню немного про рейтинги аватара в системе. Для аватара можно задать 4 рейтинга:
  • G – простая и безобидная аватарка, которая может отображаться на любых сайтах
  • PG – аватарка может содеражть грубые жесты, какие-либо провокационные надписи, грубые слова и т.п.
  • R – аватара содержит насилие, обнаженную натуру, или изображение наркотиков
  • X – на аватаре изображен жесткий секс или насилие
Выставьте соответствующий рейтинг для своей аватарки, ведь не все веб-мастера захотят отображать вашу аватарку, если на ней изображено что-то выходящее за социальные рамки. Вы же не хотите, чтоб аватара с листиком марихуаны вылезла на блоге для детишек?

Информация для веб-мастеров
Картинка аватара имеет следующий URL:
www.gravatar.com/avatar/3b3be63a4c2a439b013787725dfce802&s=50&r=g&d=monsterid

где:
  • 3b3be63a4c2a439b013787725dfce802 – это md5 сумма email, в PHP для этого есть специальная функция, например: md5(‘your_email@gmail.com’);
  • s – это размер аватара в пикселях
  • r – рейтинг аватары, про который я писал чуть выше
  • d – вариант картинки, возвращаемый системой, если для этого email еще не задан аватар

Как сделать комбинированную форму комментирования

Точно так же, как у нас тута.
Комменты: livestreet // Vkontakte // Facebook
Переключаться среди них.

Так вот, в wordpress это делается так:
1. Для начала нужно сделать три таба в форме комментирования. В первом табе мы расположим комментирование через OpenID, во втором — стандартные поля для ввода данных, а в третьем — ссылку для входа в блог под своим логином и паролем с переадресацией на ту же страницу.
Сделать простейшие табы поможет этот пост.
2. Для вставки комментирования через OpenID в первом табе используем плагин Comments with OpenId. Содержимое первого таба будет выглядеть примерно так:
<?php comments_with_openid(); ?>
<input type='text' name='openid_identifier' id='openid_identifier' class=textfield' tabindex='4' />

3. Содержимое второго таба будет выглядеть примерно так:
<input type="text" name="author" id="author" value="<?php echo $comment_author; ?>" size="10" tabindex="1" /> имя
<input type="text" name="email" id="email" value="<?php echo $comment_author_email; ?>" size="10" tabindex="2" /> почта
<input type="text" name="url" id="url" value="<?php echo $comment_author_url; ?>" size="10" tabindex="3" /> сайт

4. В третий таб нужно вставить ссылку на страницу входа с переадресацией на исходную страницу после удачного логина. Код примерно такой:
<a href="<?php echo get_option('siteurl'); ?>/wp-login.php?redirect_to=<?php echo urlencode(get_permalink()); ?>">Вход</a>

5. Ну и последний шаг — нужно найти, где вызывается форма комментирования, и вместо нее использовать получившийся у вас код. Обычно форма комментирования находится в файле comments.php, иногда для нее создают отдельный файл, например, comment-form.php.

Как сделать простые табы в блоге на jQuery

1. Для начала убедитесь, что в блоге подключена библиотека jQuery.
Как подключить jQuery?
Для начала скачиваем библиотеку jQuery с сайта разработчиков.
В большинстве браузеров скачивается файл, название которого выглядит примерно так: jquery-1.4.2.min.js
Однако в некоторых браузерах этот файл не скачивается, а открывается, как обычный текстовый. И это понятно, ведь он и является по сути обычным текстовым файлом.
Если вместо скачивания файл пытается открыться, то в окне, которое показывает содержимое этого файла, скопируйте путь к нему, а потом воспользуйтесь менеджером закачки.

Обычно js-скрипты записываются в специальную папку, которая находится в папке с вашей темой.
При открытии страниц блога в браузере первым делом загружается все, что прописано в файле header.php (находится в папке вашей темы оформления). Вот с этим файлом и будем работать. Откройте его и найдите такие строчки:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>>
<head profile="http://gmpg.org/xfn/11">

Вот сразу после них нужно вставить указание подгружать библиотеку jQuery:
<script type="text/javascript" src="<?php bloginfo('template_url'); ?>/js/jquery-1.4.2.min.js"></script>

Обратите внимание на эту строчку, особенно на то, что записано в простых скобках внутри src="..." — это путь к библиотеке, которую мы загрузили на сайт. Код автоматически вставляет путь к теме, которую вы используете, а js — это и есть та папка, которая находится в папке вашей темы, и в которую мы закачали файл.
Все, библиотека jQuery подключена.

Как загружать jQuery с сайта Google?
Сделать это достаточно легко — нужно удалить вызов этих скриптов из шаблонов вашей темы (обычно это прописано в header.php или footer.php), и добавить в файл functions.php такой код:
add_action( 'init', 'jquery_register' );
function jquery_register() {
if ( !is_admin() ) {
    wp_deregister_script( 'jquery' );
    wp_register_script( 'jquery', ( 'http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js' ), false, null, true );
    wp_enqueue_script( 'jquery' );
   }
}

Этот код заставит скрипт jquery.min.js грузиться напрямую из хранилища Google.

2. Откройте файл, в котором нужно сделать табы (например, single.php), и вставьте в него такой код:
<ul class="tabs">
    <li><a rel="nofollow" href="#tab1">Таб1</a></li>
    <li><a rel="nofollow" href="#tab2">Таб2</a></li>
    <li><a rel="nofollow" href="#tab3">Таб3</a></li>
</ul>

<div class="tab_container">

    <div id="tab1" class="tab_content">
      Содержимое первого таба
    </div>

    <div id="tab2" class="tab_content">
      Содержимое второго таба
    </div>

    <div id="tab3" class="tab_content">
      Содержимое третьего таба
    </div>

</div>

Как видите, это очень простая структура. Сначала идет список табов, потом — содержимое табов. Для элементов сразу заданы стили. Чтобы придать всему этому красивое, ненавязчивое оформление, нужно описать стили для всех этих элементов.

3. Откройте файл style.css и вставьте в него код, задающий оформление используемых нами элементов.
ul.tabs { margin: 0 0 0 20px; padding: 0; float: left; list-style: none; height: 32px; width: 100%; }
ul.tabs li { float: left;   margin: 0; padding: 0; height: 31px; line-height: 31px; border: none; margin-bottom: -1px; overflow: hidden; position: relative; background: #fff;  }
ul.tabs li a { text-decoration: none; color: #aaa; display: block; font-size: 1.0em; padding: 0 10px; border-bottom:#fff 1px solid; }
ul.tabs li a:hover { background: #fff;color: #000; border-bottom:#fff 1px solid; }
html ul.tabs li.active { background: #fff; border-top-left-radius:5px; border-top-right-radius:5px; border-top: 1px solid #eee; border-left: 1px solid #eee; border-right: 1px solid #eee; color:#000; border-bottom: #fff 1px solid; }
.tab_container { overflow: hidden; clear: both; float: left; width: 100%; background: #fff; margin-bottom:0px; background:#fff; border-top:#eee 1px solid;}
.tab_content { padding:0; }
html ul.tabs li.active a, html ul.tabs li.active a:hover {color:#000;}

В примере оформления для светлых блогов в белым фоном. Вы можете поиграть с этим оформлением, изменив его под дизайн своего блога. Ну и последний шаг — это подключение java-скриптов, чтобы совместить табы, оформление, и сделать красивое переключение между ними.

4. Откройте файл header.php и вставьте в него код скрипта:
<script type="text/javascript">
$(document).ready(function() {

    //When page loads...
    $(".tab_content").hide(); 
    $("ul.tabs li:first").addClass("active").show(); 
    $(".tab_content:first").show(); 

    //On Click Event
    $("ul.tabs li").click(function() {

        $("ul.tabs li").removeClass("active"); 
        $(this).addClass("active"); 
        $(".tab_content").hide(); 

        var activeTab = $(this).find("a").attr("href"); 
        $(activeTab).fadeIn(); 
        return false;
    });

});
</script>

Этот скрипт переключает табы с затуханием, запоминает активный таб, при загрузке страницы делает активным первый таб.

Второй способ.
Первый способ, был основан на списках, в которых табами служили специальные ссылки. Эти ссылки показывали содержимое табов, оформленное особым образом и активируемое с помощью скрипта. Второй способ, попроще — нет эффектов во время смены содержимого табов, но и нет лишних внутренних ссылок для активации табов.
1. Откройте файл, в котором вы будете делать табы (обычно это single.php илиsidebar.php) и вставьте в него такой код:
<dl class="tabs">
                <dt class="selected">Таб1</dt>
                <dd class="selected">
                    <div class="tab-content">содержимое первого таба</div>
                </dd>                                                               
                <dt>Таб2</dt>
                <dd>
                    <div class="tab-content">содержимое второго таба</div>
                </dd>
                <dt>Таб3</dt>
                <dd>
                    <div class="tab-content">содержимое третьего таба </div>  
                </dd>                           
            </dl>

2. Как видите, табы и их содержимое находятся в одной таблице. Чтобы они приобрели нужное оформление, отредактируйте файл style.css, вставив в него код:
.tabs { width:400px; overflow:hidden; margin:0; zoom:1; padding:1px ;position:relative; }
.tabs dt { float:left; line-height:2; height:2em; background:#fff; border:1px solid #ccc; border-bottom:0; padding:0 1em; position:relative; left:35px; margin-right:1px; cursor:pointer; }
.tabs dt:hover { background-color:#ccc; }
.tabs dt.selected { border-color:#aaa; background:#fff; z-index:3; cursor:auto; }
.tabs dd { background:#fff; display:none; float:right; width:100%; margin:2em 0 0 -100%; position:relative; z-index:2; }
.tabs dd.selected { display:block; }
.tabs .tab-content { background:#fff; border:1px solid #ccc; padding:20px 20px 10px 20px; }

В этом примере кода ширина табов равна 400 px, фон белый, цвет шрифтов черный, рамка вокруг табов серая.
3. Чтобы активировать табы и автоматически выделить первый, нужно подключить скрипт. Откройте файл header.php, и вставьте в него такой код:
<script type="text/javascript">
            $(function(){
                $('dl.tabs dt').click(function(){
                    $(this)
                        .siblings().removeClass('selected').end()
                        .next('dd').andSelf().addClass('selected');
                });
            });
        </script>

Табличная верстка упрощает использование табов, делает их более логически правильными, а несложный скрипт отслеживает, чтобы первый таб всегда был активирован при загрузке страницы.

Система блоков

Если пробежаться глазами по сайтам, созданным с ее помощью несложно заметить, что большинство из них наследует две колонки стандартных шаблонов.
Но ведь LS может похвастаться простой, но от этого не менее функциональной системой блоков. Почему владельцы сайтов не используют ее? Возможно, дело в документации?

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

и так:
<div class="container">
            <div class="header">
            </div>
            <div class="content">
                <div class="leftside">
                </div>
                <div class="maincontent"></div>
            </div>
            <div class="sub-content">
            </div>
            <div class="footer"></div>
        </div>

Небольшое замечание. div.leftside будет содержать стандартные блоки групы right системы, которые выводятся в обоих стандартных шаблонах файлом sidebar.tpl.
В div.header и div.sub-content мы добавим созданные нами и размещенные в группы upper и center соответственно.

Читать дальше →