⌈⌋ branch:  freshcode


Hex Artifact Content

Artifact 9264673873ae21d46269e4a48bf41077083666e3:

  • File page_tags.php — part of check-in [5bda659526] at 2015-03-24 20:07:22 on branch trunk — Fix spacing to header block. Correct nowrap issue for title/version/datetime in .project headers (Firefox). (user: mario size: 1672)

0000: 3c 3f 70 68 70 0a 2f 2a 2a 0a 20 2a 20 74 79 70  <?php./**. * typ
0010: 65 3a 20 70 61 67 65 0a 20 2a 20 74 69 74 6c 65  e: page. * title
0020: 3a 20 54 61 67 73 0a 20 2a 20 64 65 73 63 72 69  : Tags. * descri
0030: 70 74 69 6f 6e 3a 20 54 61 67 20 63 6c 6f 75 64  ption: Tag cloud
0040: 0a 20 2a 20 76 65 72 73 69 6f 6e 3a 20 30 2e 33  . * version: 0.3
0050: 0a 20 2a 0a 20 2a 20 54 68 69 73 20 66 72 6f 6e  . *. * This fron
0060: 74 65 6e 64 20 63 6f 64 65 20 69 73 20 75 74 69  tend code is uti
0070: 6c 69 7a 69 6e 67 20 61 20 73 65 70 61 72 61 74  lizing a separat
0080: 65 20 60 74 61 67 73 60 20 74 61 62 6c 65 2c 20  e `tags` table, 
0090: 77 68 69 63 68 0a 20 2a 20 67 65 74 73 20 70 6f  which. * gets po
00a0: 70 75 6c 61 74 65 64 20 70 65 72 20 63 72 6f 6e  pulated per cron
00b0: 20 73 63 72 69 70 74 20 28 72 61 74 68 65 72 20   script (rather 
00c0: 74 68 61 6e 20 61 74 20 69 6e 73 65 72 74 69 6f  than at insertio
00d0: 6e 20 6f 72 20 76 69 61 0a 20 2a 20 74 72 69 67  n or via. * trig
00e0: 67 65 72 20 5b 73 71 6c 69 74 65 20 73 65 65 6d  ger [sqlite seem
00f0: 73 20 69 6e 73 75 66 66 69 63 69 65 6e 74 20 74  s insufficient t
0100: 6f 20 68 61 6e 64 6c 65 20 74 68 61 74 29 2e 0a  o handle that)..
0110: 20 2a 0a 20 2a 20 43 75 72 72 65 6e 74 6c 79 20   *. * Currently 
0120: 6a 75 73 74 20 6f 75 74 70 75 74 73 20 61 20 70  just outputs a p
0130: 6c 61 69 6e 20 73 65 61 72 63 68 20 72 65 73 75  lain search resu
0140: 6c 74 20 6c 69 73 74 2e 20 4c 61 74 65 72 20 76  lt list. Later v
0150: 65 72 73 69 6f 6e 73 0a 20 2a 20 73 68 6f 75 6c  ersions. * shoul
0160: 64 20 64 65 6c 65 67 61 74 65 20 74 68 69 73 20  d delegate this 
0170: 74 6f 20 61 20 70 72 6f 70 65 72 20 2f 73 65 61  to a proper /sea
0180: 72 63 68 20 66 65 61 74 75 72 65 2e 0a 20 2a 0a  rch feature.. *.
0190: 20 2a 2f 0a 0a 0a 24 68 65 61 64 65 72 5f 61 64   */...$header_ad
01a0: 64 20 3d 20 27 3c 6d 65 74 61 20 72 6f 62 6f 74  d = '<meta robot
01b0: 73 3d 6e 6f 69 6e 64 65 78 2c 6e 6f 66 6f 6c 6c  s=noindex,nofoll
01c0: 6f 77 3e 27 3b 0a 69 6e 63 6c 75 64 65 28 22 74  ow>';.include("t
01d0: 65 6d 70 6c 61 74 65 2f 68 65 61 64 65 72 2e 70  emplate/header.p
01e0: 68 70 22 29 3b 0a 69 6e 63 6c 75 64 65 28 22 74  hp");.include("t
01f0: 65 6d 70 6c 61 74 65 2f 74 61 62 6c 65 5f 6d 61  emplate/table_ma
0200: 69 6e 2e 70 68 70 22 29 3b 0a 0a 0a 0a 0a 23 2d  in.php");.....#-
0210: 2d 20 70 72 69 6e 74 20 74 61 67 20 63 6c 6f 75  - print tag clou
0220: 64 0a 3f 3e 0a 3c 73 65 63 74 69 6f 6e 20 73 74  d.?>.<section st
0230: 79 6c 65 3d 22 6d 69 6e 2d 68 65 69 67 68 74 3a  yle="min-height:
0240: 20 31 37 35 30 70 74 22 3e 0a 3c 68 32 20 63 6c   1750pt">.<h2 cl
0250: 61 73 73 3d 6e 6f 2d 6d 61 72 67 69 6e 3e 54 61  ass=no-margin>Ta
0260: 67 73 3c 2f 68 32 3e 0a 3c 70 20 69 64 3d 74 61  gs</h2>.<p id=ta
0270: 67 5f 63 6c 6f 75 64 3e 0a 3c 3f 70 68 70 0a 0a  g_cloud>.<?php..
0280: 2f 2f 20 51 75 65 72 79 20 60 74 61 67 73 60 20  // Query `tags` 
0290: 74 61 62 6c 65 20 74 6f 20 67 65 6e 65 72 61 74  table to generat
02a0: 65 20 61 20 63 6c 6f 75 64 0a 24 74 61 67 73 20  e a cloud.$tags 
02b0: 3d 20 64 62 28 22 53 45 4c 45 43 54 20 43 4f 55  = db("SELECT COU
02c0: 4e 54 28 6e 61 6d 65 29 20 41 53 20 63 6e 74 2c  NT(name) AS cnt,
02d0: 20 74 61 67 20 46 52 4f 4d 20 74 61 67 73 20 47   tag FROM tags G
02e0: 52 4f 55 50 20 42 59 20 74 61 67 22 29 2d 3e 66  ROUP BY tag")->f
02f0: 65 74 63 68 41 6c 6c 28 29 3b 0a 24 63 6f 75 6e  etchAll();.$coun
0300: 74 20 3d 20 61 72 72 61 79 5f 63 6f 6c 75 6d 6e  t = array_column
0310: 28 24 74 61 67 73 2c 20 22 63 6e 74 22 29 3b 0a  ($tags, "cnt");.
0320: 69 66 20 28 24 63 6f 75 6e 74 29 20 7b 0a 20 20  if ($count) {.  
0330: 20 20 24 61 76 67 20 3d 20 63 6f 75 6e 74 28 24    $avg = count($
0340: 63 6f 75 6e 74 29 20 2f 20 61 72 72 61 79 5f 73  count) / array_s
0350: 75 6d 28 24 63 6f 75 6e 74 29 3b 0a 0a 20 20 20  um($count);..   
0360: 20 2f 2f 20 50 72 69 6e 74 20 74 61 67 20 63 6c   // Print tag cl
0370: 6f 75 64 0a 20 20 20 20 66 6f 72 65 61 63 68 20  oud.    foreach 
0380: 28 24 74 61 67 73 20 61 73 20 24 74 29 20 7b 0a  ($tags as $t) {.
0390: 20 20 20 20 0a 20 20 20 20 20 20 20 20 69 66 20      .        if 
03a0: 28 24 74 5b 22 63 6e 74 22 5d 20 3c 20 32 29 20  ($t["cnt"] < 2) 
03b0: 63 6f 6e 74 69 6e 75 65 3b 0a 0a 20 20 20 20 20  continue;..     
03c0: 20 20 20 2f 2f 20 61 76 65 72 61 67 65 0a 20 20     // average.  
03d0: 20 20 20 20 20 20 24 6e 20 3d 20 0a 20 20 20 20        $n = .    
03e0: 20 20 20 20 24 71 20 3d 20 31 2e 30 2a 24 74 5b      $q = 1.0*$t[
03f0: 22 63 6e 74 22 5d 20 2f 20 31 2e 30 2a 24 61 76  "cnt"] / 1.0*$av
0400: 67 3b 0a 20 20 20 20 20 20 20 20 0a 20 20 20 20  g;.        .    
0410: 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 20 20 20      /**.        
0420: 20 2a 20 51 61 6e 74 69 66 79 0a 20 20 20 20 20   * Qantify.     
0430: 20 20 20 20 2a 20 2d 20 56 61 6c 75 65 73 20 30      * - Values 0
0440: 2e 31 20 2d 20 32 30 2e 30 20 61 72 65 20 74 72  .1 - 20.0 are tr
0450: 61 6e 73 69 74 69 6f 6e 65 64 20 69 6e 74 6f 20  ansitioned into 
0460: 74 68 65 20 72 61 6e 67 65 20 30 2e 33 20 2d 20  the range 0.3 - 
0470: 32 2e 30 0a 20 20 20 20 20 20 20 20 20 2a 2f 0a  2.0.         */.
0480: 20 20 20 20 20 20 20 20 24 71 20 3d 20 61 74 61          $q = ata
0490: 6e 28 24 71 20 2a 20 30 2e 35 35 20 2d 20 30 2e  n($q * 0.55 - 0.
04a0: 31 29 20 2a 20 31 2e 33 35 3b 0a 20 20 20 20 20  1) * 1.35;.     
04b0: 20 20 20 0a 20 20 20 20 20 20 20 20 2f 2f 20 66     .        // f
04c0: 6f 6e 74 20 73 69 7a 65 0a 20 20 20 20 20 20 20  ont size.       
04d0: 20 24 71 20 3d 20 73 70 72 69 6e 74 66 28 22 25   $q = sprintf("%
04e0: 2e 31 66 22 2c 20 24 71 20 2a 20 31 30 30 29 3b  .1f", $q * 100);
04f0: 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 6f 75 74  ..        // out
0500: 70 75 74 0a 20 20 20 20 20 20 20 20 70 72 69 6e  put.        prin
0510: 74 20 22 20 3c 61 20 68 72 65 66 3d 5c 22 2f 73  t " <a href=\"/s
0520: 65 61 72 63 68 3f 74 61 67 3d 22 20 2e 20 75 72  earch?tag=" . ur
0530: 6c 65 6e 63 6f 64 65 28 24 74 5b 22 74 61 67 22  lencode($t["tag"
0540: 5d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 2e  ]).            .
0550: 20 22 5c 22 20 63 6c 61 73 73 3d 74 61 67 20 73   "\" class=tag s
0560: 74 79 6c 65 3d 5c 22 66 6f 6e 74 2d 73 69 7a 65  tyle=\"font-size
0570: 3a 20 24 71 25 3b 5c 22 3e 20 24 74 5b 74 61 67  : $q%;\"> $t[tag
0580: 5d 3c 2f 61 3e 20 22 3b 0a 20 20 20 20 7d 0a 0a  ]</a> ";.    }..
0590: 7d 0a 3f 3e 3c 2f 70 3e 3c 2f 73 65 63 74 69 6f  }.?></p></sectio
05a0: 6e 3e 3c 3f 70 68 70 0a 0a 23 2d 2d 20 73 69 64  n><?php..#-- sid
05b0: 65 62 61 72 20 77 69 74 68 20 54 72 6f 76 65 20  ebar with Trove 
05c0: 6c 69 73 74 0a 3f 3e 0a 3c 74 64 20 69 64 3d 73  list.?>.<td id=s
05d0: 69 64 65 62 61 72 3e 0a 3c 64 69 76 20 69 64 3d  idebar>.<div id=
05e0: 74 72 6f 76 65 5f 74 61 67 73 20 63 6c 61 73 73  trove_tags class
05f0: 3d 70 69 63 6b 2d 74 61 67 73 3e 0a 3c 3f 70 68  =pick-tags>.<?ph
0600: 70 0a 70 72 69 6e 74 20 74 61 67 73 3a 3a 74 72  p.print tags::tr
0610: 6f 76 65 5f 73 65 6c 65 63 74 28 74 61 67 73 3a  ove_select(tags:
0620: 3a 24 74 72 65 65 29 3b 0a 3f 3e 0a 3c 2f 64 69  :$tree);.?>.</di
0630: 76 3e 0a 3c 2f 74 64 3e 3c 3f 70 68 70 0a 0a 0a  v>.</td><?php...
0640: 0a 69 6e 63 6c 75 64 65 28 22 74 65 6d 70 6c 61  .include("templa
0650: 74 65 2f 74 61 62 6c 65 5f 65 6e 64 2e 70 68 70  te/table_end.php
0660: 22 29 3b 0a 69 6e 63 6c 75 64 65 28 22 74 65 6d  ");.include("tem
0670: 70 6c 61 74 65 2f 62 6f 74 74 6f 6d 2e 70 68 70  plate/bottom.php
0680: 22 29 3b 0a 0a 0a 3f 3e                          ");...?>