Danny Dyer has signed a new £1 million contract for various shows on the BBC but won't be allowed to appear on programmes on other channels.