→  Form API Drupal 7

published 08 May 2012

Примеры создания форм.

Поле с картинкой или файлом:

$form['img'] = array(
	'#type' => 'managed_file', 
	'#title' => t('Attach Image'), 
	'#default_value' => ($gal) ? $img->fid : '', //дефалтное значение file id
	'#upload_location' => 'public://calendar', 
        '#required' => TRUE,
);

Поле для ввода текста

$form['title'] = array(
        '#type' => 'textfield',
        '#title' => 'Название',
        '#required' => TRUE,
        '#attributes' => array(
			'id' => 'my_doc_title',
			'autocomplete' => 'off'
	),
	'#description' => 'Введите название документа. Под этим названием вы будете его видеть у себя в личном кабинете.'
    );

 →  Разработка модуля Drupal, файл info

published 02 April 2012

Разработка любого модуля, начинается с описания модуля в файле module_name.info

name = My mega module

description = Provides a really cool features.

core = 7.x

package = My mega modules

dependencies[] = views
dependencies[] = panels

files[] = module_name.admin.inc

configure = admin/config/content/module name

version = 7.x-dev

Давайте рассмотрим все пункты по порядку.

Собственно название модуля и его описание, будет показано в списке доступных модулей:

name = My mega module

description = Provides a really cool features.

Версия ядра друпала, под которое пишем модуль.

 →  Ctools форма в модальном окне

published 31 March 2012

И так детки сегодня я расскажу как сделать форму в модальном окне с помощью ctools.

Для простоты будем выводить форму логина в модальном окне.

Для начало создадим info файл для нашего модуля (ul_modal.info):

; $Id$
;; название модуля
name = User Form Modal
;; описание
description = User Form in modal
;; 
package = J Custom Modules
;; версия ядра
core = 7.x
;; зависимость
dependencies[] = user
dependencies[] = ctools
;; файлы модуля
files[] = ul_modal.module
;; версия модуля
version = "7.x-dev"

Далее начнем писать основную часть (ul_modal.module). Для начало нам нужно зарегистрировать адрес в меню для нашей формы:

 →  Mysqldump

published 20 March 2012

Все время забываю, как это дамп делать…

$ mysqldump dbname -uusername  -ppassword > file.sql

И в обратную сторону:

$ mysqldump dbname -uusername  -ppassword < file.sql

 →  JS/jQuery полезняшки

published 19 March 2012

Выбор множество селекторов:

$("div,span,p.myClass").css("border","3px solid red");

Даже если у body 100% height, $(‘body’).height() покажет реально занимаемый размер, лучше использовать:

$(document).height();

Высота в JS

var height = document.getElementById('someDiv').clientHeight; // высота + вертикальный паддинг
var height = document.getElementById('someDiv').offsetHeight; //высота + вертикальный паддинг + бордеры
var height = document.getElementById('someDiv').scrollHeight; //высота + вертикальный паддинг + бордеры + скроллбар

Кастомная функция для jQuery

$.fn.myFunction = function() { 
    return $(this).addClass('changed'); 
}

$('.className').myFunction();

Запуск функции setTimeout с сохранением параметров

setTimeout(function(url, children, parent) {
                return function() {
                   someFunc (url, children, parent);
                }
            } (url, children, parent), 50);

Функция insertAfter:

 →  Разрешение на изменение файлов httpd

published 17 March 2012

На fedore столкнулся с такой особенностью, при правах 777 на файл не хочет его изменять. Оказываеться надо пометить (labeled) ‘httpd_sys_rw_content_t’, файл, а лучше всю директорию.

Команда:

$ chcon -t httpd_sys_rw_content_t FILE

Я сделал так:

$ chcon -t httpd_sys_rw_content_t /var/www/html/

 →  Php код в блоках

published 15 March 2012

Сейчас только обратил внимание, что друпал каждый раз обходит все блоки, и проверяет check_markup() и если там php код он соответственно выполняеться, даже если этот блок не выводиться на странице. Так, что лучше по возможности не использовать php код в блоках. Так интересно, а кастомные блоки он тоже обходит?….

 →  Javascript Шаблоны

published 10 March 2012

{"#" * i} Циклы:

For

var i, myArray =[];

for(i = myArray.length; i--;) {
    myArray[i];
}

While

var myArray,
     i = myArray.length;
while(i--) {
    myArray[i]; 
}

{"#" * i} Комментарии:

Application:

/**
 * My JS application
 *
 * @module
 */
MyApp = {};

Class:

/**
 * A math utility 
 * @namespace MyApp
 * @class my_stuff
 */
MyApp.math_stuff = {};

Method:

/**
 * Sums two numbers
 *
 * @method sum
 * @param {Number} a First number
 * @param {Number} b The second number
 * @return {Number} The sum of the two inputs
 */
sum : function (a, b) {
    return a + b;
}

Конструктор

 →  Placeholder для форм на js

published 01 February 2012

Ниже следуший код выдергивает название label к текстфилдам и вставляет их как placeholder.

$('#answ-cont label').each(function(){
    var id = $(this).attr('for');
    var text = $(this).text();
    $(this).css('display', 'none');
    $('input[type="text"]#' + id).val(text);
    $('input[type="text"]#' + id).bind("focus", function(event) {
      if ($(this).val() === text)
      $(this).val("");
    });
    $('input[type="text"]#' + id).bind("blur", function(event) {
      if ($(this).val() === "")
      $(this).val(text);
    });
  });

 →  Убираем экстра padding в firefox у кнопок

published 29 January 2012

Вот такую, клевую штуку подчеркнул для себя, нашел на сайте Прохорова=)

/* Overrides extra padding in Firefox */
button::-moz-focus-inner,
input[type="submit"]::-moz-focus-inner {
  padding: 0;
  border: none;
}
« 1 2 3 4 5 6 7 8 9 10 11 »