.

#1 RX pharmacy affiliate program!

То что доктор прописал!


6 августа 2009

Плагин Wordpress своими руками

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5.00 из 5)

Решил уже добить своё детище Always Last — примочка к WP, добавлящая последний комментарий с заданным содержимым — в моем случае содержимое — это 3 самые обсуждаемые темы на блогах в рунете (это дело конечно же грабится из Яндекс Блогов).

Как это было сделано раньше (тут можно и без критики — делалось на коленке «лишь бы работало»)

wp-comments-post.php

перед последней строчкой wp_redirect($location); уже после обработки добавления обычного комментария, добавил добавление своего

$comment_author       = 'Always last';
$comment_author_email = 'lasted@yandex.ru';
$comment_author_url   = 'http://blog.gtalex.ru/';
//$comment_content = iconv(«WINDOWS-1251», «UTF-8», «Самое обсуждаемое на блогах:\n»);
$comment_content = 'Самое обсуждаемое на блогах:';

$cashe = @file('top3.cashe');
list($time, $ids, $themes) = unserialize($cashe[0]);
foreach($themes as $theme) {
//    $comment_content.= iconv(«WINDOWS-1251», «UTF-8», $theme."\n");
$comment_content.= '<br/>'.$theme;
}

$commentdata = compact('comment_post_ID', 'comment_author', 'comment_author_email', 'comment_author_url', 'comment_content', 'comment_type', 'user_ID');

$comment_id = wp_my_comment( $commentdata );

wp-includes\comment.php

сюда добавил функцию непосредственно добавляющую комментарий

function wp_my_comment( $commentdata ) {

global $wpdb;

$commentdata['comment_post_ID'] = (int) $commentdata['comment_post_ID'];
$comment_post_ID = $commentdata['comment_post_ID'];
$commentdata['user_ID']         = (int) $commentdata['user_ID'];

// если в комментариях уже был комментарий от  'Always last' — удаляем
$id = $wpdb->get_var(«SELECT comment_ID FROM $wpdb->comments WHERE comment_post_ID = '$comment_post_ID' and comment_author = 'Always last' LIMIT 1»);

if ($id>1) {
wp_delete_comment($id);
}

sleep(1);

$commentdata['comment_author_IP'] = preg_replace( '/[^0-9., ]/', '',$_SERVER['REMOTE_ADDR'] );
$commentdata['comment_agent']     = $_SERVER['HTTP_USER_AGENT'];

//    $commentdata['comment_agent']     = $id;

$commentdata['comment_date']     = current_time('mysql');
$commentdata['comment_date_gmt'] = current_time('mysql', 1);

$comment_ID = wp_insert_comment($commentdata);
return $comment_ID;
}

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

В общем решил я оформить это дело в виде плагина (эх страшно даже).

Во первых я решил убрать прямую работу с базой — вставка комментария, удаление и т.д. Краткость — сестра таланта, да и побыстрее будет работать. :) Просто берем содержимое файла и в момент вывода странички с комментариями, выводим последним.

Плагин получился до безобразия простой и что удивительно — рабочий (с первого раза завелся).

Вот непосредственно код файла AlwaysLast.php

<?php
/*
Plugin Name: Always Last
Plugin URI: http://blog.gtalex.ru
Description: Insert Always Last comment
Version: 1.0.0
Author: GTAlex
Author URI: http://blog.gtalex.ru
*/

/*  Copyright 2009  GTAlex  (email : anubis3d@gmail.com)

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110—1301  USA
*/

function GT_AlwaysLast ()
{
$comment_content = 'Самое обсуждаемое на блогах:';

$cashe = @file('top3.cashe');
list($time, $ids, $themes) = unserialize($cashe[0]);
foreach($themes as $theme) {
//    $comment_content.= iconv(«WINDOWS-1251», «UTF-8», $theme."\n");
$comment_content.= '<br/>'.$theme;
}
echo «<li> <cite> Always Last </cite> said:\n»;
echo «<blockquote>».$comment_content."</blockquote></li>\n";
return true;
}
?>

В плагине подрубаем функцию выводящую нужный комментарий. Закидываем получившийся файлик в папку с плагинами (желательно под плагин тоже создать папочку). Из панели управления активируем плагин.

Для того чтоб заработало, ещё необходимо подправить  файлик wp-content\themes\Ваша Тема\comments.php

После строчки

<?php endforeach; /* end for each comment */ ?>

Добавляем вызов нашей функции

<?php if ( function_exists('GT_AlwaysLast') ) GT_AlwaysLast(); ?>

Вуаля — Готово!

Результат работы плагина можно увидеть в любом посте — последний комментарий будет от Always Last.

