Получение и обновление значений сущности через entity_metadata_wrapper

Отправлено said от чт, 02/02/2017 - 10:38

Приемы работы с entity_metadata_wrapper

$wrp = entity_metadata_wrapper('node', $nid);

// вывод свойства сущности
print $wrp->title->value();

// Изменить значение поля
$wrp->field_file->file->set($fid);

 

Теги

Jquery плагин - дополнение значения в поле нестираемым плейсхолдером

Отправлено said от ср, 02/01/2017 - 17:14

Плагин позволяющий сделать плейсхолдер на текстовое поле, например для ввода домена 3 уровня: yoursite.domain.com

Теги

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

Отправлено 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();
    }
  });
});

 

Теги