Проигрывание звука уведомления с помощью jQuery

Нашел отличный пример для тех кто будет делать чат.

JavaScript

[js]
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
$("#chatData").focus();
//Appending HTML5 Audio Tag in HTML Body
$(‘<audio id="chatAudio"><source src="notify.ogg" type="audio/ogg"><source src="notify.mp3" type="audio/mpeg"><source src="notify.wav" type="audio/wav"></audio>’).appendTo(‘body’);
$("#trig").on("click", function() {
var a = $("#chatData").val().trim();
if (a.length > 0) {
$("#chatData").val(»);
$("#chatData").focus();
$("<li></li>").html(‘<img src="small.jpg"/><span>’ + a + ‘</span>’).appendTo("#chatMessages");
// Scrolling Adjustment
$("#chat").animate({
"scrollTop": $(‘#chat’)[0].scrollHeight
}, "slow");
$(‘#chatAudio’)[0].play();
}
});
});
</script>
[/js]

HTML

[html]
<div id=’chatBox’>
<div id=’chat’>
<ul id=’chatMessages’>
//Old Messages
<li>
<img src="small.jpg"/><span>Hello Friends</span>
</li>
<li>
<img src="small.jpg"/><span>How are you?</span>
</li>
</ul>
</div>
<input type="text" id="chatData" placeholder="Message" />
<input type="button" value=" Send " id="trig" />
</div>
[/html]

CSS

[css]
* {
padding: 0px;
margin: 0px;
}
body {
font-family: arial;
font-size: 13px
}
#chatBox {
width: 400px;
border: 1px solid #000;
margin: 5px;
}
#chat {
max-height: 220px;
overflow-y: auto;
max-width: 400px;
}
#chat &gt;
ul &gt;
li {
padding: 3px;
clear: both;
padding: 4px;
margin: 10px 0px 5px 0px;
overflow: auto
}
#chatMessages {
list-style: none
}
#chatMessages &gt;
li &gt;
img {
width: 35px;
float: left
}
#chatMessages &gt;
li &gt;
span {
width: 300px;
float: left;
margin-left: 5px
}
#chatData {
padding: 5px;
margin: 5px;
border-radius: 5px;
border: 1px solid #999;
width: 300px
}
#trig {
padding: 4px;
border: solid 1px #333;
background-color: #133783;
color: #fff;
font-weight: bold
}
[/css]

Скачать исходник

Миграции в yii — примеры

Примеры миграций

Создание таблицы