При написании плагина и сего поста были использованы следующие материалы (если есть желание сваять плагинчик — очень советую всё изучить — изложено наглядно и понятно).

Делаем плагины для WordPress. Часть 1

Делаем плагины для WordPress. Часть 2

Делаем плагины для WordPress. Часть 3

P.S.

При наличии времени нужно будет довести плагинчик до ума — во первых сделать, чтоб не приходилось в ручную править comments.php, а во вторых сделать настройку для плагина, где можно было бы редактировать Юзера, от которого идет комментарий и непосредственно Текст сообщения. Как такое сделать, опять же, подробно расписано в вышеупомянутых статьях.

У меня берется из файла — т.к. именно в него я сохраняю результат парсинга Я.Блоги.

Дальнейшее обсуждение, новые версии и пр. перенесено на форум в одноименную ветку
Wordpress своими руками

Post to Twitter Tweet This Post

рубрики: Linux, WordPress, Новости / Обзоры, Полезности, Программирование, Размышления | Комментарии (19)

6 августа 2009

MC Light — удачная замена Midnight Commander

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Не было оценок)

Поставил себе сегодня вместо всемизвестного Midnight Commander его форк

cd /usr/ports/misc/mc/

make deinstall

cd /usr/ports/misc/mc-light

make

make install

Данное ответвление — продукт российского разработчика, поэтому мне ближе.

Рекомендую всем работающим с консоли.

P.S.
Обсуждение программы, новые версии и другую полезную информацию советую посмотреть на форуме в ветке MC Light — удачная замена Midnight Commander

Post to Twitter Tweet This Post

рубрики: Linux | Комментарии (6)

12 марта 2009

Настройка FreeBSD с нуля — Apache, PHP, MySQL, mc, webmin, proFTPd ...

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (14 оценок, среднее: 3.57 из 5)

freebsd

ВСЕМ ПРИВЕТ!  Ура — наконец то я победил фрюху!

Ухх ... Поимел первый опыт общения с этой чудесной операционной системой — инженера КейВеба угодили блин — до этого на серверах строго Красную Шапку ставили — а тут на тебе :)

Даунгрейд — жестокая штучка (а что вы хотели ?! — кризис ведь — экономим) -  грубо говоря просто дали новый сервер — а конкретнее — поставили новые винты с абсолютно голой FreeBSD 7.1

В итоге почти 2 дня «знакомства» — и вроде бы (тьфу тьфу тьфу) — рабочий сервак  (правда еще думаю поднастроить придется).

Приведу ниже выдержки из настройки своей фрихи (а статьи которыми я пользовался можно найти в моих закладках на деликиоусе) — ИТАК :

  • Почему то не пускает по ssh — совместно с саппортом вычисляем, что в putty галочка в секции SSH на версии протокола стоит не там где надо (надо 2 only)
  • С интересом обнаружил, что на системе даже wget не стоит — попробовал поставить из портов — сразу не встал — гугл — оказывается в фрихе есть аналогичный инструмент fetch
  • Читать полностью »

Post to Twitter Tweet This Post

рубрики: Linux, Полезности | Комментарии (14)

21 сентября 2007

К вопросу о резервном копировании ...

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Не было оценок)

BackupRecovery

Небольшое лирическое отступление:

Окончательно я утвердился в мнении что, совсем я не писатель — до Давыдова и Майнаса как до Китая пешком :) Поэтому дабы не давить из себя непонятно что, пришел к выводу — делать посты по своей же текущей работе. Т.е. выводить в свет те проблемы и решения которые меня в данный момент занимают. Данный вывод позволил увидеть мир нижеследующему посту :)

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

Дабы всё это чудо в один прекрасный момент не погибло на умершем винте необходимо регулярно бэкапить. Конечно же существует масса софта для подобного действа, но я предпочитаю свой родной самописный скриптик + крон.

Не буду более томить — «Скрипт в студию!»: Читать полностью »

Post to Twitter Tweet This Post

рубрики: Linux, Полезности, Программирование | Комментарии (25)

17 августа 2007

Настраиваем «Дедик» (выделенный сервер)

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (3 оценок, среднее: 3.67 из 5)

Предыдущая статья в этой ветке Полезняшки в -nix системах получилась несколько скомканная т.к. пытался вспомнить нужные полезности и сразу в статью — сейчас буду более последовательным, потому, что мне как раз в Кейвебе проинитили свеженький дедик (панель не заказывал). Так что статью буду писать параллельно с настройкой — так точно ничего не упущу.

Итак — из письма имеем айпишник и рутовый пароль ...

Читать полностью »

Post to Twitter Tweet This Post

рубрики: Linux | Комментарии (10)