Angular2 +PHP: создание сайта своими руками Начало

В рамках проекта написать «самоучитель» лучший способ закрепить пройденный материал, а для меня отказываться от php еще не время, ведь столько нажито труда и опыта, который явно не хочется терять. Предвзятое отношение к PHP можно развеять, только когда пишешь красивый и современный код, что делать куда как просто, нужно только пару тысяч строк плохого написать*))) Репозиторий примера BlogDemo.

Для клиентской части Angular2, хоть он еще и кандидат в релиз, прекрасное и гармоничное решение (сами увидите), а серверную часть мы сделаем на php и можем там использовать все все что нам в php нравится. Начнем с клиента

Продолжить чтение…


Facebook: REST API is deprecated for versions v2.1 или как взять количество лайков

В связи с отключением апи фейсбука на части сайтов посыпались счетчики лайков (т.к. плагины самого фб тяжелые для интерфейса, а собственно количества можно взять и своим скриптом) Следующий запрос больше не работает уффф

$url = 'http://api.facebook.com/restserver.php?method=links.getStats&format=json&urls=' . $this->url;
$json_string = $this->file_get_contents_curl($url);
$json = json_decode($json_string, true);

Замените его на следующий код и все снова станет практически прилично

$url = 'https://graph.facebook.com/v2.7/' . $this->url . '?access_token=ВАШТОКЕН';
$json_string = $this->file_get_contents_curl($url);
$json = json_decode($json_string, true);

Angular2: Изменение класса таба через ElementRef

Возвращаясь к прошлому примеру — в изменении не хватает активации пункта меню (вернее она есть — но мы не сможем с ней работать если нужно .active дописать к элементу li

<h1>{{title}}</h1>
<ul>
<li><a [routerLink]="['/data']" routerLinkActive="active">{{ 'Data' }}</a></li>
<li><a [routerLink]="['/contacts']" routerLinkActive="active">{{ 'Contacts' }}</a></li>
</ul>

Продолжить чтение…


Angular2: Изменение мета тайтла страницы и роутер

Когда мы разрабатываем приложение — то даже тривиальные задачи на новых движках могут быть неоднозначны, поэтому продолжаем наши игры с ангуляром. Я люблю чтобы сайты были «цельными» и каждая кнопочка меняла вид и что-то реальное делала, ну а изменение заголовков страницы при переходе на новый раздел — это уже «правило этикета» много лет.

Продолжить чтение…


Angular2: Ошибка переменной в шаблоне (no context)

Следи за собой, будь осторожен

Наивно полагая что все очень круто и можно вот так просто работать с переменной из загрузки я потеряла два часа времени на пустом месте, вокруг ошибки «нет такой data.id» и хоть разбейся. И ведь ее на самом деле и не было.

export class Data {
	id: number;
}
 
import { Component } from '@angular/core';
import { HTTP_PROVIDERS } from '@angular/http';
import { Data, DataService } from './app.data.service';
 
@Component({
	selector: 'my-app',
	providers: [DataService, HTTP_PROVIDERS],
	template : `{{data.id}}`
})
 
class AppComponent {
	private data : Data;
 
	constructor(private dataService: DataService) {
 
	}
	ngOnInit() {
		this.dataService.load().then(data => this.data = data);
	}
}
export {AppComponent};

А все почему — потому что шаблон выводился до загрузки. Решением стало дефолтное значение, и никаких no context в шаблоне.

class AppComponent {
	constructor(private dataService: DataService) {
		this.data.id = 11111;
	}
...