Проброс тунеля к локальному сайту из интернета при помощи сервиса ngrok.com

Отправлено said от чт, 12/01/2016 - 19:05

1. Cкачиваем https://ngrok.com/download
2. Распаковываем архив
3. Запускаем тунель

./ngrok http -host-header=rewrite my_local_site.loc:80

Панель для мониторинга доступна тут
http://localhost:4040/

Создание собственной ajax-команды

Отправлено said от ср, 11/30/2016 - 10:04

Собственная ajax-команда в drupal 7 создается с помощью следующего кода, помещенного в js скрипт:

(function($, Drupal) {
  Drupal.ajax.prototype.commands.afterAjaxCallbackFilter = function(ajax, response, status)
  {
    alert(response.data);
  };
}(jQuery, Drupal));

После этого в ajax-обработчике запроса эта команда используется следуюзим образом.

$commands[] = array (
  'command' => 'afterAjaxCallbackFilter',
  'data' => 'some data',
);

 

Теги

Поиск файлов по содежимому

Отправлено said от чт, 11/17/2016 - 12:39

Для поиска файлов по содержимому через консоль можно использовать команду find

find ./ -name "*txt" -exec grep -l "искать этот текст" {} \;

Будут найдены все файлы в текущий директории (включая вложенные), имя которых оканчивается на txt и которые содержат текст "искать этот текст"

Теги

Решение проблемы доступа к приватному файлу

Отправлено said от ср, 11/16/2016 - 14:25

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

Чтобы решить эту проблему, необходимо реализовать hook_file_download_access с логикой проверки доступа к файлу.

Пример простейщей проверки, при которой доступ расрешается для всех авторизованных пользователей

Теги

Запред ввода в текстовое поле любых знаков, кроме цифр

Отправлено said от вт, 10/18/2016 - 10:27
$(document).ready(function(){
  $("input").keydown(function (e) {
    if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 110, 190]) !== -1 ||
      (e.keyCode === 65 && (e.ctrlKey === true || e.metaKey === true)) || 
      (e.keyCode >= 35 && e.keyCode <= 40)) {
         return;
    }

    if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
      e.preventDefault();
    }
  });
});

 

Теги

Работа с репозиторием на удаленном сервере

Отправлено said от пн, 10/10/2016 - 09:44

на удаленном сервере создаю репозиторий и устанавливаю настройку

git config receive.denyCurrentBranch ignore

теперь с локальной машины могу клонировать этот репозиторий

git clone ssh://<user>@<host>:<path>/.git

или с указанием порта

git clone ssh://<user>@<host>:<port>/<path>/.git

 

Теги

Ошибка при прерывании ajax-запроса

Отправлено said от пт, 10/07/2016 - 16:07

Чтобы предотвратить появление алерта с сообщением об ошибки использовать:

(function ($) {
  Drupal.behaviors.disableAlerts = {
    attach: function(context, settings) {
      window.alert = function(text) {
        if(typeof console != "undefined") {
          console.error('Error: ' + text);
        }
        return true;
      };
    }
  };
}(jQuery));

 

Теги

Включение/выключение радиокнопки

Отправлено said от пт, 10/07/2016 - 10:12

Если нужно, чтобы радио кнопка работала как чекбокс, то это можно имитировать следующим кодом:

$('.filters-spec input').click(function() {
    if($(this).attr('previousValue') == 'true'){
        $(this).prop('checked', '')
    } else {
        $(this).attr('previousValue', false);
    }

    $(this).attr('previousValue', $(this).prop('checked'));
    filter_change_label();
});

 

Теги