→  Скрипт автоматического создания виртуальных хостов

published 28 January 2012

Скрипт предназначен только для localhost! Надоело все ручками прописывать. Вот скрипт, актуален для OpenSuse 12.1:

#!/bin/sh
echo "
  ServerAdmin 1@royaldt.dev
	ServerName $1
	DocumentRoot /srv/www/htdocs/$1
	ErrorLog  /srv/www/htdocs/$1/error_log
        CustomLog  /srv/www/htdocs/$1/access_log combined    
        
    	    Options None
            AllowOverride All
            Order deny,allow
            Allow from all
	
" > /etc/apache2/vhosts.d/$1.conf

echo "Created $1.conf in /etc/apache2/vhosts.d/"

echo 127.0.0.1	$1 >> /etc/hosts

echo "Added Alias 127.0.0.1 $1 into /etc/hosts"

mkdir /srv/www/htdocs/$1

echo "Created directory /srv/www/htdocs/$1"

chmod 777 /srv/www/htdocs/$1

echo "Warning! Chmod 777! For site dir."

echo "$1" > /srv/www/htdocs/$1/index.html

echo "Created default html file"

#my access for mysql root:root
/usr/bin/mysql -uroot -proot mysql -e "CREATE DATABASE IF NOT EXISTS $1;"

echo "Created database $1"

/etc/init.d/apache2 reload

echo "Your site has ready http://$1/"

Запуск от рута, первый параметр это имя хоста:

 →  Проблемы с VirtualBox при обновлении ядра

published 27 January 2012

Так в последний раз ставил следующие пакеты на OpenSuse 12.1: virtualbox-guest-kmp-desktop kernel-desktop gcc kernel-source kernel-syms kernel-devel linux-kernel-headers

В одну команду:

zypper in virtualbox-guest-kmp-desktop kernel-desktop gcc kernel-source kernel-syms kernel-devel linux-kernel-headers

 →  Особенности Drag and Drop для Тачскринов

published 27 January 2012

При огранизации drag&drop в обычном случае пользуються события onmousedown, onmousemove, onmouseup. Но при такой организации на тачскринах наш drag&drop не работает. Для тачскринов есть другие события onTouchStart, onTouchMove,onTouchEnd и onTouchСancel. Особенность в том, что в объекте event передаеться несколько пальцев… Собственно первый палец:

var touch = e.touches[0]

свойства пальца:

  • clientX: X coordinate of touch relative to the viewport (excludes scroll offset)
  • clientY: Y coordinate of touch relative to the viewport (excludes scroll offset)
  • screenX: Relative to the screen
  • screenY: Relative to the screen
  • pageX: Relative to the full page (includes scrolling)
  • pageY: Relative to the full page (includes scrolling)
  • target: Node the touch event originated from
  • identifier: An identifying number, unique to each touch event

 →  Проблемы с обновление системы на VirtualBox

published 27 January 2012

На работе на ноутбуке семерка, но как веб-девелоперу мне удобней работать на Linux, в частности на Ubuntu. Поэтому поставил на VirtualBox поставил Ubuntu, настроил все как надо, но радость была недолгой. В VirtualBox есть такая клевая штука как Гостевая ОС очень удобная штука, но при обновлнении Ubuntu, она неожиданно перестает работать, что немного огорчает и глаза ненароком ищут бубен…Но на самом деле все просто. Необходимо переустановить Guest Additions. В Ubuntu она лежит: /opt/ Ищем там папочку Guest Additions и запускаем файл:

 →  Грабли с активными пунктами меню

published 09 January 2012

Если пункт меню имеет дочерние элементы, то если какой-то из этих элементов активен, то родительский элемент будет иметь класс active-trail и обычно в теме выделен стилями. Так вот бывают такие грабли, пункт активен один, а выделяеться другой родительский пункт! Скорей всего дело в отключеных продублированных дочерних элементах, хоть они и отключены они все равно участвуют во всех обработках меню, кроме вывода.

 →  Железный drupal_goto()

published 05 January 2012

