четверг, 21 ноября 2013 г.

воскресенье, 17 ноября 2013 г.

angularjs ng-repeat ng-click

Для того что бы без проблем можно было вызвать  ng-click внутри ng-repeat, надо вместо переменных  в фигурных скобках писать просто переменные (вместо {{item.id}} просто item.id):

<li ng-repeat="item in items" ng-click="myMethod(item.id)">
   text
</li>

javascript foreach

Аналог php конструкции foreach в javascript:

var length = myArray.length, element = null;

for (var i = 0; i < length; i++) {
   element = myArray[i];
}

четверг, 14 ноября 2013 г.

javascript array_intersect()

Аналог php функции array_intersect в javascript:

function array_intersect(array1, array2)
{
   var result = array1.filter(function(n) {
      return array2.indexOf(n) !== -1;
   });

   return result;
}

javascript in_array()

Аналог php функции in_array в javascript:

function in_array(needle, haystack) {
   return haystack.indexOf(needle) !== -1;
}

воскресенье, 10 ноября 2013 г.

angularjs ng-repeat Не работает сортировка

angularjs 1.0.6

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

data-ng-repeat="(key,region) in regions | orderBy:'name'"

Я присылаю данные с сервера в json и сразу показываю:

$http.get('/get.php).success(function(response){
 $scope.regions = response;
});


Оказалось что ангулар начинает сортировать только если массив данных для сортировки уже отсортирован по ключу.

Вот такие данные он сортировать отказывался:

[
 3 => [
 'id' => 3
 'name' => 'some3'
 ],
 1 => [
 'id' => 1
 'name' => 'some2'
 ],
 2 => [
 'id' => 2
 'name' => 'some2'
 ],
]

А такие прошли на ура:

[
 1 => [
 'id' => 1
 'name' => 'some1'
 ],
 2 => [
 'id' => 2
 'name' => 'some2'
 ],
 3 => [
 'id' => 3
 'name' => 'some3'
 ],
]

среда, 6 ноября 2013 г.

mariadb-client : Зависит: mariadb-client-5.5 (= 5.5.33a+maria-1~saucy) но он не будет установлен

Если при установке mariadb вылезли ошибки:

Пакеты, имеющие неудовлетворённые зависимости:
 mariadb-client : Зависит: mariadb-client-5.5 (= 5.5.33a+maria-1~saucy) но он не будет установлен
 mariadb-server : Зависит: mariadb-server-5.5 (= 5.5.33a+maria-1~saucy) но он не будет установлен



Решение:

Смотрим актуальные версии пакетов:

apt-cache show mysql-common | grep Version
apt-cache show libmysqlclient18 | grep Version


Пример:

ivan@ivan-desktop:~$ apt-cache show mysql-common | grep Version

Version: 5.5.34-0ubuntu0.13.10.1
Version: 5.5.33a+maria-1~saucy
Version: 5.5.32-0ubuntu7

ivan@ivan-desktop:~$ apt-cache show libmysqlclient18 | grep Version

Version: 5.5.34-0ubuntu0.13.10.1
Version: 5.5.33a+maria-1~saucy
Version: 5.5.32-0ubuntu7


Указываем точную версию пакетов, которые хотим установить:

apt-get install mariadb-server-5.5 mariadb-client-5.5 \
 libmysqlclient18=5.5.33a+maria-1~saucy \
 mysql-common=5.5.33a+maria-1~saucy


Нашел тут: http://askubuntu.com/questions/365992/ubuntu-13-10-installing-mariadb

Установка Nginx + PHP + MariaDB


MariaDB

Для ubuntu saucy

sudo apt-get install software-properties-common
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
sudo add-apt-repository 'deb http://mirror.timeweb.ru/mariadb/repo/5.5/ubuntu saucy main'

sudo apt-get update
sudo apt-get install mariadb-server mariadb-client

Для других дистрибутивов надо смотреть инструкции https://downloads.mariadb.org/mariadb/repositories/



Nginx

sudo apt-get install nginx



PHP

sudo apt-get install php5-cli php5-common php5-mysql php5-gd php5-fpm php5-cgi php5-fpm php-pear php5-mcrypt php5-curl php5-imap php5-memcache php5-xsl php5-json


sudo gedit /etc/php5/fpm/php.ini

cgi.fix_pathinfo = 0



sudo gedit /etc/php5/fpm/pool.d/www.conf

security.limit_extensions = .php



sudo gedit /etc/nginx/sites-available/default

server {
listen 80;

index index.php index.html;

server_name *.localhost;

root /home/user/www/$subdomain;

set $subdomain "";

if ($host ~* ^([a-z0-9-\.]+)\.localhost$) {
set $subdomain $1;
}

location / {

try_files $uri $uri/ /index.php /index.html;

}

location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;

fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}

location ~* \.(?:jpg|ico|gif|png|css|js|svg)$ {
access_log off;
expires 30d;
}
}

ubuntu mysqldiff

Для сравнения локальных баз данных надо набрать в консоли:

mysqldiff --user=root --password=mypass oldDatabase newDatabase


пятница, 1 ноября 2013 г.

phpExcel Получение буквы колонки по индексу

Так гораздо лучше, если приходится часто изменять количество колонок в таблице, а самих колнок достаточно большое количество

<?php
$ColumnIndex = 25;
$ColumnLetter = PHPExcel_Cell::stringFromColumnIndex($ColumnIndex);