[php] class m120302_172329_create_tbl_news extends CDbMigration
{
public function up()
{
$this->createTable(‘el_slider’, array(
‘id’ => ‘pk’,
‘title’ => ‘VARCHAR(200) NOT NULL’,
‘desc’ => ‘text NOT NULL’,
‘link’ => ‘VARCHAR(200) NOT NULL’,
‘img’ => ‘VARCHAR(200) NOT NULL’,
‘show’ => ‘tinyint(1) DEFAULT 1’,
‘order’ => ‘int(10) DEFAULT 0’,
) , ‘ENGINE=InnoDB CHARSET=utf8’);
}
public function down()
{
dropTable(‘el_slider’);
}[/php]

Добавление записи в таблицу с помощью миграции

[php]
$this->insert(‘tbl_news’, array(
‘title’ => ‘Title 1’,
‘content’ => ‘Content 1’,
));[/php]

Изменение записи в таблице с помощью миграции

[php]
$this->update(‘tbl_news’, array(
‘title’ => ‘Updated title’
),
‘id=1’
);[/php]

Добавление колонки в таблицу с помощью миграции

[php]$this->addColumn(‘el_item_with_partner’, ‘option_id’, ‘int(11) DEFAULT 0’);[/php]

Переименование колонки

[php]$this->renameColumn(‘{{user}}’, ‘user_birthday’, ‘user_old_birthday’);[/php]

Удаление колонки

[php]$this->dropColumn(‘tbl_news’, ‘created_at’);[/php]

Обновление страницы и аудио сигнал если есть изменения

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

[js]<script type="text/javascript">
var columnCount = $(‘#fpr_num’).text();

setInterval(function(){
getTable();
}, 1000*60); //1сек*60=60сек.

function checkFprNum(){
if (columnCount != $(‘#fpr_num’).text()) {
columnCount = $(‘#fpr_num’).text();
playSound();
}
}

function getTable(){
$.ajax({
type: ‘POST’,
url: $(this).attr(‘href’),
success: function(data, textStatus, jqXHR) {

if (data == ‘error’) {
alert("Data has error(s)");
} else {
var dataT = $(‘#partner’,$(data));
$(‘#partner’).html(dataT.html());
checkFprNum();
}
},
error: function(textStatus, errorThrown) {
console.log(textStatus);
console.log(errorThrown);
}
});
}

function playSound() {
$(‘<audio id="chatAudio"><source src="../../../sound/notify.ogg" type="audio/ogg"><source src="../../../sound/notify.mp3" type="audio/mpeg"><source src="../../../sound/notify.wav" type="audio/wav"></audio>’).appendTo(‘body’);
$(‘#chatAudio’)[0].play();
}
</script>[/js]

Fatal error: Call to undefined function strptime()

Fatal error: Call to undefined function strptime()

Такая ошибка может быть вызвана при использовании функции strptime() в Windows, так как в этой ОС эта функция не поддерживается.

Но не все так плохо, можно переопределить эту функцию. Читать далее «Fatal error: Call to undefined function strptime()»

Шпаргалка по Git — основные команды, слияние веток, выписка веток с github

Шпаргалка по git. Пошаговое руководство: как выполнить слияние веток в git, как создать новую ветку и репозиторий, как выписать ветку с github и т.п. Инструкции по git для начинающих.

 

Git — это распределенная система контроля версий. Это главное отличие git от svn. Каждый разработчик создает на своем компьютере отдельный, полноценный репозиторий.

 

В рамках этого репозитория можно делать все тоже самое, что и обычно в svn — создавать ветки, просматривать изменения, выполнять коммиты. Для того, чтобы можно было работать с удаленными репозиториями и обмениваться изменениями с другими разработчиками, в git есть две команды, не имеющие аналогов в svn — git push и git pull.

 

git push — вливание локальных изменений в удаленный репозиторий. git pull — вливание изменений из удаленного репозитория в локальный. Обмен данными обычно происходит с использованием протокола SSH.

 

Git поддерживают несколько крупных репозиториев — GitHub, SourceForge, BitBucket и Google Code. Удобно использовать один из них в качестве основного хранилища для корпоративных проектов.

 

git_meet

Изображение с сайта http://www.stickycomics.com/where-did-you-meet/

 

Ниже приведены инструкции по использованию git в различных ситуациях. Что делать, если нужно создать новый репозиторий, или выписать ветку, и т.п. Я использую подобную шпаргалку для скоростного копипаста 🙂 Чтобы не отвлекаться, когда голова занята сложными задачами. По мере создания новых инструкций, статья будет обновляться.

 

 

 

 

 

Пошаговые рекомендации

 

Как выписать репозиторий с github

 

  1. Создаем новую директорию для проекта project_name, переходим в нее.
  2. Выполняем команду:

    «./» означает, что создать репозиторий нужно в текущей директории.

 

Результат: каталог с выписанной веткой master. Теперь можно создавать новые ветки, или выписывать с github существующие.

 

 

 

Как выписать ветку с github

 

С помощью команды «checkout» можно выписать уже существующую ветку с github:

 

 

Если вышеприведенная команда не сработала, выдала ошибку, и времени разбираться с ней нет, можно попробовать получить нужную ветку следующим способом:

 

 

Т.е. сначала мы создаем новую ветку, а затем вливаем в нее изменения из ветки на github.

 

 

 

Как создать новую ветку в локальном репозитории

 

  1. Создаем новую ветку в локальном репозитории:
  2. Публикуем ее на github:

 

 

 

Как переключиться на другую ветку в git

 

 

Если вы случайно удалили какой-то файл, можно извлечь его из хранилища:

 

 

 

 

Как посмотреть список веток

 

Команда «branch» позволяет посмотреть список веток в локальном репозитории. Текущая ветка будет помечена звездочкой:

 

 

 

 

Как сделать commit

 

Создаем новую ветку, выполняем в ней нужные изменения.

 

  1. Список всех измененных и добавленных файлов можно просмотреть командой:
  2. Подготавливаем коммит, добавляя в него файлы командой:

    Или удаляем устаревшие файлы:
  3. Выполняем коммит:
  4. Как правило, в репозитории существует две основные ветки — dev и master. Dev — общая ветка разработчиков и тестировщиков. Именно в нее добавляются все новые разработки перед очередным релизом. Master — ветка для выкладки продукта на боевые сервера.

    После коммита надо влить в нашу ветку изменения из ветки dev и master:

    Теперь наша ветка содержит изменения для проекта, и все последние изменения по другим задачам, которые успела внести команда.

  5. Переключаемся на ветку dev:

  6. Вливаем в dev изменения из ветки проекта:

  7. Заливаем последнюю версию ветки dev на удаленный сервер:

    push может не пройти, потому что удалённый origin/dev обогнал локальную его копию.

 

 

 

Как посмотреть историю изменений

 

git log — просмотр логов.

 

 

Вывод данных о каждом коммите в одну строку:

 

 

Для вывода информации git log использует просмотрщик, указанный в конфиге репозитория.

 

Поиск по ключевому слову в комментариях к коммиту:

 

 

Команда «git show» позволяет просмотреть, какие именно изменения произошли в указанном коммите:

 

 

Можно посмотреть построчную информацию о последнем коммите, имя автора и хэш коммита:

 

 

git annotate, выводит измененные строки и информацию о коммитах, где это произошло:

 

 

 

 

Как сделать откат

 

  1. git log — просмотр логов, показывает дельту (разницу/diff), привнесенную каждым коммитом.
  2. Копируем идентификатор коммита, до которого происходит откат.
  3. Откатываемся до последнего успешного коммита (указываем последний коммит):

    Можно откатить до последней версии ветки:

 

После того, как откат сделан, и выполнен очередной локальный коммит, при попытке сделать push в удаленный репозиторий, git может начать ругаться, что версия вашей ветки младше чем на github и вам надо сделать pull. Это лечится принудительным коммитом:

 

 

 

 

Как выполнить слияние с другой веткой

 

git merge выполняет слияние текущей и указанной ветки. Изменения добавляются в текущую ветку.

 

 

git pull забирает изменения из ветки на удаленном сервере и проводит слияние с активной веткой.

 

 

git pull отличается от git merge тем, что merge только выполняет слияние веток, а pull прежде чем выполнить слияние — закачивает изменения с удаленного сервера. merge удобно использовать для слияния веток в локальном репозитории, pull — слияния веток, когда одна из них лежит на github.

 

 

 

Создание нового локального репозитория

 

 

 

 

git cherry-pick

 

git cherry-pick помогает применить один-единственный коммит из одной ветки к дереву другой.

 

  1. Для этого нужно выписать ветку, в которую будем вливать коммит:
  2. Обновить ее:
  3. Выполнить команду, указать код коммита:
  4. После этого обновить ветку на сервере:

 

 

 

Как раскрасить команды git

 

После создания репозитория в текущей директории появится субдиректория .git . Она содержит файл config .

 

 

Чтобы раскрасить вывод git, можно добавить в файл блок [color]:

 

 

 

Как открыть текущую папку в файловом менеджере из терминала

Как открыть текущую папку в файловом менеджере из терминала. Если вы хотите открыть с правами администратора, в начале команды добавте sudo Читать далее «Как открыть текущую папку в файловом менеджере из терминала»

Установка, удаление, переустановка пакетов в *unix

Установка, удаление, переустановка пакетов в *unix

Для удаления программ можно воспользоваться терминалом, для установки пакета из репозитория необходимо сделать следующее:
sudo apt-get install имя пакета
для удаления:
sudo apt-get remove имя пакета
для удаления пакета со всеми файлами настроек:
sudo apt-get —purge remove имя пакета
Чтобы переустановить пакет введите следующую команду:
sudo apt-get install —reinstall имя пакета

CDbCriteria Yii — Условие OR

CDbCriteria | Class Reference | Yii PHP Framework.

Пример по которому можно понять как использовать OR:

[php]$criteria->compare(‘username’, $term, TRUE, ‘OR’);
$criteria->compare(‘name’, $term, TRUE, ‘OR’);[/php]

1 — Поле по которому ищем

2 — Массив значений по которым мы ищем

3 — Использование похожего равенства — LIKE ‘%Значение%’, по дефолту FLASE

4 — Тип объединения условий, по дефолту AND