PDO::ERRMODE_EXCEPTION, PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8mb4", ] ); // newest completed CA entry (via view) $sql = " SELECT model_year, model, ADM_StateOrProvince, ADM_Country, condition_value, opinion_value_today FROM h305_ca77_entries ORDER BY submitdate DESC, id DESC LIMIT 1 "; $row = $pdo->query($sql)->fetch(PDO::FETCH_ASSOC); // casing helpers (same pattern as CB / CL) $keepCaps = static function (string $w): bool { return (bool)preg_match('/[A-Z]{2,}/', $w) || (bool)preg_match('/\d/', $w); }; $word = static function (?string $w) use ($keepCaps): string { if ($w === null || $w === '') return ''; if (strpos($w, '-') !== false) { $parts = explode('-', $w); foreach ($parts as &$x) { $x = $keepCaps($x) ? $x : ucfirst(strtolower($x)); } return implode('-', $parts); } if ($keepCaps($w)) return $w; $dot = substr($w, -1) === '.'; $base = $dot ? substr($w, 0, -1) : $w; $done = ucfirst(strtolower($base)); return $dot ? ($done . '.') : $done; }; $title = static function (?string $s) use ($word): string { if ($s === null) return ''; $s = trim($s); if ($s === '') return ''; $t = preg_split('/\s+/', $s) ?: []; foreach ($t as &$x) $x = $word($x); return trim(implode(' ', $t), ", "); }; if (!$row) { $line = 'Latest Registry Entry: No completed entries found.'; } else { // location like "WA, Australia" $region = $title($row['ADM_StateOrProvince'] ?? ''); $country = $title($row['ADM_Country'] ?? ''); $loc = trim( implode(', ', array_filter([$region, $country], fn($v) => $v !== '')), ', ' ); // normalize opinion_value_today using the same rules as CL: // - >=1000 => use as-is ($12500 => $12,500) // - 100..999 => treat as dollars ($750 => $750) // - 1..99 => treat as thousands (6 => $6,000) // - otherwise => "Not Entered" $valFinal = 'Not Entered'; if (isset($row['opinion_value_today']) && $row['opinion_value_today'] !== '') { $n = (float)$row['opinion_value_today']; if ($n >= 1000) { $valFinal = '$' . number_format($n, 0); } elseif ($n >= 100) { $valFinal = '$' . number_format($n, 0); } elseif ($n > 0) { $valFinal = '$' . number_format($n * 1000, 0); } } // condition code translation — same dictionary as CL plus "Rat" $condRaw = $row['condition_value'] ?? ''; $condMap = [ 'E' => 'Excellent', 'Exc' => 'Excellent', 'G' => 'Good', 'Goo' => 'Good', 'F' => 'Fair', 'P' => 'Poor', 'Par' => 'Parts Bike', 'R' => 'Restored', 'Res' => 'Restored', 'Rat' => 'Rat', ]; $condNice = $condMap[$condRaw] ?? ($condRaw !== '' ? $condRaw : 'Not Entered'); $line = 'Latest Registry Entry: ' . ($row['model_year'] ?? '') . ' Honda ' . ($row['model'] ?? '') . ' — ' . $loc . ' — Condition: ' . $condNice . ' — Value: ' . $valFinal; } // stamp + UTF-8 $built = (new DateTime('now'))->format('Y-m-d H:i:s T'); $stamp = ""; $charset = ''; $html = $charset . "\n" . $stamp . "\n" . $line . "\n"; // write to shared include $jobDir = __DIR__; $includeDir = '/home/mstoic3/public_html/shared/include'; $includeTmp = $includeDir . '/latest_ca77.tmp'; $includeDst = $includeDir . '/latest_ca77.html'; $jsonPath = $jobDir . '/latest_ca77.json'; $logPath = $jobDir . '/logs/latest_ca77.log'; // future optional if (!is_dir($includeDir)) { if (!mkdir($includeDir, 0755, true) && !is_dir($includeDir)) { throw new RuntimeException("Failed to create include dir: $includeDir"); } } if (file_put_contents($includeTmp, $html, LOCK_EX) === false) { throw new RuntimeException('Failed to write temp include file'); } if (!rename($includeTmp, $includeDst)) { @unlink($includeTmp); throw new RuntimeException('Failed to move include into place'); } @file_put_contents($jsonPath, json_encode([ 'line' => $line, 'stamp' => $built, 'ts' => date('c'), ], JSON_UNESCAPED_UNICODE)); echo "OK\n"; } catch (Throwable $e) { error_log("[generate_latest_ca77.php] " . $e->getMessage()); if (function_exists('http_response_code')) { @http_response_code(500); } echo "ERROR\n"; exit(1); }

a couple novice questions

Post Reply
prodigal son
honda305.com Member
Posts: 4
Joined: Thu Apr 10, 2025 8:26 am

a couple novice questions

Post by prodigal son » Tue Apr 22, 2025 7:05 pm

Just got a 66 cb77 and have a couple questions. Did they come with a side stand or is mine missing? The throttle cable I bought on ebay doesn't seem to have the splitter and 2 short cables pictured in the add. Can I get the lower part or is the new cable adaptable to the old splitter. I believe everything is original Honda on this bike. Thanks, Gary

ilikevelos
honda305.com Member
Posts: 8
Joined: Sat Feb 20, 2010 7:51 pm
Location: Arlington, VA

Re: a couple novice questions

Post by ilikevelos » Thu May 01, 2025 8:49 am

Superhawk side stands were optional and are bolt on. When I got my Superhawk, I bought one and installed it.

Re throttle cables, I don't really remember but check the parts book. You can see it on the CMSNL web site which is a good place for parts but unfortunately a little inconsistent. The parts books are scanned there and viewable. On many bikes an alternative is a dual pull throttle and only two cables. You will find that pattern parts are typically problematic to varying degrees. You buy a honda oem part and it fits, you buy a pattern part and it may or may not fit and may or may not cause later problems with other pattern or OEM parts. Part of owning an old bike is dealing with pattern parts problems.

Best, M

User avatar
Tim Allman
honda305.com Member
Posts: 512
Joined: Tue Dec 02, 2014 9:25 am
Location: Guelph, Ontario, Canada

Re: a couple novice questions

Post by Tim Allman » Sat May 03, 2025 2:52 pm

Actually the CB77 never came with a side stand. They were made for the police model (CP77) and these will just bolt on. I wish I had one.

Post Reply

Return to “Honda Superhawk - CB72 | CB77 | CP77 | CBM72”