четверг, 20 декабря 2012 г.

Отличный и простой выбиральщик даты и времени на jQuery

Понадобилось реализовать одновременно выбор даты и времени из одного поля, изобретать велосипед не стал. Нагуглил отличный плагин - вот.
Все :D
Плагин действительно простой, симпатичный и с кучей настроек!

вторник, 11 декабря 2012 г.

Настройка хостов в XAMPP


Открываем в текстовом редакторе файл httpd-vhosts.conf, расположенный по следующему адресу: C:\xampp\apache\conf\extra.

Примечание: рекомендую для большего удобства создать сразу ярлык для этого файла, например в папке C:\xampp, чтобы потом можно было быстро добавлять новые виртуальные хосты.

Все что находится в файле httpd-vhosts.conf мы трогать не будем, а просто добавим наши хосты (просто скопируйте и вставьте в файл приведенный ниже код):

NameVirtualHost *:80

<VirtualHost *:80>
    DocumentRoot "C:\xampp\htdocs"
    ServerName localhost
</VirtualHost>
<VirtualHost *:80>
    ServerAdmin webmaster@blog.local
    DocumentRoot "C:\xampp\htdocs\life_site\public_html"
    ServerName life.dev
    ServerAlias www.life.dev
    ErrorLog "C:\xampp\htdocs\life_site\public_html\error.log"
    CustomLog "C:\xampp\htdocs\life_site\public_html\access.log" combined
  <Directory "C:\xampp\htdocs\life_site\public_html">
    AllowOverride All
    Order allow,deny
    Allow from all
  </Directory>
</VirtualHost>

Верхний виртуальный хост, выделен другим цветом, позволит нам по прежнему заходить на localhost (локальный сайт XAMPP).

Следующим шагом нам потребуется добавить две строчки в файл hosts, расположенный по следующему адресу C:\Windows\System32\drivers\etc\hosts (также рекомендую создать для него ярлык в папке сервера):

127.0.0.1     life.dev
127.0.0.1     www.life.dev

воскресенье, 21 октября 2012 г.

Изменить кнопку загрузки файла

Все просто, никакого JS, просто меняем стили (ну не совсем просто, если вы оказались на этой странице). Если все сделать правильно, кнопка загрузки файлов больше не будет такой ущербной. По примеру можно сделать ее и в своем стиле.

регистрация доменов

HTML
<div class="container upload">    <span class="btn">Добавить файл</span>    <input type="file"/></div>    
..и немного стилей:
CSS
.container {
width:300px;
margin:50px auto 0;
height:80px;
}
.upload {
position:relative;
}
.upload > input[type=file] {
display:block;
width:100%;
height:100%;
opacity:0;
}
.upload > .btn {
position:absolute;
top:0;
left:0;
width:100%;
height:100%;
background:#efefef;
color:#555;
border:solid 1px #ddd;
border-radius:4px;
text-align:center;
font-size:2em;
line-height: 80px;
z-index:0;
}
.upload:hover > .btn {
background:#f7f7f7;
color:#333;
}
.upload:active > .btn {
background:#efefef;
color:#333;
margin-top:1px;
} ​
Вот и все! до невозможности просто)
Посмотреть как это выглядит можно здесь 

вторник, 28 августа 2012 г.

Все media типы (Content-Type)

