Вставка блока контекстного меню в произвольный элемент верстки

Отправлено said от пн, 12/26/2016 - 11:18

Друпал контекстное меню навешывает на блоки, но если я хочу разместить контекстные ссылки на в любом другом элементе в шаблоне, то это можно сделать так:
 

<?php if ($is_admin): ?>
<div class="contextual-links-wrapper"><!-- это тот элемент, при наведении на который будут появляться контекстные ссылки -->
  <ul class="contextual-links">
    <li class="block-configure first"><a href="/node/1990/edit">Редактировать слайдер</a></li>
  </ul>
</div>
<?php endif; ?>

 

Теги

Проброс тунеля к локальному сайту из интернета при помощи сервиса 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));

 

Теги