⌈⌋ branch:  freshcode


Hex Artifact Content

Artifact faa40e3f89a528e2ce3929a651286a9d6ebfd6a0:

  • File cron.daily/spotlight.php — part of check-in [3778635df7] at 2015-02-25 19:10:52 on branch trunk — Omit `deleted` entrys from spotlight. (user: mario size: 1214)

0000: 3c 3f 70 68 70 0a 2f 2a 2a 0a 20 2a 20 61 70 69  <?php./**. * api
0010: 3a 20 63 6c 69 0a 20 2a 20 74 69 74 6c 65 3a 20  : cli. * title: 
0020: 43 72 65 61 74 65 20 72 61 6e 64 6f 6d 20 70 69  Create random pi
0030: 63 6b 73 20 66 6f 72 20 70 72 6f 6a 65 63 74 20  cks for project 
0040: 73 70 6f 74 6c 69 67 68 74 0a 20 2a 20 64 65 73  spotlight. * des
0050: 63 72 69 70 74 69 6f 6e 3a 20 52 61 6e 64 6f 6d  cription: Random
0060: 6c 79 20 70 69 63 6b 73 20 6f 75 74 20 61 20 66  ly picks out a f
0070: 65 77 20 70 72 6f 6a 65 63 74 73 20 66 6f 72 20  ew projects for 
0080: 74 68 65 20 66 6f 6f 74 65 72 0a 20 2a 20 76 65  the footer. * ve
0090: 72 73 69 6f 6e 3a 20 30 2e 32 0a 20 2a 20 63 61  rsion: 0.2. * ca
00a0: 74 65 67 6f 72 79 3a 20 74 65 6d 70 6c 61 74 65  tegory: template
00b0: 0a 20 2a 20 74 79 70 65 3a 20 63 72 6f 6e 0a 20  . * type: cron. 
00c0: 2a 20 78 2d 63 72 6f 6e 3a 20 32 30 20 2a 5c 2f  * x-cron: 20 *\/
00d0: 36 20 2a 20 2a 20 2a 0a 20 2a 0a 20 2a 20 50 69  6 * * *. *. * Pi
00e0: 63 6b 73 20 74 68 72 65 65 20 70 72 6f 6a 65 63  cks three projec
00f0: 74 73 20 66 6f 72 20 64 69 73 70 6c 61 79 20 69  ts for display i
0100: 6e 20 66 6f 6f 74 65 72 20 61 73 20 70 72 6f 6a  n footer as proj
0110: 65 63 74 73 20 6f 66 20 74 68 65 20 64 61 79 2e  ects of the day.
0120: 0a 20 2a 20 28 41 63 74 75 61 6c 6c 79 20 72 65  . * (Actually re
0130: 6e 65 77 65 64 20 74 68 72 65 65 20 74 69 6d 65  newed three time
0140: 73 20 61 20 64 61 79 2e 29 0a 20 2a 0a 20 2a 2f  s a day.). *. */
0150: 0a 0a 63 68 64 69 72 28 64 69 72 6e 61 6d 65 28  ..chdir(dirname(
0160: 5f 5f 44 49 52 5f 5f 29 29 3b 20 0a 69 6e 63 6c  __DIR__)); .incl
0170: 75 64 65 28 22 63 6f 6e 66 69 67 2e 70 68 70 22  ude("config.php"
0180: 29 3b 0a 0a 0a 2f 2a 2a 0a 20 2a 20 53 63 61 6e  );.../**. * Scan
0190: 20 65 61 63 68 20 70 72 6f 6a 65 63 74 2c 0a 20   each project,. 
01a0: 2a 20 70 69 63 6b 20 72 61 6e 64 6f 6d 20 74 68  * pick random th
01b0: 72 65 65 2e 0a 20 2a 0a 20 2a 2f 0a 24 72 20 3d  ree.. *. */.$r =
01c0: 20 64 62 28 22 0a 20 20 20 20 20 53 45 4c 45 43   db(".     SELEC
01d0: 54 20 6e 61 6d 65 2c 20 74 69 74 6c 65 2c 20 53  T name, title, S
01e0: 55 42 53 54 52 28 64 65 73 63 72 69 70 74 69 6f  UBSTR(descriptio
01f0: 6e 2c 20 30 2c 20 31 35 30 29 20 41 53 20 64 65  n, 0, 150) AS de
0200: 73 63 72 69 70 74 69 6f 6e 2c 0a 20 20 20 20 20  scription,.     
0210: 4d 41 58 28 74 5f 63 68 61 6e 67 65 64 29 20 41  MAX(t_changed) A
0220: 53 20 74 20 46 52 4f 4d 20 72 65 6c 65 61 73 65  S t FROM release
0230: 0a 20 20 20 20 20 47 52 4f 55 50 20 42 59 20 6e  .     GROUP BY n
0240: 61 6d 65 0a 20 20 20 20 20 48 41 56 49 4e 47 20  ame.     HAVING 
0250: 4e 4f 54 20 64 65 6c 65 74 65 64 0a 20 20 20 20  NOT deleted.    
0260: 20 4f 52 44 45 52 20 42 59 20 72 61 6e 64 6f 6d   ORDER BY random
0270: 28 29 20 0a 20 20 20 20 20 4c 49 4d 49 54 20 33  () .     LIMIT 3
0280: 3b 0a 22 29 3b 20 0a 0a 2f 2f 20 63 6f 6d 62 69  ;."); ..// combi
0290: 6e 65 20 69 6e 74 6f 20 48 54 4d 4c 20 62 6c 6f  ne into HTML blo
02a0: 62 0a 24 68 74 6d 6c 20 3d 20 22 22 3b 20 0a 66  b.$html = ""; .f
02b0: 6f 72 65 61 63 68 20 28 24 72 20 61 73 20 24 65  oreach ($r as $e
02c0: 6e 74 72 79 29 20 7b 0a 0a 20 20 20 20 24 65 6e  ntry) {..    $en
02d0: 74 72 79 20 3d 20 61 72 72 61 79 5f 6d 61 70 28  try = array_map(
02e0: 22 69 6e 70 75 74 3a 3a 5f 68 74 6d 6c 22 2c 20  "input::_html", 
02f0: 24 65 6e 74 72 79 29 3b 0a 23 20 20 20 20 24 65  $entry);.#    $e
0300: 6e 74 72 79 5b 22 64 65 73 63 72 69 70 74 69 6f  ntry["descriptio
0310: 6e 22 5d 20 3d 20 70 72 65 67 5f 72 65 70 6c 61  n"] = preg_repla
0320: 63 65 28 22 2f 5c 2e 5b 5e 2e 5d 2a 24 7c 5b 2c  ce("/\.[^.]*$|[,
0330: 3b 5d 5b 5e 2c 3b 5d 2a 24 7c 5c 53 2a 24 2f 22  ;][^,;]*$|\S*$/"
0340: 2c 20 22 22 2c 20 24 65 6e 74 72 79 5b 22 64 65  , "", $entry["de
0350: 73 63 72 69 70 74 69 6f 6e 22 5d 29 3b 0a 20 20  scription"]);.  
0360: 20 20 24 68 74 6d 6c 20 2e 3d 20 3c 3c 3c 45 4f    $html .= <<<EO
0370: 46 0a 20 20 20 3c 61 20 63 6c 61 73 73 3d 70 72  F.   <a class=pr
0380: 6f 6a 65 63 74 2d 73 70 6f 74 6c 69 67 68 74 20  oject-spotlight 
0390: 68 72 65 66 3d 22 2f 70 72 6f 6a 65 63 74 73 2f  href="/projects/
03a0: 24 65 6e 74 72 79 5b 6e 61 6d 65 5d 22 3e 0a 20  $entry[name]">. 
03b0: 20 20 20 20 20 3c 69 6d 67 20 73 72 63 3d 22 2f       <img src="/
03c0: 69 6d 67 2f 73 63 72 65 65 6e 73 68 6f 74 2f 24  img/screenshot/$
03d0: 65 6e 74 72 79 5b 6e 61 6d 65 5d 2e 6a 70 65 67  entry[name].jpeg
03e0: 22 20 77 69 64 74 68 3d 31 32 30 20 68 65 69 67  " width=120 heig
03f0: 68 74 3d 39 30 20 61 6c 74 3d 24 65 6e 74 72 79  ht=90 alt=$entry
0400: 5b 6e 61 6d 65 5d 3e 0a 20 20 20 20 20 20 3c 62  [name]>.      <b
0410: 3e 20 24 65 6e 74 72 79 5b 74 69 74 6c 65 5d 20  > $entry[title] 
0420: 3c 2f 62 3e 0a 20 20 20 20 20 20 3c 73 6d 61 6c  </b>.      <smal
0430: 6c 20 63 6c 61 73 73 3d 64 65 73 63 72 69 70 74  l class=descript
0440: 69 6f 6e 3e 24 65 6e 74 72 79 5b 64 65 73 63 72  ion>$entry[descr
0450: 69 70 74 69 6f 6e 5d 3c 2f 73 6d 61 6c 6c 3e 20  iption]</small> 
0460: 0a 20 20 20 3c 2f 61 3e 0a 0a 45 4f 46 3b 0a 7d  .   </a>..EOF;.}
0470: 0a 0a 2f 2f 20 73 74 6f 72 65 20 61 73 20 74 65  ..// store as te
0480: 6d 70 6c 61 74 65 0a 66 69 6c 65 5f 70 75 74 5f  mplate.file_put_
0490: 63 6f 6e 74 65 6e 74 73 28 22 2e 2f 74 65 6d 70  contents("./temp
04a0: 6c 61 74 65 2f 73 70 6f 74 6c 69 67 68 74 2e 68  late/spotlight.h
04b0: 74 6d 22 2c 20 24 68 74 6d 6c 29 3b 0a 0a        tm", $html);..