В довесок к статье про media-типы в php, вот вам массив с полным собранием типов.
$mimes = array( 'hqx' => 'application/mac-binhex40',
'cpt' => 'application/mac-compactpro',
'csv' => array('text/x-comma-separated-values', 'text/comma-separated-values', 'application/octet-stream', 'application/vnd.ms-excel', 'application/x-csv', 'text/x-csv', 'text/csv', 'application/csv', 'application/excel', 'application/vnd.msexcel'),
'bin' => 'application/macbinary',
'dms' => 'application/octet-stream',
'lha' => 'application/octet-stream',
'lzh' => 'application/octet-stream',
'exe' => array('application/octet-stream', 'application/x-msdownload'),
'class' => 'application/octet-stream',
'psd' => 'application/x-photoshop',
'so' => 'application/octet-stream',
'sea' => 'application/octet-stream',
'dll' => 'application/octet-stream',
'oda' => 'application/oda',
'pdf' => array('application/pdf', 'application/x-download'),
'ai' => 'application/postscript',
'eps' => 'application/postscript',
'ps' => 'application/postscript',
'smi' => 'application/smil',
'smil' => 'application/smil',
'mif' => 'application/vnd.mif',
'xls' => array('application/excel', 'application/vnd.ms-excel', 'application/msexcel'),
'ppt' => array('application/powerpoint', 'application/vnd.ms-powerpoint'),
'wbxml' => 'application/wbxml',
'wmlc' => 'application/wmlc',
'dcr' => 'application/x-director',
'dir' => 'application/x-director',
'dxr' => 'application/x-director',
'dvi' => 'application/x-dvi',
'gtar' => 'application/x-gtar',
'gz' => 'application/x-gzip',
'php' => 'application/x-httpd-php',
'php4' => 'application/x-httpd-php',
'php3' => 'application/x-httpd-php',
'phtml' => 'application/x-httpd-php',
'phps' => 'application/x-httpd-php-source',
'js' => 'application/x-javascript',
'swf' => 'application/x-shockwave-flash',
'sit' => 'application/x-stuffit',
'tar' => 'application/x-tar',
'tgz' => array('application/x-tar', 'application/x-gzip-compressed'),
'xhtml' => 'application/xhtml+xml',
'xht' => 'application/xhtml+xml',
'zip' =>  array('application/x-zip', 'application/zip', 'application/x-zip-compressed'),
'mid' => 'audio/midi',
'midi' => 'audio/midi',
'mpga' => 'audio/mpeg',
'mp2' => 'audio/mpeg',
'mp3' => array('audio/mpeg', 'audio/mpg', 'audio/mpeg3', 'audio/mp3'),
'aif' => 'audio/x-aiff',
'aiff' => 'audio/x-aiff',
'aifc' => 'audio/x-aiff',
'ram' => 'audio/x-pn-realaudio',
'rm' => 'audio/x-pn-realaudio',
'rpm' => 'audio/x-pn-realaudio-plugin',
'ra' => 'audio/x-realaudio',
'rv' => 'video/vnd.rn-realvideo',
'wav' => array('audio/x-wav', 'audio/wave', 'audio/wav'),
'bmp' => array('image/bmp', 'image/x-windows-bmp'),
'gif' => 'image/gif',
'jpeg' => array('image/jpeg', 'image/pjpeg'),
'jpg' => array('image/jpeg', 'image/pjpeg'),
'jpe' => array('image/jpeg', 'image/pjpeg'),
'png' => array('image/png',  'image/x-png'),
'tiff' => 'image/tiff',
'tif' => 'image/tiff',
'css' => 'text/css',
'html' => 'text/html',
'htm' => 'text/html',
'shtml' => 'text/html',
'txt' => 'text/plain',
'text' => 'text/plain',
'log' => array('text/plain', 'text/x-log'),
'rtx' => 'text/richtext',
'rtf' => 'text/rtf',
'xml' => 'text/xml',
'xsl' => 'text/xml',
'mpeg' => 'video/mpeg',
'mpg' => 'video/mpeg',
'mpe' => 'video/mpeg',
'qt' => 'video/quicktime',
'mov' => 'video/quicktime',
'avi' => 'video/x-msvideo',
'movie' => 'video/x-sgi-movie',
'doc' => 'application/msword',
'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
'word' => array('application/msword', 'application/octet-stream'),
'xl' => 'application/excel',
'eml' => 'message/rfc822',
'json' => array('application/json', 'text/json')
);

пятница, 17 августа 2012 г.

Пиар сайта

Только приступили или уже реализовали вашу задумку в жизнь, но никто кроме ваших друзей и мамы с папой о нем не знает? Никакого трафика и развития проекта? -Самое время рассказать о проекте в сети!

регистрация доменов
В этом посте я буду вести учет площадок, на которых можно бесплатно пропиариться.

Помните, главное - это качественный текст!
Эсли статья ниочем, то и читать ее никто не будет. Никому не нравится шлак. Не нравятся статьи перегруженные ссылками. Текст, где через строчку: "купи у нас, купи у нас, мы такие ах*енные, а вот те не оч". Избегайте такого стиля, это никому не нравится! Очень важны изображения. Людям нравится визуализация. Но, главное, и с ними не переборщить. Инфографика - идеальный вариант. Всем нравится инфографика. Ну и конечно же видео. Короткое, 3-5 минут максимум. Никакого унылого голоса за кадром, все должно выглядеть очень бодро.

Список сайтов\сообществ, для публикации своих идей, пиара проектов:


dou.ua

it-job.by

http://1hub.ru/

