Citation: 6B_561/2018 E. 3

Compte tenu de ce qui précède, le recours doit être partiellement admis (cf. consid. 1.4 supra). L'arrêt attaqué doit être annulé et la cause renvoyée à l'autorité cantonale pour nouvelle décision. Pour le surplus, le recours doit être rejeté dans la mesure où il est recevable. Le recourant, qui n'obtient que partiellement gain de cause, supportera une partie des frais judiciaires (art. 66 al. 1 LTF). Il peut prétendre à des dépens réduits, à la charge du canton de Fribourg (art. 68 al. 1 LTF). Il peut être statué sans demander d'observations préalables (cf. ATF 133 IV 293 consid. 3.4.2 p. 296).