Когда используем drupal_goto() в кастомном модуле на хуках типа hook_nodeapi() или hook_user() наш редирект могут запросто перехватить, другие модули, поэтому можно воспользоваться следующей хитростью

unset($_REQUEST['destination']);
drupal_goto('somewhere');

Для drupal 7 работает такая штука

function mersibo_helper_user_login(&$edit, $account) {
    $GLOBALS['destination'] = 'user';
}

 →  Ошибка: Используемый в поле Attach Image файл не может быть использован.

published 27 December 2011

При работе с файлами в form api , есть несколько не очевидных тонкостей, которые превращаются в грабли. Во-первых, необходимо знать, что у файлов есть статус, $file->status, 0 - временный, 1 - коренной. То есть если вы загрузили через форму ваш файл, и не задали ему нужный статус, при первом запуске крона, он весело помашет вам ручкой, и удалиться в тар-тарары Во-вторых, у файла есть счетчик использования, назовем его так. Он нужен, чтобы не удалить файл используемые той или иной сущностью. И если вы к вашему загруженному файлу не прибавите единичку, при сохранение после редактирования, на русском языке, вылезет следующая ошибка, препятствующая спокойной жизни : Используемый в поле Attach Image файл не может быть использован. Далее, представим код, правильного обращения с файлами:

 →  Отключение пачпада в консоле

published 24 December 2011

Команда отключение пачпада через консоль, работает в Ubuntu 11.10:

# synclient TouchPadOff=1

Соответсвенно включение:

# synclient TouchPadOff=0

Требование к верстке под Drupal 7

published 04 December 2011

{"#" * i} Классы у тега <body>

front - главная страница
logined-in - залогиный юзер
toolbar - включенный тулбар
not-front - не главная
page-node-47 - номер ноды
node-type-article - тип ноды

есть возможность вставить какие-то свои.

{"#" * i} Toolbar

Дабы не портить админку, не допускать у элементов на сайте z-index более 500, иначе переписывать стили для toolbar

{"#" * i} Исключение циклических ссылок

  • лого на главной не должно быть ссылкой
  • активные ссылки должны быть в теге < span class=”current”> или <span class=”active”> (то есть самих ссылок быть не должно)

{"#" * i} Меню

 →  Сжатие pdf в линуксе

published 18 November 2011

Для сжатия pdf файлов в линуксе нужна лишь одна комманда:

# ps2pdf -dUseFlateCompression=true ./file.pdf

А вообще ниже все флаги для данной программы:

Parameter name	  	Initial value	    	Notes
ASCII85EncodePages		false
AlwaysEmbed		[]
AutoFilterColorImages		true		1
AutoFilterGrayImages		true		1
AutoRotatePages		/None		
ColorACSImageDict		>
ColorDownsampleThreshold		1.5
ColorImageDepth		-1
ColorImageDict		>
ColorImageDownsampleType		/Subsample		3
ColorImageResolution		72
CompatibilityLevel		1.3
CompressPages		true
ConvertCMYKImagesToRGB		true
CoreDistVersion		4000
DefaultRenderingIntent		/Default
DownsampleColorImages		false
DownsampleGrayImages		false
DownsampleMonoImages		false
EmbedAllFonts		true
EncodeColorImages		true
EncodeGrayImages		true
EncodeMonoImages		true
GrayACSImageDict		>
GrayDownsampleThreshold		1.5
GrayImageDepth		-1
GrayImageDict		>
GrayImageDownsampleType		/Subsample		3
GrayImageResolution		72
LockDistillerParams		false
LZWEncodePages		false		2
MaxSubsetPct		35
MonoDownsampleThreshold		1.5
MonoImageDepth		-1
MonoImageDict		>
MonoImageDownsampleType		/Subsample
MonoImageFilter		/CCITTFaxEncode
MonoImageResolution		300
NeverEmbed		[]
OPM		0
PreserveHalftoneInfo		false
PreserveOverprintSettings		false
TransferFunctionInfo		/Apply		4
SubsetFonts		true
UCRandBGInfo		/Remove
UseFlateCompression		true
« 1 2 3 4 5 6 7 8 9 10 11 »