Размещение на сервере

Опубликовано 2015.02.20 в разделе .

Любому сайту для работы необходим сервер, на котором он будет размещён. Так же там будет размещена база данных, если она нужна. Все серверные технологии, такие как сам интерпретатор php, различные системы кэширования, системы контроля версий, почтовые системы, поисковые системы и всё остальное- так же размещаются на сервере.

Для крупных проектов серверов может быть несколько, каждый под отдельную систему. Или же сервера могут дублировать друг друга, и привыходе из строя одного из них - сайт продолжит работать, перераспределив нагрузку на остальные сервера.

Загрузить дамп в MySQL через консоль

Опубликовано 2015.02.07 в разделе .

В начале переходите в папку с дампом базы:
  1. cd /path/to/dump_folder
Затем в консоли нужно подключиться к mysql:
  1. mysql --host=localhost --user=myname --password=mypass mydb;
Потом просто:
  1. source my_dump.sql;
Чтобы покинуть mysql, но остаться в консоли - введите: Если база заархивирована в .sql.gz архив, то не подключаясь к mysql сразу вводите в консоли:
  1. gunzip < database.sql.gz | mysql -u myname -pmypass mydb;

Неактивная UITableViewCell

Опубликовано 2015.02.02 в разделе .

Если в таблице нужно сделать несколько строк не активными, то есть некликабельными - то в методе didSelectRowAtIndexPath можно заблокировать переход в другой контроллер:
  1. -(void)tableView:(UITableView *)TableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
  2. [TableView deselectRowAtIndexPath:[TableView indexPathForSelectedRow] animated:NO];
  3. }
Таким образом вы заблокируете переход по тапу на строку. Так же в методе cellForRowAtIndexPath можно задать стиль строки при тапе, точнее удалить его.

Шпаргалка по Objective C

Опубликовано 2015.01.28 в разделе .

Выровнять текст в элементе по центру:
  1. [anytextViewsetTextAlignment: NSTextAlignmentCenter];
Получить дочерние представления:
  1. - (void)listSubviewsOfView:(UIView *)view {
  2.  
  3. // получить детей главного представления
  4. NSArray *subviews = [view subviews];
  5.  
  6. // выход из функции если детей нет
  7. if ([subviews count] == 0) return;
  8.  
  9. for (UIView *subview in subviews) {
  10.  
  11. NSLog(@"subview = %@", subview);
  12.  
  13. // список детей детей
  14. [self listSubviewsOfView:subview];
  15. }
  16. }

Изменение типа данных в Objective C

Опубликовано 2015.01.28 в разделе .

Так как Objective C строго типизирован - иногда приходится менять тип данных, хоть и выглядят они порой совсем одинаково. Я сразу приведу примеры кода. NSInteger -> NSString
  1. NSString *myString = [NSString stringWithFormat: @"%d", myNSInteger];
NSNumber -> float
  1. float myFloat = [myNSNumber floatValue];
Int -> NSInteger
  1. NSInteger *myNSInteger = (NSInteger) myInt;
float -> int
  1. int myInt = (int) myFloat;

NSURLRequest с использованием timeoutInterval

Опубликовано 2015.01.28 в разделе .

Сделать удалённый запрос к серверу, не забывая о таймауте достаточно просто. Допустим у вас есть URL с которого вам нужно получить данные. И если данные не получены за 5 секунд - то выдаём ошибку. В приведённом примере я получаю JSON строку и преобразую её в словарь NSDictionary. Создаём класс с именем Requests. В .h файле:
  1. -(NSDictionary*) getRequestResponse:(NSString*)url;
В .m файле:
  1. -(NSDictionary*) getRequestResponse:(NSString*)url{
  2. //задаю таймаут в 5 секунд

UIRefreshControl для UIViewController

Опубликовано 2015.01.28 в разделе .

Если использовать табличное представление - то в настройках Storyboard даже есть специальный чекбокс, который включает обновление представления при свайпе вниз. У обычного UIViewController такой опции нет. Но её легко добавить программно: В методе viewDidLoad пропишите:
  1. UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];//инициализация
  2. refreshControl.backgroundColor = [UIColor purpleColor];//добавим фиолетовый фон
  3. refreshControl.tintColor = [UIColor whiteColor];//установим белый шрифт

Drupal node, как контейнер для содержимого материала

Опубликовано 2015.01.19 в разделе .

Нода, или материал - это единица контента на сайте. Любая статья, новость или заметка - это всё ноды. По умолчанию адрес каждого материала выглядит как node/<номер материала> Что нужно знать о нодах:
  • каждая нода имеет уникальный номер - nid (node id)
  • каждая нода имеет тип
  • ноды состоят из полей
  • каждая нода имеет два состояние- опубликована и не опубликована
Это основные признаки материалов на сайте. Теперь подробнее.

Drupal t или переводим друпал правильно

Опубликовано 2015.01.19 в разделе .

В друпале есть функция t. Да, именно одна буква, от слова translate, что означает перевод. Функция t принимает на вход один строковый аргумент и возвращает его, переведённый на язык сайта или язык текущего пользователя. Передавать строки в функцию t следует только на английском языке. Например, если у вас сайт на русском языке - то такой код должен вывести слово "Отмена":
  1. print t('Cancel');
Если какие-то строки не переведены - вы можете перевести их вручную в админке, по адресу admin/config/regional/translate/translate