http://pr-cy.ru/blogs/new
Регистрируемся и пишем статью. Если статья интересная - ее не заминусуют. Имейте ввиду то, что сайт SEO тематики. Так что статьи по seo заходят на ура, так же норм отношение к веб-девелоперским темам.

http://surfingbird.ru
Схема такая:
1. Регистрируемся на сайте и больше его не трогаем.
2. Закидываем несколько статей на одну тему (к примеру насколько классный ваш сайт, проект и тп) на разные блоги, сайты, странички. Желательно, чтобы статьи не копировали друг друга. В идеале эти стать писать на вышеперечисленных площадках.
3. Заходим обратно на сайт и добавляем ссылки на свои ранее написанные посты.
Важно: правильно выставить категории, описание статьи.

habrahabr.ru
Нуу.. Про хабр знают все. И, наверное, это лучшая площадка для пиара вашего проекта. Есть специальный раздел - 'Я пиарюсь'.
Но! Свободной регистрации на хабре нет. Точнее есть, но писать вы не сможете, аккаунт - read-only. Для того чтобы стать полноценным участником нужен инвайт или написать пост в песочницу (с read-only аккаунтом писать можно только туда). Если хабраюзеры оценят вашу писанину - можно считать, что инвайт у вас в кармане!). пс: буду рад инвайту)


freehabr.ru
Площадка позиционирует себя как "свободный хобр". То есть тот же хабр, только со свободной регистрацией. Аудитория конечно несравнима, но для рекламы своих проектов вполне сгодится. После регистрации сразу же можно добавить свой пост.
Если вашу статью "залайкает" хотя бы 3 пользователя - пост попадает на главную страницу, а это гораздо больше просмотров.


*Пользуетесь другими площадками для данных целей - оставляйте в комментариях, добавлю в список

Скачать Lung - Afterlife (Kryptic Minds Remix).

четверг, 16 августа 2012 г.

Будущее интернета из 95-го года

Попался мне на глаза снятый в 1995 году видеоролик, в котором американские школьники рассказывают о своем видении будущего интернета. Уже тогда дети были уверены, что именно благодаря всемирной паутине можно будет найти информацию о том, как приготовить «кексики для любимого котика».

Ребятки озвучили и более практичные предсказания. Например, они говорили о том, что в будущем интернет сможет заменить телефон, телевизор, библиотеки, там можно будет делать покупки, работать и посещать ранее недоступные места.



Интересно то, что ролик создавался как социальная реклама, предназначенная для популяризации интернета.

А вот и сам ролик:

вторник, 14 августа 2012 г.

Архивирование файлов на php

В этом посте я покажу как на PHP заархивировать фалы в zip формат. Часто я вижу слишком грамоздкие скрипты предназначенные для этих целей. В моем примере всего несколько строк, просто взгляните! Используйте свободно для любых своих целей!

HTML
<form name="zips" method="post">
<input type="checkbox" name="files[]" value="flowers.jpg" />
<img src="files/image.png" />
flowers.jpg
<input type="checkbox" name="files[]" value="fun.jpg" />
<img src="files/image.png" />
fun.jpg
........
<input type="submit" name="createpdf" value="Скачать ZIP" />&nbsp;
<input type="reset" name="reset" value="Сбросить" />
</form>


PHP
Следующий код конвертирует выбранные файлы в ZIP формат.
<?php
$error = "";
if(isset($_POST['createpdf']))
{
$post = $_POST;
$file_folder = "files/"; // папка для загрузки файлов
if(extension_loaded('zip'))
{
// проверяем подгрузку расширения
if(isset($post['files']) and count($post['files']) > 0)
{
// проверяем выбранные файлы
$zip = new ZipArchive(); // подгружаем zip библиотеку
$zip_name = time().".zip"; // имя файла - текущее время
if($zip->open($zip_name, ZIPARCHIVE::CREATE)!==TRUE)
{
// открываем zip
$error .= "* Ошибка создания файла";
}
foreach($post['files'] as $file)
{
$zip->addFile($file_folder.$file); // добавление файлов в zip
}
$zip->close();
if(file_exists($zip_name))
{
// отправляем файлы на загрузку
header('Content-type: application/zip');
header('Content-Disposition: attachment; filename="'.$zip_name.'"');
readfile($zip_name);
// убираем файлы из кэша
unlink($zip_name);
}
}
else
$error .= "* Выберите файл!";
}
else
$error .= "* Нет расширения";
}
?>