xandeadx.ru Блог музицирующего веб-девелопера

PHPПолучаем город по IP адресу с помощью сервиса IpGeobase

Опубликовано в
<?php
 
/**
 * Возвращает информация об IP адресе
 */
function get_ip_info($ip)
{
    $postData = "
        <ipquery>
            <fields>
                <all/>
            </fields>
            <ip-list>
                <ip>$ip</ip>
            </ip-list>
        </ipquery>
    "; 
 
    $curl = curl_init(); 
 
    curl_setopt($curl, CURLOPT_URL, 'http://194.85.91.253:8090/geo/geo.html'); 
    curl_setopt($curl, CURLOPT_POSTFIELDS, $postData); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
 
    $responseXml = curl_exec($curl);
    curl_close($curl);
 
    if (substr($responseXml, 0, 5) == '<?xml')
    {
        $ipinfo = new SimpleXMLElement($responseXml);
        return $ipinfo->ip;
    }
 
    return false;
}
 
// пример использования
$ipinfo = get_ip_info($_SERVER['REMOTE_ADDR']);
echo $ipinfo->city; // город
echo $ipinfo->region; // регион
echo $ipinfo->district; // федеральный округ РФ
 
?>

DrupalПрячем форму комментирования и показываем её только по клику на ссылке "Отправить комментарий"

Дефолтная форма комментариев занимает кучу места на странице. Поэтому хорошим решением будет скрыть её, и показывать только когда пользователь захочет оставить комментарий.

Первым шагом прячем форму комментариев для пользователей, у которых включён javascript. Для этого в css файл добавляем:

.js .blog + #comments #comment-form { display: none; }

Вместо .blog указываем класс, которым помечены ноды. Например, если комментарии разрешены для материала типа Story (Заметка), то класс у ноды будет story и селектор соответственно:

DrupalКак обновлять Drupal

Опубликовано в

Чтобы обновить Drupal в рамках одной мажорной версии (6.x → 6.y или 7.x → 7.y), нужно проделать следующее:

  1. Скачиваем последнюю стабильную версию.
  2. Бэкапим БД и папку с друпалом.
  3. Логинимся на сайте под админом, не закрываем окно браузера.
  4. Выключаем сайт (admin/config/development/maintenance).
  5. Заливаем новую версию друпала поверх старой.
  6. Запускаем мастер обновления http://example.com/update.php
  7. Включаем сайт.

РазноеКак установить код Sape на страницах форума vBulletin

Опубликовано в

Шаг 1: добавление модуля

Заполняем форму по адресу АдминцентрПродукты и модулиДобавить новый модуль:

Продукт: vBulletin
Местоположение модуля: global_start
Заголовок: Sape
Порядок выполнения: 5
Код PHP модуля:

define('_SAPE_USER', 'ваш_уникальный_номер'); 
require_once($_SERVER['DOCUMENT_ROOT'] . '/' . _SAPE_USER . '/sape.php'); 
$sape = new SAPE_client();
$sapeLinks = '<div style="font-size:10px; text-align:center;">' . $sape->return_links() . '</div>';

Модуль включен: Да

DrupalМодуль Comment Notify — почтовые уведомления о новых комментариях

Опубликовано в

Описание

Модуль Comment Notify позволяет подписываться на уведомления о новых комментариях. Зарегистрированные пользователи могут подписываться на уведомления о комментариях оставленных в созданных ими темах. Можно подписываться как на все комментарии к определённой ноде, так и на ответы только к своим комментам.

Установка

  1. Скачиваем модуль.

  2. Распаковываем в папку sites/all/modules.

DrupalСниппет вывода последних не утверждённых комментариев

Опубликовано в

Сниппет полезен прежде всего администраторам.

<?php
$comments = db_query("
  SELECT nid, comment, timestamp, name
  FROM {comments}
  WHERE status = 1
  ORDER BY cid DESC
  LIMIT 0, 5
");
 
$html = '';
while ($comment = db_fetch_object($comments)) {
  $html .= '<li>';
  $html .= l(format_date($comment->timestamp, 'small'), 'node/' . $comment->nid) . ', '; // дата
  $html .= '<b>' . check_plain($comment->name) . '</b>:<br />'; // автор
  $html .= check_plain(drupal_substr(strip_tags($comment->comment), 0, 50)); // комментарий
  $html .= '</li>';
}
 
echo $html ? '<ul>' . $html . '</ul>' : 'пусто…';
?>

PHPУстановка xCache на Windows

Опубликовано в

1. Скачиваем бинарники последней стабильной версии под Windows и вашу версию PHP.

2. Копируем файл php_xcache.dll в вашу php extensions директорию.

3. Копируем содержимое xcache.ini в ваш php.ini.

4. Настраиваем xCache:

В php.ini комментируем либо удаляем две строчки из секции [xcache-common]:

zend_extension = /usr/local/lib/php/extensions/non-debug-non-zts-xxx/xcache.so
zend_extension_ts = c:/php/extensions/php_xcache.dll

Там же раскомментирываем строчку:

extension = php_xcache.dll

DrupalПишем модуль утверждения комментариев в один клик. Часть 2

В первой части был написан модуль, для одобрения анонимных комментариев в один клик. В этой части добавим к нему AJAX функции.

DrupalПишем модуль утверждения комментариев в один клик. Часть 1

В первой части мы напишем модуль который добавит каждому не опубликованному комментарию новое действие "опубликовать", помимо уже присутствующих там удалить, изменить и ответить. Во второй части добавим немного Javascript-а и сделаем это действие на AJAX.