Запись создана на основе статьи A few HTML tips.
SVG файлы можно использовать не только с помощью <img>
тега:
<img src="acolyte_cartoon.svg" alt="acolyte">
Можно создавать SVG спрайты.
Для этого создается один SVG файл, в котором каждое изображение заворачивается в тег <symbol>:
<svg>
<symbol id="social-twitter" viewBox="...">
<!-- actual image data here -->
</symbol>
</svg>
Затем картинка может быть добавлена на страницу след. образом:
<svg class="social-icon">
<use xlink:href="icons.svg#social-twitter" />
</svg>
Для создания SVG спрайтов можно использовать плагин
Корневой сельдерей, свежий огурец, крабовые палочки и ароматная руккола. Баланс вкусов этого салата украсит любой праздничный стол.
Подробнее о приготовлении: http://doctors.by/food/410-salad-celery-1.
Больше полезных блюд: http://doctors.by/food
Дублирую себе интересную статью:
http://habrahabr.ru/post/247077/?utm_campaign=emai...0106&utm_content=link2post
Подготовка:
30 минут.
Ингредиенты:
Салат листовой - 5 крупных листьев.
Яблоко 2-3 шт .
Перец сладкий - 1шт.
Кальмары - 2 тушки.
Сельдерей - 2 стебля.
Оливковое масло - 2 стол. ложки.
Лимон - сок 2 стол. ложки.
Гранат - зерна для украшения.
Больше проверенных рецептов на сайте doctors.by.
В предыдущей статье
DRUPAL 7. КАКИЕ МОДУЛИ ИСПОЛЬЗОВАЛА |
было подробно описано, какие и для чего использовала модули в проекте на Drupal.
Для создания нового проекта использую Drush для установки основных необходимых модулей. Установка занимает намного меньше времени, чем обычная установка. Drush сам закачивает и устанавливает необходимые модули.
Устанавливаем Drush. Я работаю с Windows 7.
Установка Drush: http://drush.ws/drush_windows_installer. Подробнее http://www.myflash.in.ua/drush/drush-urok-1-ustanovka-drush.html
После установки захожу Drush Command Prompt. Проверяю, работает ли drush
>drush
Должен появиться help.
Установка drupal:
cd C:\OpenServer\domains
drush dl drupal-7.x
Загрузит последнюю версию в каталог с именем этой версии. Переименовываю папку. Создаю пустую БД и запускаю в браузере сайт. К примеру сайт назвала drupal.local. Прохожу процедуру установки сайта в браузере и далее с помощью drush устанавливаю дополнительные модули.
cd drupal.local
drush dl admin_menu
drush en admin_menu_toolbar
drush dl module_filter
drush en module_filter
drush dl email_registration
drush en email_registration
drush dl date
drush en date_api
drush en date_views
drush en date_popup
drush dl pathauto
drush en pathauto
drush dl path_breadcrumbs
drush en path_breadcrumbs_ui
Данный модуль необходим также для модуля Calendar.
Форма ввода контента появляется стандартная.
Настройка форм была сделана в файле template.php
function sosp_theme($existing, $type, $theme, $path) {
$items = array();
return array(
'node_form' => array(
'render element' => 'form',
'template' => 'templates/node-form',
)
);
}
function THEME_preprocess_node_form(&$variables) {
// спрятаны все поля администрирования сохранения
hide($variables['form']['menu']);
hide($variables['form']['revision_information']);
hide($variables['form']['additional_settings']);
hide($variables['form']['options']);
hide($variables['form']['author']);
hide($variables['form']['actions']['preview']);
// максимально упрощено появление поля body
// появляется только само поле без дополнительной иноформации
$variables['form']['body']['und'][0]['summary']['#description']='';
$variables['form']['body']['und'][0]['format']['format']['#access']=false;
unset ($variables['form']['body']['und'][0]['format']['guidelines']);
unset ($variables['form']['body']['und'][0]['format']['help']);
unset ($variables['form']['body']['und'][0]['summary']['#prefix']);
unset ($variables['form']['body']['und'][0]['summary']['#suffix']);
// подключается обработка формы ajax без перезагрузки страницы
$form['#validate'] = array();
$form['actions']['submit']['#submit'] = array();
$form['actions']['submit']['#ajax'] = array(
'callback' =>
Функция pseudoAnimate позволяет анимировать элементы страницы, для которых созданы спрайты из нескольких картинок.
Спрайты устанавливаются, как background для элементов. Функция выполняет цикличную замену координаты Y для фона.
Функция позволяет установить время смены фрагментов спрайта, включить или выключить цикличность анимации, установить время промежутка между циклами и время, которое будет длиться анимация.
function pseudoAnimate(element, options, time) {
options = $.extend({
frames: 1,
timeout: 500,
cycle: true,
cycleDelay: 0,
timeForAllCycles: 0
}, options);
var _timeForAllCycles = 0;
if (time) {_timeForAllCycles = time;}
if (options.cycle == 'false') options.cycle=false;
if (navigator.userAgent.search("MSIE") < 0)
{
var offset = /([\S]+)\s([\S]+)/i.exec($(element).css('background-position').trim());
var offsetX = parseInt(offset[1]);
var offsetY = parseInt(offset[2]);
} else {
var offsetX = parseInt($(element).css('background-position-x'));
var offsetY = parseInt($(element).css('background-position-y'));
}
var frame = Math.abs(offsetY / $(element).height()) + 1;
var timeout = options.timeout
if (frame < options.frames) {
offsetY = offsetY - $(element).height();
} else {
offsetY = 0;
timeout = options.cycleDelay != 0 ? options.cycleDelay : options.timeout;
}
if(navigator.userAgent.search("MSIE") >= 0) {
$(element).css({
'background-position-y': offsetY +'px'
});
} else {
$(element).css({
'background-position': offsetX + 'px ' +offsetY+'px'
});
}
if ((frame < (options.frames-1)) || options.cycle) {
if ( options.timeForAllCycles == 0 || (options.timeForAllCycles != 0 && _timeForAllCycles<options.timeForAllCycles ))
setTimeout(function(){
pseudoAnimate(element, options,_timeForAllCycles+Number(timeout));
}, timeout);
}
}
В статье используется функция, применяемая на сайте http://www.lill-skansen.se/
Применение функции:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Animation</title>
<style>
/* Demo styles */
#chrismas {
position: relative;
}
#moon {
position: absolute;
top: 35px;
Для работы с ssh использую:
putty - для работы с архивами и командами;
FileZilla - для работы с файлами.
Основные ssh команды:
ls - список файлов и каталогов
ls -al - форматированный список со скрытыми каталогами и файлами
cd dir - сменить директорию на dir
cd - сменить на домашний каталог
cd .. - подняться на уровень вверх
клавиша Tab - дополняет имя каталога, например, для перехода в каталог drupal набираю cd dr и клавишу Tab - она дополнит название каталога до drupal.
правая клавиша мыши вставляет содержимое буфера в командную строку
mkdir dir - создать каталог dir
rm file - удалить file
rm -r dir - удалить каталог dir
cp file1 file2 - скопировать file1 в file2
cp -r dir1 dir2 - скопировать dir1 в dir2; создаст каталог dir2, если он не существует
mv file1 file2 - переименовать или переместить file1 в file2. если file2 существующий каталог - переместить file1 в каталог file2
Работа с архивами:
tar --help - получить помощь по основным командам и опциям tar.
tar -cvf cop.tar . - создать tar-архив с именем cop.tar содержащий все файлы и каталоги текущей директории. Опция -v позволяет отследить процесс создания архива.
tar -cvf cop.tar styles.css - создать tar-архив с именем cop.tar содержащий файл styles.css. Если архив с таким именем существует в текущей директории, он будет перезаписан командой без предупреждения.
tar --list --file=cop.tar - показать содержимое архива
tar --list --verbose --file=cop.tar - показать содержимое архива с полной информацией о файлах и каталогах
tar -xvf cop.tar - извлечь файлы из архива cop.tar. Информация будет разархивирована с сохранением структуры каталогов, существующие файлы будут записаны поверх извлеченными из архива.
tar --extract --file=cop.tar styles.css - извлечь файл styles.css из архива cop.tar.
Необходимо извлечь один файл или каталог из архива:
Команда tar -cvf cop.tar . создала архив с включенными каталогами.
tar --list --file=cop.tar показывает содержимое
./
./css
./cop2/
./cop2/css.tar
tar -xvf cop.tar ./cop2/css.tar - создаст каталог cop2 извлечет файл css.tar.
tar -xvf cop.tar ./cop2/ - извлечет каталог cop2.
tar -czf file.tar.gz files - создать архив tar с сжатием Gzip
tar -xzf file.tar.gz - распаковать tar с Gzip
zip --help - посмотреть, установлена ли программа zip
unzip cop.zip - распаковать zip-архив cop.zip.
zip file1.zip file1 — создать сжатый zip-архив
zip -r file1.zip file1 file2 dir1 — создать сжатый zip-архив и со включением в него нескольких файлов и/или директорий.
http://new-wp.net/files/putty.htm
Создать БД mysql
mysql -h hostname -u root -p
перейдет в командную строку mysql
create database [databasename];
выйти из mysql - \q или exit
если не набрал ; в конце - закончить команду - \g
восстановить БД из дампа - в командной строке
mysql -u username -ppassword databasename < /tmp/databasename.sql
tar архив создаю с помощью 7Zip.
При обучении Zend Framework стояла задача настроить тестирование проекта с помощью PHPUnit.
Необходимо установить PHPUnit и затем выполнить в приложении под Zend Framework тесты.
Официальный сайт: https://github.com/sebastianbergmann/phpunit/
Приложение можно установить тремя способами. Я установила с помощью пакета установки приложений PEAR.
Устанавливаю PEAR:
В командной стоке необходимо запустить
путь-к-php\go-pear.bat
Я работаю с использованием Zend Server Community Edition.
php каталог - c:/zend/ZendServer/bin
cd c:/zend/ZendServer/bin
запускаю go-pear.bat
В PHP каталоге находится файл PEAR/go-pear.phar. Bat файл разворачивает архив и устанавливает PEAR.
Можно скачать перед установкой новую версию http://pear.php.net/manual/en/guide.users.commandline.cli.php.
Важно не менять установки по умолчанию и на все вопросы нажимать enter(первый раз при установке на вопрос Are you installing system-wide PEAR or local copy? ответила local - не были произведены все необходимые установки и PEAR не работал нормально). Очистила каталог PEAR, оставив файл go-pear.phar и установила заново.
Очень подробно об инсталляции PEAR - http://vertstudios.com/blog/pear-installation-tutorial/.
Устанавливаю PHPUnit способом, указанным readme.md:
В командной строке
pear config-set auto_discover 1
pear install pear.phpunit.de/PHPUnit.
Установка прошла успешно. PHPUnit в каталоге PEAR/PHPUnit.
Всем доброго утра! Поклонникам лепки предлагаю сделать к Новому году вот такое панно с дедом Морозом и елочкой. В качестве основы для панно можно использовать вырезанный лист МДФ, плотного картона или использовать имеющийся поднос. Лепить деда Мороза можно из чего угодно, из того материала для лепки, с которым вы больше всего любите работать, будь то соленое тесто, пластика, полимерная глина или холодный фарфор. Эту идею можно также использовать для создания коробочки для подарка (украсить крышку такой лепкой). Итак, смотрим фото мастер-класс по лепке атрибутов приближающегося праздника.
Авто мастер-класса - Bia Cravol. Фотографии - Ricardo Novelli
Всем привет!
Уникальная мастерица! Все, что творят ее золотые ручки - элегантно, воздушно и очень стильно! Хочу порадовать вас подборкой рождественских работ талантливейшей Сони из Бельгии (sezoentje-sonja.blogspot.com). Винтажная атмосфера рождественского декора... Браво, Соня!! Приятного просмотра!
Вот... сколько не клялась себе что больше ни одной ёлки, даже самой малюсенькой делать не буду, а не удержалась. Ну ведь это же просто нереально себя остановить, если уже новогоднее настроение...
[700x525]
А еще много картона под рукой и всякие пряности-вкусности. Так что результат на лицо, снова эти самые пряники-ёлки "напеклись". Причем они еще и правда вкусные-превкусные, во всяком случае пахнут сногсшибающе. Потому что обклеила картон бумагой, которую затонировала раствором кофе-ваниль-корица, да и сам декор каждый со своим ароматом. Ну видите, да? Все натуральное! Розочки из яблочной кожуры, коричные палочки, кофейные зернышки и еще что-то такое плодово-круглое, даже не знаю что это...
Так что проходим, нюхаем, любуемся и новогодним настроением проникаемся!
Я.Субботник в Минске пройдет 2 июня по адресу: Минск, ул. Кирова 13, отель "Crowne Plaza", зал "King".
Регистрация на мероприятие начнется 16 мая. Количество мест ограничено.
Для тех, кто не попадёт в число участников или не сможет лично присутствовать на Я.Субботнике, будет организована онлайн-трансляция.
Подробную информацию о мероприятии читайте здесь.
Задача: Необходимо создать веб-сервис для публикации документов в Битриксе из SharePoint с необходимым набором методов для добавления, изменения и удаления записей.
Создала папку ws в корне сайта, в ней папку spdoc для определенного веб-сервиса.
Папка должна быть настроена на пустой шаблон Битрикса, в котором содержится только #WORK_AREA#.
В ней index.php
<?php
require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/header.php");
if (CModule::IncludeModule("webservice")) {
require($_SERVER["DOCUMENT_ROOT"] . "/ws/spdoc/spdoc.php");
$webservice = new CWebService();
if (!$webservice->RegisterWebService('CGenericWSDLSpdoc')) {
throw new Exception('Couldn't register webservice');
}
$result = $webservice->SOAPServerProcessRequest('spdoc.ws');
if (!$result) {
throw new Exception('Couldn't process request');
}
$response = $webservice->GetSOAPServerResponse('spdoc.ws');
echo $response;
} else {
throw new Exception('Couldn't initialize webservice');
}
Файл wsdl.php формирует страницу web-service
<?php
ini_set('display_errors', 1);
require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/header.php");
if (CModule::IncludeModule("webservice") ) {
require($_SERVER["DOCUMENT_ROOT"] . "/ws/spdoc/spdoc.php");
$webservice = new CWebService();
if (!$webservice->RegisterWebService('CGenericWSDLSpdoc')) {
throw new Exception('Couldn't register webservice');
}
$wsdl = $webservice->GetWSDL('spdoc.ws');
if (!$wsdl) {
throw new Exception('Couldn't create WSDL');
}
echo $wsdl;
} else {
throw new Exception('Couldn't initialize webservice');
}
Файл spdoc.php реализует инициализацию веб-сервиса и методы.
<?php
class createFile
{
var $mimeType;
var $fileName;
var $fileSize;
var $fileContent;
}
class cInputSp
{
var $group; //Группа документа
var $subject; //Название
var $method; //Доп. информация
var $file_a; //Архив приложений
}
class CGenericWSDLSpdoc extends IWebService
{
var $paramInfoBlock = array(
'IBLOCK_ID' => 18, // код ID основного информационного блока для добавления документов
'IBLOCK_GROUP' => 19 // код ID информационного блока для групп документов
);
function _trim(&$obInput){
$a_class = get_class($obInput);
$attribs = get_class_vars($a_class);
foreach ($attribs as $key=>$val){
if (is_string($obInput->$key)){
$obInput->$key = trim($obInput->$key);
}
}
}
function loadAttachFile ($file, $nameFile, &$errString) {
// функция загружает файл на диск во временный файл и подготавливает массив для записи файла в инфоблок
$this ->_trim($file);
if (empty($file->fileName) or $file->fileName == '?') return false; // file
if (empty($file->fileContent)) {$errString .= 'No file content: '.$file->fileName.'. '; return false;}
if (empty($file->mimeType)) {$errString .= 'No mime-type: '.$file->fileName.'. '; return false;}
$fileArray = array();
$tmpFile = $_SERVER["DOCUMENT_ROOT"]."/ws/spdoc/".$nameFile;
($f = fopen($tmpFile,'w+b')) or die('Error create temp file.' );
if (!$fileArray['size'] = fwrite($f,base64_decode($file->fileContent))) {$errString .= 'Error write temp file. '; return false;}
fclose($f);
$fileArray['name'] = $file->fileName;
$fileArray['tmp_name'] = $tmpFile;
$fileArray['type'] = $file->mimeType;
return $fileArray;
}
function publication($data)
{
global $USER;
$this ->_trim($data);
$errString = '';
if ( CModule::IncludeModule("iblock") ) {
// в инфоблоке уже много документов и есть символьное поле NUMBER с номером документа в Битриксе. В Битриксе своя нумерация, отличная от SP.
// Нужно найти последний номер публикации и присвоить новой записи следующий
// last number of publication
$arSelect = Array("ID", "PROPERTY_NUMBER");
$arFilter =
У многих с возрастом чувство стиля только усиливается.
Леди и джентльмены на фотографиях – от 71 до 98 лет. Фотограф – Ари Сет Коэн (Ari Seth Cohen). 1.
[466x699]
2.
[466x698]
3.
[467x700]
Серия сообщений "Английский язык. Обучение.":Эту рубрику я сделала по просьбе своих друзей. По специальности я лингвист, имею жизненный опыт по изучению различных языков, так как работала в разных странах. На основе своего жизненного опыта я подбираю материал, который помогает быстрому изучения языка. Желаю легкого и успешного обучения!
Часть 1 - Английский для Вас
Часть 2 - 16 бесплатных образовательных проектов в сети
...
Часть 5 - Как запомнить больше слов? Техники запоминания.
Часть 6 - Супер память, методы запоминания (part 1)
Часть 7 - Смотрим фильмы - учим язык
Часть 8 - Видеословарь русско-английский. Тема "еда".
Доброго времени суток!
Предлагаю вам посмотреть очень интересную работу. Бутылка декорирована тканью с нанесенным на нее винтажным изображением и покрыта гипсовым раствором. Необычный подход, результат мне очень понравился. В описании вы познакомитесь еще с одним вариантом переноса изображения на ткань - с помощью бесцветного маркера.