dashboard.php 45 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398
  1. <?php
  2. /** @var yii\web\View $this */
  3. use yii\helpers\Html;
  4. use yii\widgets\DetailView;
  5. $cache = Yii::$app->cache;
  6. $month = array(
  7. 1 => 'Январь',
  8. 2 => 'Февраль',
  9. 3 => 'Март',
  10. 4 => 'Апрель',
  11. 5 => 'Май',
  12. 6 => 'Июнь',
  13. 7 => 'Июль',
  14. 8 => 'Август',
  15. 9 => 'Сентябрь',
  16. 10 => 'Октябрь',
  17. 11 => 'Ноябрь',
  18. 12 => 'Декабрь'
  19. );
  20. $sstart = date("Y-m-d", strtotime( date("Y-m-01")." 12 months ago"));
  21. $send = date("Y-m-d", strtotime( date("Y-m-01")." 1 days ago"));
  22. $mstart = date("Y-m-d", strtotime( date("Y-m-01")." 2 months ago"));
  23. $mend = date("Y-m-d", strtotime( date("Y-m-01")." 1 months ago"));
  24. //Прошлый период
  25. $sstartl = date("Y-m-d", strtotime( $sstart." 12 months ago"));
  26. $sendl = date("Y-m-d", strtotime( $send." 12 months ago"));
  27. $this->title = "Аналитика $sstart - $send";
  28. $this->params['breadcrumbs'][] = ['label' => $this->title, 'url' => ['index']];
  29. // $r = $model->YGetByTime(['date1'=>$mstart, 'date2'=>$mend,'dimensions'=>'ym:s:publisherArticle','metrics'=>'ym:s:publisherviews','filters'=>'(ym:s:publisherArticle!n)','sort'=>'-ym:s:publisherviews']);
  30. // print_a($r);
  31. ?>
  32. <section class="content">
  33. <div class="container-fluid">
  34. <div class="row">
  35. <div class="col-12">
  36. <div class="alert bg-gray disabled color-palette alert-dismissible">
  37. <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
  38. <h5><i class="icon fas fa-info"></i> Alert!</h5>
  39. <h2>Периуды текущий: <span class="text-white"><b><?=$sstart?> - <?=$send?></b></span>, предыдущий: <span class="text-white"><?=$sstartl?> - <?=$sendl?></span></h2>
  40. </div>
  41. </div>
  42. </div>
  43. <div class="row">
  44. <div class="col-12">
  45. <div class="callout callout-info">
  46. <h5><i class="fas fa-info"></i> amic.ru:</h5>
  47. Данные <b>amic.ru</b> по данным liveinternet
  48. <br>
  49. <div class="form-group clearfix">
  50. <div class="icheck-primary d-inline">
  51. <input type="button" id="checkboxPrimary1" onclick="window.location.href=window.location.href+'?clearcache=true'" value="Сбросить кэш">
  52. </div>
  53. </div>
  54. </div>
  55. <div class="card">
  56. <div class="card-body">
  57. <div class="row u-mb-large">
  58. <div class="col-xl-12">
  59. <div class="c-graph-card" data-mh="secondary-graphs">
  60. <div class="c-graph-card__content u-flex u-justify-between u-align-items-baseline">
  61. <h3 class="c-graph-card__title u-h4">Отказы</h3>
  62. <div class="u-text-right">
  63. <h4 class="u-h1 u-mb-zero"> <span class="u-text-small u-text-uppercase u-text-mute"> </span><span id="bc"></h4>
  64. <span class="u-text-small u-text-uppercase u-text-mute">Меньше - лучше</span>
  65. </div>
  66. </div>
  67. <div class="c-graph-card__chart">
  68. <canvas id="jschartb" height="300" role="img" ></canvas>
  69. </div>
  70. </div>
  71. </div>
  72. </div>
  73. </div>
  74. </div>
  75. <div class="card">
  76. <div class="card-body">
  77. <div class="row u-mb-large">
  78. <div class="col-xl-12">
  79. <div class="c-graph-card" data-mh="secondary-graphs">
  80. <div class="c-graph-card__content u-flex u-justify-between u-align-items-baseline">
  81. <h3 class="c-graph-card__title u-h4">ядро</h3>
  82. <div class="u-text-right">
  83. <h4 class="u-h1 u-mb-zero"> <span class="u-text-small u-text-uppercase u-text-mute yadroamic"> </span></h4>
  84. <span class="u-text-small u-text-uppercase u-text-mute">Больше - лучше</span>
  85. </div>
  86. </div>
  87. <div class="c-graph-card__chart">
  88. <canvas id="jschartYadro" height="300" role="img" ></canvas>
  89. </div>
  90. </div>
  91. </div>
  92. </div>
  93. </div>
  94. </div>
  95. <div class="card">
  96. <div class="card-body">
  97. <div class="row u-mb-large">
  98. <div class="col-xl-12">
  99. <div class="c-graph-card" data-mh="secondary-graphs">
  100. <div class="c-graph-card__content u-flex u-justify-between u-align-items-baseline">
  101. <h3 class="c-graph-card__title u-h4">Посетители</h3>
  102. <div class="u-text-right">
  103. <h4 class="u-h1 u-mb-zero"> <span class="u-text-small u-text-uppercase u-text-mute us"> </span></h4>
  104. <span class="u-text-small u-text-uppercase u-text-mute">Больше - лучше</span>
  105. </div>
  106. </div>
  107. <div class="c-graph-card__chart">
  108. <canvas id="jschartUsers" height="300" role="img" ></canvas>
  109. </div>
  110. </div>
  111. </div>
  112. </div>
  113. </div>
  114. </div>
  115. <div class="card">
  116. <div class="card-body">
  117. <div class="row u-mb-large">
  118. <div class="col-xl-12">
  119. <div class="c-graph-card" data-mh="secondary-graphs">
  120. <div class="c-graph-card__content u-flex u-justify-between u-align-items-baseline">
  121. <h3 class="c-graph-card__title u-h4">Посетители среднесуточно</h3>
  122. <div class="u-text-right">
  123. <h4 class="u-h1 u-mb-zero"> <span class="u-text-small u-text-uppercase u-text-mute um"> </span></h4>
  124. <span class="u-text-small u-text-uppercase u-text-mute">Больше - лучше</span>
  125. </div>
  126. </div>
  127. <div class="c-graph-card__chart">
  128. <canvas id="jschartUsersm" height="300" role="img" ></canvas>
  129. </div>
  130. </div>
  131. </div>
  132. </div>
  133. </div>
  134. </div>
  135. <div class="card">
  136. <div class="card-body">
  137. <div class="row u-mb-large">
  138. <div class="col-xl-12">
  139. <div class="c-graph-card" data-mh="secondary-graphs">
  140. <div class="c-graph-card__content u-flex u-justify-between u-align-items-baseline">
  141. <h3 class="c-graph-card__title u-h4">Просмотры</h3>
  142. <div class="u-text-right">
  143. <h4 class="u-h1 u-mb-zero"> <span class="u-text-small u-text-uppercase u-text-mute vs"> </span></h4>
  144. <span class="u-text-small u-text-uppercase u-text-mute">Больше - лучше</span>
  145. </div>
  146. </div>
  147. <div class="c-graph-card__chart">
  148. <canvas id="jschartVis" height="300" role="img" ></canvas>
  149. </div>
  150. </div>
  151. </div>
  152. </div>
  153. </div>
  154. </div>
  155. <div class="card">
  156. <div class="card-body">
  157. <div class="row u-mb-large">
  158. <div class="col-xl-12">
  159. <div class="c-graph-card" data-mh="secondary-graphs">
  160. <div class="c-graph-card__content u-flex u-justify-between u-align-items-baseline">
  161. <h3 class="c-graph-card__title u-h4">Просмотров на посетителя</h3>
  162. <div class="u-text-right">
  163. <h4 class="u-h1 u-mb-zero"> <span class="u-text-small u-text-uppercase u-text-mute deep"> </span></h4>
  164. <span class="u-text-small u-text-uppercase u-text-mute">Страницпросмотренно пользователем ср.</span>
  165. </div>
  166. </div>
  167. <div class="c-graph-card__chart">
  168. <canvas id="jschartDeep" height="300" role="img" ></canvas>
  169. </div>
  170. </div>
  171. </div>
  172. </div>
  173. </div>
  174. </div>
  175. <div class="card">
  176. <div class="card-body">
  177. <div class="row u-mb-large">
  178. <div class="col-xl-12">
  179. <div class="c-graph-card" data-mh="secondary-graphs">
  180. <div class="c-graph-card__content u-flex u-justify-between u-align-items-baseline">
  181. <h3 class="c-graph-card__title u-h4">Средняя длительность (мин.)</h3>
  182. <div class="u-text-right">
  183. <h4 class="u-h1 u-mb-zero"> <span class="u-text-small u-text-uppercase u-text-mute time"> </span></h4>
  184. <span class="u-text-small u-text-uppercase u-text-mute">Больше - лучше</span>
  185. </div>
  186. </div>
  187. <div class="c-graph-card__chart">
  188. <canvas id="jschartTime" height="300" role="img" ></canvas>
  189. </div>
  190. </div>
  191. </div>
  192. </div>
  193. </div>
  194. </div>
  195. <div class="card">
  196. <div class="card-body">
  197. <div class="row u-mb-large">
  198. <div class="col-xl-12">
  199. <div class="c-graph-card" data-mh="secondary-graphs">
  200. <div class="c-graph-card__content u-flex u-justify-between u-align-items-baseline">
  201. <h3 class="c-graph-card__title u-h4">Поисковый трафик</h3>
  202. <div class="u-text-right">
  203. <h4 class="u-h1 u-mb-zero"> <span class="u-text-small u-text-uppercase u-text-mute search"> </span></h4>
  204. <span class="u-text-small u-text-uppercase u-text-mute">Все поисковые системы</span>
  205. </div>
  206. </div>
  207. <div class="c-graph-card__chart">
  208. <canvas id="jschartSearch" height="300" role="img" ></canvas>
  209. </div>
  210. </div>
  211. </div>
  212. </div>
  213. </div>
  214. </div>
  215. </div>
  216. </div>
  217. <div class="row">
  218. <div class="col-6">
  219. <div class="card">
  220. <div class="card-header border-0">
  221. <div class="d-flex justify-content-between">
  222. <h3 class="card-title">Региональные (Барнаул, Новосибирск, Горно-Алтайск) среднесуточные</h3>
  223. <a href="javascript:void(0);">View Report</a>
  224. </div>
  225. </div>
  226. <div class="card-body">
  227. <div class="d-flex">
  228. <p class="d-flex flex-column">
  229. <span class="text-bold text-lg RegEx">820</span>
  230. <span>среднесуточные в месяц</span>
  231. </p>
  232. <p class="ml-auto d-flex flex-column text-right">
  233. <span class="text-success">
  234. <span class="Regp">12.5%</span>
  235. </span>
  236. <span class="text-muted">От всех пользователей</span>
  237. </p>
  238. </div>
  239. <div class="position-relative mb-4">
  240. <div class="chartjs-size-monitor">
  241. <div class="chartjs-size-monitor-expand">
  242. <div class=""></div>
  243. </div>
  244. <div class="chartjs-size-monitor-shrink">
  245. <div class=""></div>
  246. </div>
  247. </div>
  248. <canvas id="jschartRegEx" style="display: block; width: 770px; height: 200px;" class="chartjs-render-monitor" width="770" height="200"></canvas>
  249. </div>
  250. <div class="d-flex flex-row justify-content-end">
  251. </div>
  252. </div>
  253. </div>
  254. </div>
  255. <div class="col-6">
  256. <div class="card">
  257. <div class="card-header border-0">
  258. <div class="d-flex justify-content-between">
  259. <h3 class="card-title">Региональные (Барнаул)</h3>
  260. <a href="javascript:void(0);">View Report</a>
  261. </div>
  262. </div>
  263. <div class="card-body">
  264. <div class="d-flex">
  265. <p class="d-flex flex-column">
  266. <span class="text-bold text-lg region">820</span>
  267. <span>Месяц</span>
  268. </p>
  269. </div>
  270. <div class="position-relative mb-4">
  271. <div class="chartjs-size-monitor">
  272. <div class="chartjs-size-monitor-expand">
  273. <div class=""></div>
  274. </div>
  275. <div class="chartjs-size-monitor-shrink">
  276. <div class=""></div>
  277. </div>
  278. </div>
  279. <canvas id="jschartRegion" style="display: block; width: 770px; height: 200px;" class="chartjs-render-monitor" width="770" height="200"></canvas>
  280. </div>
  281. <div class="d-flex flex-row justify-content-end">
  282. </div>
  283. </div>
  284. </div>
  285. </div>
  286. </div>
  287. <div class="row">
  288. <div class="col-6">
  289. <div class="card">
  290. <div class="card-body">
  291. <div class="row u-mb-large">
  292. <div class="col-xl-12">
  293. <div class="c-graph-card" data-mh="secondary-graphs">
  294. <div class="c-graph-card__content u-flex u-justify-between u-align-items-baseline">
  295. <h3 class="c-graph-card__title u-h4">Источники</h3>
  296. <div class="u-text-right">
  297. <h4 class="u-h1 u-mb-zero"> <span class="u-text-small u-text-uppercase u-text-mute"> </span></h4>
  298. <span class="u-text-small u-text-uppercase u-text-mute"></span>
  299. </div>
  300. </div>
  301. <div class="c-graph-card__chart">
  302. <canvas id="jschartSource" height="300" role="img" ></canvas>
  303. </div>
  304. </div>
  305. </div>
  306. </div>
  307. </div>
  308. </div>
  309. </div>
  310. </div>
  311. <div class="row">
  312. <div class="col-12">
  313. <div class="card">
  314. <div class="card-header border-0">
  315. <h3 class="card-title">Источники</h3>
  316. <div class="card-tools">
  317. <a href="#" class="btn btn-tool btn-sm">
  318. <i class="fas fa-download"></i>
  319. </a>
  320. <a href="#" class="btn btn-tool btn-sm">
  321. <i class="fas fa-bars"></i>
  322. </a>
  323. </div>
  324. </div>
  325. <div class="card-body table-responsive p-0">
  326. <table class="table table-striped table-valign-middle" id="reftab">
  327. <thead>
  328. <tr>
  329. <th>Источник</th>
  330. <th class="sorting">Переходов</th>
  331. <th>Динамика</th>
  332. <th class="sorting">Пред. месяц</th>
  333. </tr>
  334. </thead>
  335. <tbody id="referertab">
  336. </tbody>
  337. </table>
  338. </div>
  339. </div>
  340. </div>
  341. </div>
  342. <div class="row">
  343. <div class="col-3">
  344. <div class="card">
  345. <div class="card-header border-0">
  346. <h3 class="card-title">Таблица amic.ru</h3>
  347. <div class="card-tools">
  348. <a href="#" class="btn btn-tool btn-sm">
  349. <i class="fas fa-download"></i>
  350. </a>
  351. <a href="#" class="btn btn-tool btn-sm">
  352. <i class="fas fa-bars"></i>
  353. </a>
  354. </div>
  355. </div>
  356. <div class="card-body table-responsive p-0">
  357. <table class="table table-striped table-valign-middle">
  358. <thead>
  359. <tr class="bg-purple">
  360. <th>Показатель</th>
  361. <th>Значение</th>
  362. </tr>
  363. </thead>
  364. <tbody>
  365. <tr>
  366. <td>
  367. Посетителей суммарно
  368. </td>
  369. <td class="us">$13 USD</td>
  370. </tr>
  371. <tr>
  372. <td>
  373. Просмотров суммарно
  374. </td>
  375. <td class="vs">$29 USD</td>
  376. </tr>
  377. <tr>
  378. <td>
  379. Региональных посетителей
  380. </td>
  381. <td class="region">$1,230 USD</td>
  382. </tr>
  383. <tr>
  384. <td>
  385. Ядро
  386. </td>
  387. <td class="yadroamic">$1,230 USD</td>
  388. </tr>
  389. <tr>
  390. <td>
  391. % посетителей региона
  392. </td>
  393. <td class="regpercent">$1,230 USD</td>
  394. </tr>
  395. <tr>
  396. <td>
  397. Яндекс Дзен (канал)
  398. </td>
  399. <td class="refdzen">$1,230 USD</td>
  400. </tr>
  401. <tr>
  402. <td>
  403. Яндекс Дзен (Новости)
  404. </td>
  405. <td class="refdzennews">$1,230 USD</td>
  406. </tr>
  407. <thead>
  408. <tr class="bg-purple">
  409. <th>Показатель</th>
  410. <th>Значение</th>
  411. </tr>
  412. </thead>
  413. <tr>
  414. <td>
  415. Посетителей среднесуточно
  416. </td>
  417. <td class="um">$1,230 USD</td>
  418. </tr>
  419. <tr>
  420. <td>
  421. Глубина
  422. </td>
  423. <td class="deep">$1,230 USD</td>
  424. </tr>
  425. <tr>
  426. <td>
  427. Длительность
  428. </td>
  429. <td class="time">$1,230 USD</td>
  430. </tr>
  431. <tr>
  432. <td>
  433. Трафик поисковый
  434. </td>
  435. <td class="search">$1,230 USD</td>
  436. </tr>
  437. </tbody>
  438. </table>
  439. </div>
  440. </div>
  441. </div>
  442. <div class="col-3">
  443. <div class="card">
  444. <div class="card-header border-0">
  445. <h3 class="card-title">Таблица amic.ru прогноз</h3>
  446. <div class="card-tools">
  447. <a href="#" class="btn btn-tool btn-sm">
  448. <i class="fas fa-download"></i>
  449. </a>
  450. <a href="https://docs.google.com/spreadsheets/d/1JTBQyUF9CEgQKF-_8vFSRMOlrlqVfs1zcdMgZkmrAaY/edit?usp=sharing" class="btn btn-tool btn-sm">
  451. <i class="fas fa-bars"></i>
  452. </a>
  453. </div>
  454. </div>
  455. <div class="card-body table-responsive p-0">
  456. <table class="table table-striped table-valign-middle">
  457. <thead>
  458. <tr class="bg-purple">
  459. <th>Показатель</th>
  460. <th>Значение</th>
  461. </tr>
  462. </thead>
  463. <tbody>
  464. <tr>
  465. <td>
  466. Просмотры суммарно
  467. </td>
  468. <td class="vs">$13 USD</td>
  469. </tr>
  470. <tr>
  471. <td>
  472. Посетители суммарно
  473. </td>
  474. <td class="us">$29 USD</td>
  475. </tr>
  476. <tr>
  477. <td>
  478. Посетители среднесуточно
  479. </td>
  480. <td class="um">$29 USD</td>
  481. </tr>
  482. <tr>
  483. <td>
  484. Регионалы (Новосибирск+Барнаул+Горно-Алтайск)
  485. </td>
  486. <td class="RegEx">$29 USD</td>
  487. </tr>
  488. <tr>
  489. <td>
  490. Длительность
  491. </td>
  492. <td class="time">$1,230 USD</td>
  493. </tr>
  494. <tr>
  495. <td>
  496. Глубина
  497. </td>
  498. <td class="deep">$1,230 USD</td>
  499. </tr>
  500. <tr>
  501. <td>
  502. Ядро
  503. </td>
  504. <td class="yadroamic">$1,230 USD</td>
  505. </tr>
  506. </tbody>
  507. </table>
  508. </div>
  509. </div>
  510. </div>
  511. <div class="col-3">
  512. <div class="card">
  513. <div class="card-header border-0">
  514. <h3 class="card-title">Таблица altapress.ru</h3>
  515. <div class="card-tools">
  516. <a href="#" class="btn btn-tool btn-sm">
  517. <i class="fas fa-download"></i>
  518. </a>
  519. <a href="#" class="btn btn-tool btn-sm">
  520. <i class="fas fa-bars"></i>
  521. </a>
  522. </div>
  523. </div>
  524. <div class="card-body table-responsive p-0">
  525. <table class="table table-striped table-valign-middle">
  526. <thead>
  527. <tr class="bg-purple">
  528. <th>Показатель</th>
  529. <th>Значение</th>
  530. </tr>
  531. </thead>
  532. <tbody>
  533. <tr>
  534. <td>
  535. Посетителей суммарно
  536. </td>
  537. <td class="usA">$13 USD</td>
  538. </tr>
  539. <tr>
  540. <td>
  541. Просмотров суммарно
  542. </td>
  543. <td class="vsA">$29 USD</td>
  544. </tr>
  545. <tr>
  546. <td>
  547. Региональных посетителей
  548. </td>
  549. <td class="regA">$1,230 USD</td>
  550. </tr>
  551. <tr>
  552. <td>
  553. Ядро
  554. </td>
  555. <td class="yadroA">$1,230 USD</td>
  556. </tr>
  557. <tr>
  558. <td>
  559. % посетителей региона
  560. </td>
  561. <td class="regpA">$1,230 USD</td>
  562. </tr>
  563. </tbody>
  564. </table>
  565. </div>
  566. </div>
  567. </div>
  568. <div class="col-3">
  569. <div class="card">
  570. <div class="card-header border-0">
  571. <h3 class="card-title">Таблица tolknews.ru</h3>
  572. <div class="card-tools">
  573. <a href="#" class="btn btn-tool btn-sm">
  574. <i class="fas fa-download"></i>
  575. </a>
  576. <a href="#" class="btn btn-tool btn-sm">
  577. <i class="fas fa-bars"></i>
  578. </a>
  579. </div>
  580. </div>
  581. <div class="card-body table-responsive p-0">
  582. <table class="table table-striped table-valign-middle">
  583. <thead>
  584. <tr class="bg-purple">
  585. <th>Показатель</th>
  586. <th>Значение</th>
  587. </tr>
  588. </thead>
  589. <tbody>
  590. <tr>
  591. <td>
  592. Посетителей суммарно
  593. </td>
  594. <td class="usT">$13 USD</td>
  595. </tr>
  596. <tr>
  597. <td>
  598. Просмотров суммарно
  599. </td>
  600. <td class="vsT">$29 USD</td>
  601. </tr>
  602. <tr>
  603. <td>
  604. Региональных посетителей
  605. </td>
  606. <td class="regT">$1,230 USD</td>
  607. </tr>
  608. <tr>
  609. <td>
  610. % посетителей региона
  611. </td>
  612. <td class="regpT">$1,230 USD</td>
  613. </tr>
  614. </tbody>
  615. </table>
  616. </div>
  617. </div>
  618. </div>
  619. </div>
  620. <div class="row">
  621. <div class="col-12">
  622. <div class="callout callout-info">
  623. <h5><i class="fas fa-info"></i> altapress.ru:</h5>
  624. Данные <b>altapress.ru</b> по данным liveinternet
  625. </div>
  626. <div class="card">
  627. <div class="card-body">
  628. <div class="row u-mb-large">
  629. <div class="col-xl-12">
  630. <div class="c-graph-card" data-mh="secondary-graphs">
  631. <div class="c-graph-card__content u-flex u-justify-between u-align-items-baseline">
  632. <h3 class="c-graph-card__title u-h4">Посетители</h3>
  633. <div class="u-text-right">
  634. <h4 class="u-h1 u-mb-zero"> <span class="u-text-small u-text-uppercase u-text-mute usA"> </span></h4>
  635. <span class="u-text-small u-text-uppercase u-text-mute">Больше - лучше</span>
  636. </div>
  637. </div>
  638. <div class="c-graph-card__chart">
  639. <canvas id="jschartUsersA" height="300" role="img" ></canvas>
  640. </div>
  641. </div>
  642. </div>
  643. </div>
  644. </div>
  645. </div>
  646. <div class="card">
  647. <div class="card-body">
  648. <div class="row u-mb-large">
  649. <div class="col-xl-12">
  650. <div class="c-graph-card" data-mh="secondary-graphs">
  651. <div class="c-graph-card__content u-flex u-justify-between u-align-items-baseline">
  652. <h3 class="c-graph-card__title u-h4">Просмотры</h3>
  653. <div class="u-text-right">
  654. <h4 class="u-h1 u-mb-zero"> <span class="u-text-small u-text-uppercase u-text-mute vsA"> </span></h4>
  655. <span class="u-text-small u-text-uppercase u-text-mute">Больше - лучше</span>
  656. </div>
  657. </div>
  658. <div class="c-graph-card__chart">
  659. <canvas id="jschartVisA" height="300" role="img" ></canvas>
  660. </div>
  661. </div>
  662. </div>
  663. </div>
  664. </div>
  665. </div>
  666. <div class="card">
  667. <div class="card-body">
  668. <div class="row u-mb-large">
  669. <div class="col-xl-12">
  670. <div class="c-graph-card" data-mh="secondary-graphs">
  671. <div class="c-graph-card__content u-flex u-justify-between u-align-items-baseline">
  672. <h3 class="c-graph-card__title u-h4">Ядро</h3>
  673. <div class="u-text-right">
  674. <h4 class="u-h1 u-mb-zero"> <span class="u-text-small u-text-uppercase u-text-mute yadroA"> </span></h4>
  675. <span class="u-text-small u-text-uppercase u-text-mute">Больше - лучше</span>
  676. </div>
  677. </div>
  678. <div class="c-graph-card__chart">
  679. <canvas id="jschartYadroA" height="300" role="img" ></canvas>
  680. </div>
  681. </div>
  682. </div>
  683. </div>
  684. </div>
  685. </div>
  686. <div class="card">
  687. <div class="card-body">
  688. <div class="row u-mb-large">
  689. <div class="col-xl-12">
  690. <div class="c-graph-card" data-mh="secondary-graphs">
  691. <div class="c-graph-card__content u-flex u-justify-between u-align-items-baseline">
  692. <h3 class="c-graph-card__title u-h4">Посетители amic vs altapress</h3>
  693. <div class="u-text-right">
  694. <h4 class="u-h1 u-mb-zero"> <span class="u-text-small u-text-uppercase u-text-mute"> </span></h4>
  695. <span class="u-text-small u-text-uppercase u-text-mute">Больше - лучше</span>
  696. </div>
  697. </div>
  698. <div class="c-graph-card__chart">
  699. <canvas id="jschartAmA" height="300" role="img" ></canvas>
  700. </div>
  701. </div>
  702. </div>
  703. </div>
  704. </div>
  705. </div>
  706. <div class="callout callout-info">
  707. <h5><i class="fas fa-info"></i> tolknews.ru:</h5>
  708. Данные <b>tolknews.ru</b> по данным liveinternet
  709. </div>
  710. <div class="card">
  711. <div class="card-body">
  712. <div class="row u-mb-large">
  713. <div class="col-xl-12">
  714. <div class="c-graph-card" data-mh="secondary-graphs">
  715. <div class="c-graph-card__content u-flex u-justify-between u-align-items-baseline">
  716. <h3 class="c-graph-card__title u-h4">Посетители</h3>
  717. <div class="u-text-right">
  718. <h4 class="u-h1 u-mb-zero"> <span class="u-text-small u-text-uppercase u-text-mute usT"> </span></h4>
  719. <span class="u-text-small u-text-uppercase u-text-mute">Больше - лучше</span>
  720. </div>
  721. </div>
  722. <div class="c-graph-card__chart">
  723. <canvas id="jschartUsersT" height="300" role="img" ></canvas>
  724. </div>
  725. </div>
  726. </div>
  727. </div>
  728. </div>
  729. </div>
  730. <div class="card">
  731. <div class="card-body">
  732. <div class="row u-mb-large">
  733. <div class="col-xl-12">
  734. <div class="c-graph-card" data-mh="secondary-graphs">
  735. <div class="c-graph-card__content u-flex u-justify-between u-align-items-baseline">
  736. <h3 class="c-graph-card__title u-h4">Просмотры</h3>
  737. <div class="u-text-right">
  738. <h4 class="u-h1 u-mb-zero"> <span class="u-text-small u-text-uppercase u-text-mute vsT"> </span></h4>
  739. <span class="u-text-small u-text-uppercase u-text-mute">Больше - лучше</span>
  740. </div>
  741. </div>
  742. <div class="c-graph-card__chart">
  743. <canvas id="jschartVisT" height="300" role="img" ></canvas>
  744. </div>
  745. </div>
  746. </div>
  747. </div>
  748. </div>
  749. </div>
  750. <div class="card">
  751. <div class="card-body">
  752. <div class="row u-mb-large">
  753. <div class="col-xl-12">
  754. <div class="c-graph-card" data-mh="secondary-graphs">
  755. <div class="c-graph-card__content u-flex u-justify-between u-align-items-baseline">
  756. <h3 class="c-graph-card__title u-h4">Посетители amic vs tolknews</h3>
  757. <div class="u-text-right">
  758. <h4 class="u-h1 u-mb-zero"> <span class="u-text-small u-text-uppercase u-text-mute"> </span></h4>
  759. <span class="u-text-small u-text-uppercase u-text-mute">Больше - лучше</span>
  760. </div>
  761. </div>
  762. <div class="c-graph-card__chart">
  763. <canvas id="jschartAmT" height="300" role="img" ></canvas>
  764. </div>
  765. </div>
  766. </div>
  767. </div>
  768. </div>
  769. </div>
  770. </div>
  771. </div>
  772. </section>
  773. <?
  774. $end = true;
  775. $dcur = strtotime($sstart);
  776. $m = '';
  777. $e = strtotime($send);
  778. $count = 0;
  779. while( $end ){
  780. $m .= ($m)?', ':'';
  781. $m .= '"'.$month[date('n', $dcur)].'"';
  782. $dcur = strtotime( date("Y-m-d",$dcur).' +1 month' );
  783. $count++;
  784. if( $dcur > $e ) $end = false;
  785. }
  786. $smoth = $m;
  787. $s = '';
  788. $gm = [];
  789. $end = true;
  790. $dcur = strtotime($sstart);
  791. $e = strtotime($send);
  792. while( $end ){
  793. $gm[] = ['g'=>date('Y', $dcur), 'm'=>date('n', $dcur)];
  794. $dcur = strtotime( date("Y-m-d", $dcur).' +1 month' );
  795. if( $dcur > $e ) $end = false;
  796. }
  797. $aregm = $model->GetRegionsSite();
  798. //print_a($aregm);
  799. ?>
  800. <script>
  801. <?
  802. $js_array = json_encode($gm);
  803. echo "var gm = ". $js_array . ";\n";
  804. $js_array = json_encode($aregm);
  805. echo "var aregm = ". $js_array . ";\n";
  806. ?>
  807. $(function(){
  808. var cuser = 0;
  809. var creg = 0;
  810. var regusersum = 0;
  811. var usersum = 0;
  812. var newssum = 0;
  813. var hdata = [];
  814. var myevent = new Event('alldata', {bubbles: true});
  815. // document.dispatchEvent(myevent);
  816. /*
  817. ###############################
  818. Отказы
  819. ###############################
  820. */
  821. $.getJSON("/manager/analytics/ajax-yglob", {dstart:'<?=$sstart?>',dend:'<?=$send?>'}, function( data ) {
  822. if( data.status == 'ok' ){
  823. var data_all = data.data;
  824. $.getJSON("/manager/analytics/ajax-yglob", {dstart:'<?=$sstartl?>',dend:'<?=$sendl?>'}, function( data1 ) {
  825. if( data1.status == 'ok' ){
  826. var data_l = data1.data;
  827. }else{
  828. var data_l = null;
  829. }
  830. Chuser( data_all, data_l, 'bo', 'jschartb' );
  831. x = data_all['bo'].split(',').map(Number);
  832. $('#bc').text(x[x.length-1]);
  833. });
  834. }else{
  835. console.log(data.msg);
  836. }
  837. });
  838. var automat = [
  839. {metr: 'https://www.liveinternet.ru/stat/amicru/visitors.csv?id=2', chart:'jschartYadro', info:'yadroamic'},
  840. {metr: 'https://www.liveinternet.ru/stat/amicru/index.csv?id=8&total=yes', chart:'jschartUsers', info:'us'},
  841. {metr: 'https://www.liveinternet.ru/stat/amicru/index.csv?id=8&total=no', chart:'jschartUsersm', info:'um'},
  842. {metr: 'https://www.liveinternet.ru/stat/amicru/index.csv?id=0&total=yes', chart:'jschartVis', info:'vs'},
  843. {metr: 'https://www.liveinternet.ru/stat/amicru/index.csv?id=ratio&total=yes', chart:'jschartDeep', info:'deep'},
  844. {metr: 'https://www.liveinternet.ru/stat/amicru/index.csv?id=6&total=yes', chart:'jschartTime', info:'time'},
  845. {metr: 'https://www.liveinternet.ru/stat/amicru/index.csv?slice=barnaul&id=8&total=yes', chart:'jschartRegion', info:'region'},
  846. {metr: 'https://www.liveinternet.ru/stat/amicru/searches.csv?id=total&relgraph=no&total=yes', chart:'jschartSearch', info:'search'},
  847. //altapress
  848. {metr: 'https://www.liveinternet.ru/stat/altapress/visitors.csv?id=2', chart:'jschartYadroA', info:'yadroA'},
  849. {metr: 'https://www.liveinternet.ru/stat/altapress/index.csv?id=8&total=yes', chart:'jschartUsersA', info:'usA'},
  850. {metr: 'https://www.liveinternet.ru/stat/altapress/index.csv?id=0&total=yes', chart:'jschartVisA', info:'vsA'},
  851. // tolknews.ru
  852. {metr: 'https://www.liveinternet.ru/stat/tolknews.ru/index.csv?id=8&total=yes', chart:'jschartUsersT', info:'usT'},
  853. {metr: 'https://www.liveinternet.ru/stat/tolknews.ru/index.csv?id=0&total=yes', chart:'jschartVisT', info:'vsT'},
  854. ];
  855. var cnt = automat.length;
  856. /*
  857. ###############################
  858. Обработка и вывод графиков
  859. ###############################
  860. */
  861. function chauto(el){
  862. var metr = el.metr;
  863. var ch = el.chart;
  864. var info = el.info;
  865. var YY = '<?=date("Y")?>';
  866. var MM = <?=(int) date("n")?>;
  867. //, 'dcache':true
  868. var param={metrics:metr,type:'2d'};
  869. if( <?= Yii::$app->request->get('clearcache', 0);?> ){
  870. console.log('clear');
  871. param={metrics:metr,type:'2d', 'dcache':true};
  872. }
  873. $.getJSON("/manager/analytics/ajax-getlive", param, function( data ) {
  874. if( data.status == 'ok' ){
  875. // data_all = data.datas;
  876. console.log(data);
  877. cnt--;
  878. var l = data.data.length;
  879. if( typeof data.data[l-1][YY][MM] != "undefined" ){
  880. var shift = 1;
  881. }else{
  882. var shift = 0;
  883. }
  884. var data_sp = data.datas.split(',');
  885. var data_sp1 = data.datas.split(',');
  886. if( shift ) data_sp.pop();
  887. var a = data_sp.slice( data_sp.length-<?=$count?>-shift );
  888. var a2 = data_sp1.slice( -(<?=$count?>+12+shift) );
  889. var data_1 = a.toString();
  890. var data_2 = a2.toString();
  891. hdata[info] = data_1;
  892. if( cnt == 0 ) document.dispatchEvent(myevent);
  893. Chuser( data_1, data_2, '', ch );
  894. // x = data_1['bo'].split(',').map(Number);
  895. $('.'+info).text(data_sp[data_sp.length-1]);
  896. if( info == 'um' ){
  897. cuser = data_sp[data_sp.length-1];
  898. }
  899. if( info == 'um' && creg ){
  900. var per = Math.round( creg*100/cuser, 1);
  901. $('.Regp').text(per+'%');
  902. }
  903. if( info == 'us' ){
  904. usersum = a[a.length-1];
  905. if( usersum && regusersum ) {
  906. $('.regpercent').text(Math.round(regusersum*100/usersum,2)+'');
  907. }
  908. }
  909. if( info == 'region' ){
  910. regusersum = a[a.length-1];
  911. if( usersum && regusersum ) {
  912. $('.regpercent').text(Math.round(regusersum*100/usersum,2)+'');
  913. }
  914. }
  915. if( info == 'usA' ){
  916. $('.regpA').text( Math.round(aregm['altapress'][2]*100/a[a.length-1],1)+'' );
  917. $('.regA').text( aregm['altapress'][2] );
  918. }
  919. if( info == 'usT' ){
  920. $('.regpT').text( Math.round(aregm['tolknews.ru'][2]*100/a[a.length-1],1)+'' );
  921. $('.regT').text( aregm['tolknews.ru'][2] );
  922. }
  923. }else{
  924. console.log(data.msg);
  925. }
  926. });
  927. }
  928. /*
  929. ###############################
  930. Обход по данным из списка
  931. ###############################
  932. */
  933. automat.forEach( el => chauto(el) );
  934. /*
  935. ###############################
  936. Источники
  937. ###############################
  938. */
  939. $.getJSON("/manager/analytics/ajax-y-referer", {dstart:'<?=$sstart?>',dend:'<?=$send?>'}, function( data ) {
  940. if( data.status == 'ok' ){
  941. totals=data.sum[0];
  942. total = totals[totals.length-1];
  943. var dataset = [];
  944. var datasetn = [];
  945. data.data.forEach( el => {
  946. var ref = el.dimensions[0].name;
  947. var crefc = Math.round(el.metrics[0][el.metrics[0].length-1]);
  948. var crefp = Math.round(el.metrics[0][el.metrics[0].length-2]);
  949. var perc = Math.round(crefp*100/crefc,1);
  950. var delta = crefc-crefp;
  951. gper = Math.round(crefc*100/total,1);
  952. if( gper > 0.8 ){
  953. dataset.push(gper);
  954. datasetn.push(ref+' '+gper+'%');
  955. }
  956. if( ref == 'zen.yandex.com' ){
  957. $('.refdzen').text(crefc);
  958. }
  959. if( ref == 'dzen.ru' || ref == 'm.dzen.ru' ){
  960. newssum = newssum+crefc;
  961. $('.refdzennews').text(newssum);
  962. }
  963. tr = document.createElement("tr");
  964. td = document.createElement("td");
  965. newContent = document.createTextNode(el.dimensions[0].name);
  966. td.appendChild(newContent);
  967. tr.appendChild(td);
  968. td = document.createElement("td");
  969. newContent = document.createTextNode(Math.round(el.metrics[0][el.metrics[0].length-1]));
  970. td.appendChild(newContent);
  971. tr.appendChild(td);
  972. td = document.createElement("td");
  973. sty = (delta>=0)?'fa-arrow-up':'fa-arrow-down';
  974. sty1 = (delta>=0)?'success':'danger';
  975. $(td).html('<small class="text-'+sty1+' mr-1"><i class="fas '+sty+'"></i>'+perc+'%</small>');
  976. newContent = document.createTextNode(Math.round(delta));
  977. td.appendChild(newContent);
  978. tr.appendChild(td);
  979. td = document.createElement("td");
  980. newContent = document.createTextNode(crefp);
  981. td.appendChild(newContent);
  982. tr.appendChild(td);
  983. currenttab = document.getElementById("referertab");
  984. currenttab.appendChild(tr);
  985. }
  986. );
  987. $('#reftab').DataTable({paging: false,
  988. columnDefs: [{
  989. orderable: false,
  990. targets: 2
  991. }],
  992. "responsive": true, "lengthChange": false, "autoWidth": false,
  993. order: [[1, 'desc']]
  994. });
  995. $('.dataTables_length').addClass('bs-select');
  996. var coloR = [];
  997. for (let i = 0; i < dataset.length; i++) {
  998. coloR.push(dynamicColors());
  999. }
  1000. const datas = {
  1001. labels: datasetn,
  1002. datasets: [
  1003. {
  1004. // label: 'Dataset 1',
  1005. data: dataset,
  1006. backgroundColor:coloR,
  1007. }
  1008. ]
  1009. };
  1010. const config = {
  1011. type: 'doughnut',
  1012. data: datas,
  1013. options: {
  1014. cutoutPercentage: 30,
  1015. responsive: true,
  1016. maintainAspectRatio: false,
  1017. legend: {
  1018. display: true,
  1019. },
  1020. tooltips: {
  1021. enabled: true
  1022. }
  1023. },
  1024. };
  1025. var chart1 = document.getElementById('jschartSource');
  1026. var barChartSales = new Chart(chart1, config);
  1027. }else{
  1028. console.log(data.msg);
  1029. }
  1030. });
  1031. var dynamicColors = function() {
  1032. var r = Math.floor(Math.random() * 255);
  1033. var g = Math.floor(Math.random() * 255);
  1034. var b = Math.floor(Math.random() * 255);
  1035. return "rgb(" + r + "," + g + "," + b + ")";
  1036. };
  1037. /*
  1038. ###############################
  1039. Расширеный региональный трафик
  1040. ###############################
  1041. */
  1042. var metr = encodeURIComponent('https://www.liveinternet.ru/stat/amicru/regions.csv?id=56&id=8&id=82&id=checked&total=yes');
  1043. $.getJSON("/manager/analytics/ajax-getlive", {metrics:metr,type:'3d'}, function( data ) {
  1044. if( data.status == 'ok' ){
  1045. // data_all = data.datas;
  1046. // console.log(data.data);
  1047. var dreg1 = [];
  1048. var dreg2 = [];
  1049. var dreg3 = [];
  1050. var dregall = [];
  1051. gm.forEach( el => {
  1052. // console.log(el['g']+' '+el['m']);
  1053. dregall.push( data.data[el['g']][el['m']][4] );
  1054. dreg1.push( data.data[el['g']][el['m']][1] );
  1055. dreg2.push( data.data[el['g']][el['m']][2] );
  1056. dreg3.push( data.data[el['g']][el['m']][3] );
  1057. });
  1058. var regAll = dregall.toString();
  1059. var reg1 = dreg1.toString();
  1060. var reg2 = dreg2.toString();
  1061. var reg3 = dreg3.toString();
  1062. //Chuser( regAll, null, '', 'jschartRegEx' );
  1063. var dataset = [
  1064. {
  1065. type: 'bar',
  1066. label: "Барнаул",
  1067. backgroundColor: '#00aaff',
  1068. data: dreg1,
  1069. stack: 'Stack 0',
  1070. }
  1071. ];
  1072. dataset.push( {
  1073. type: 'bar',
  1074. label:'Новосибирск',
  1075. backgroundColor: '#88ff7f',
  1076. data: dreg2,
  1077. stack: 'Stack 0',
  1078. });
  1079. dataset.push( {
  1080. type: 'bar',
  1081. label:'Горно-Алтайск',
  1082. backgroundColor: '#0055ff',
  1083. data: dreg3,
  1084. stack: 'Stack 0',
  1085. });
  1086. dataset.push( {
  1087. type: 'line',
  1088. label:'Суммарно',
  1089. borderColor:'#ff881370',
  1090. backgroundColor: '#ff881360',
  1091. fill: true,
  1092. data: dregall,
  1093. stack: 'Stack 1',
  1094. });
  1095. var barChart1Datax = {
  1096. labels: [<?=$smoth?>],
  1097. datasets: dataset
  1098. };
  1099. creg = dregall[dregall.length-1];
  1100. $('.RegEx').text(creg);
  1101. if( cuser ){
  1102. var per = Math.round( creg*100/cuser, 1);
  1103. $('.Regp').text(per+'%');
  1104. }
  1105. // console.log(barChart1Datax);
  1106. var chart1 = document.getElementById('jschartRegEx');
  1107. var barChartSales = new Chart(chart1, {
  1108. data: barChart1Datax,
  1109. options: {
  1110. legend: {
  1111. display: true
  1112. },
  1113. barThickness: 20,
  1114. responsive: true,
  1115. maintainAspectRatio: true,
  1116. scales: {
  1117. xAxes: [{
  1118. display: true,
  1119. offset: true,
  1120. ticks: {
  1121. fontSize: '11',
  1122. fontColor: '#969da5'
  1123. },
  1124. }],
  1125. yAxes: [{
  1126. display: true,
  1127. ticks: {
  1128. beginAtZero: true,
  1129. // max: 100
  1130. }
  1131. }],
  1132. }
  1133. }
  1134. });
  1135. }else{
  1136. console.log(data.msg);
  1137. }
  1138. });
  1139. document.addEventListener("alldata", function(event) {
  1140. /*
  1141. ###############################
  1142. ### Сравнение с алтапресс ###
  1143. ###############################
  1144. */
  1145. var data_1 = hdata['us'];
  1146. var data_2 = hdata['usA'];
  1147. gr = Chuser( data_1, data_2, '', 'jschartAmA', 'amic.ru', 'altapress.ru', false );
  1148. // gr.legend.legendItems[0].text = 'amic.ru';
  1149. // gr.legend.legendItems[1].text = 'altapress.ru';
  1150. /*
  1151. ###############################
  1152. ### Сравнение с tolknews ###
  1153. ###############################
  1154. */
  1155. var data_1 = hdata['us'];
  1156. var data_2 = hdata['usT'];
  1157. gr = Chuser( data_1, data_2, '', 'jschartAmT', 'amic.ru', 'tolknews.ru', false );
  1158. });
  1159. /*
  1160. ###############################
  1161. ### Вывод графика ###
  1162. ###############################
  1163. */
  1164. function Chuser( data, data2, t, el, t1='Текущий период', t2='Предыдущий период', tr=true ){
  1165. var chart1 = document.getElementById(el);
  1166. // var chart1 = $('#'+el).get(0).getContext('2d');
  1167. // console.log( data['u'].split(',').map(Number) );
  1168. if( t == '' ){
  1169. if( Array.isArray(data) ){
  1170. var datac = data;
  1171. }else{
  1172. var datac = data.split(',').map(Number)
  1173. }
  1174. if( data2 !== null ){
  1175. var datal = data2.split(',').map(Number)
  1176. }
  1177. if( datac.length < 2 ){
  1178. datac.push(0)
  1179. }
  1180. }else{
  1181. // data[t] = data[t] + ',0'
  1182. var datac = data[t].split(',').map(Number)
  1183. if( data2 !== null ){
  1184. var datal = data2[t].split(',').map(Number)
  1185. }
  1186. if( datac.length < 2 ){
  1187. datac.push(0)
  1188. }
  1189. }
  1190. var dataset = [
  1191. {
  1192. label: t1,
  1193. fill: true,
  1194. backgroundColor: '#00aaff',
  1195. data: datac,
  1196. type: 'bar'
  1197. }
  1198. ];
  1199. if( data2 !== null ){
  1200. dataset.push( {
  1201. label: t2,
  1202. fill: true,
  1203. backgroundColor: '#ffaa7f50',
  1204. data: datal,
  1205. type: 'bar'
  1206. });
  1207. }
  1208. if( tr ){
  1209. dataset.push( {
  1210. fill: false,
  1211. label:'трэнд',
  1212. borderColor:'#00aa00',
  1213. backgroundColor: '#ffff7f20',
  1214. data: datac,
  1215. type: 'line'
  1216. });
  1217. }
  1218. //console.log(dataset);
  1219. var barChart1Data = {
  1220. labels: [<?=$smoth?>],
  1221. datasets: dataset
  1222. };
  1223. if(chart1) {
  1224. var barChartSales = new Chart(chart1, {
  1225. data: barChart1Data,
  1226. options: {
  1227. legend: {
  1228. display: true
  1229. },
  1230. barThickness: 20,
  1231. responsive: true,
  1232. maintainAspectRatio: false,
  1233. scales: {
  1234. xAxes: [{
  1235. display: true,
  1236. offset: true,
  1237. ticks: {
  1238. fontSize: '11',
  1239. fontColor: '#969da5'
  1240. },
  1241. gridLines: {
  1242. color: 'rgba(0,0,0,0.5)',
  1243. zeroLineColor: 'rgba(0,0,0,0.5)'
  1244. }
  1245. }],
  1246. yAxes: [{
  1247. display: true,
  1248. ticks: {
  1249. beginAtZero: true,
  1250. // max: 100
  1251. }
  1252. }]
  1253. }
  1254. }
  1255. });
  1256. return barChartSales;
  1257. }
  1258. }
  1259. });
  1260. <?=$this->render('/stats/chartjs');?>
  1261. </script>