PDO::ERRMODE_EXCEPTION, PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8mb4", ] ); // --- Fetch newest completed CA entry --- // Assumes h305_ca77_entries is either a view or table already filtered to "completed" rows $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); // --- Helpers for casing normalization (same pattern as CB / CL) --- $keepCaps = static function (string $w): bool { // Keep original word case if it's already an acronym (2+ caps) or has a digit 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 ''; } // Respect hyphenated parts independently if (strpos($w, '-') !== false) { $parts = explode('-', $w); foreach ($parts as &$x) { $x = $keepCaps($x) ? $x : ucfirst(strtolower($x)); } return implode('-', $parts); } // Already looks like an acronym or has digits -> leave alone if ($keepCaps($w)) { return $w; } $dot = substr($w, -1) === '.'; $base = $dot ? substr($w, 0, -1) : $w; $done = ucfirst(strtolower($base)); return $dot ? ($done . '.') : $done; }; $titleCase = 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), ", "); }; // --- Build display line --- if (!$row) { $line = 'Latest Registry Entry: No completed entries found.'; } else { // Location: "WA, Australia" (skip empties, title-case each part) $region = $titleCase($row['ADM_StateOrProvince'] ?? ''); $country = $titleCase($row['ADM_Country'] ?? ''); $loc = trim( implode(', ', array_filter([$region, $country], static fn($v) => $v !== '')), ', ' ); // Normalize opinion_value_today using CL rules: // >=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 decoding (same mapping you provided, with fallback) $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'); // Gracefully handle blanks so we don't get double-spaces like " Honda " $yr = isset($row['model_year']) ? trim((string)$row['model_year']) : ''; $model = isset($row['model']) ? trim((string)$row['model']) : ''; $bikePart = trim($yr . ' Honda ' . $model); $locPart = $loc !== '' ? (' — ' . $loc) : ''; $line = 'Latest Registry Entry: ' . $bikePart . $locPart . ' — Condition: ' . $condNice . ' — Value: ' . $valFinal; } // --- Build final HTML snippet (static, safe to INCLUDEPHP in phpBB) --- $builtTs = (new DateTime('now'))->format('Y-m-d H:i:s T'); // These first two lines are harmless in phpBB output: and $charset = ''; $stamp = ''; $htmlOut = $charset . "\n" . $stamp . "\n" . $line . "\n"; // --- Write atomically to shared include dir --- $jobDir = __DIR__; // wherever this script lives $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'; // reserved for future logging 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, $htmlOut, 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'); } // --- Optional JSON breadcrumb for debugging / external consumption --- @file_put_contents( $jsonPath, json_encode( [ 'line' => $line, 'stamp' => $builtTs, 'ts' => date('c'), ], JSON_UNESCAPED_UNICODE ) ); // --- Done --- echo "OK\n"; exit(0); } catch (Throwable $e) { // Minimal error surface; log server-side, generic public output error_log("[generate_latest_ca77.php] " . $e->getMessage()); if (function_exists('http_response_code')) { @http_response_code(500); } echo "ERROR\n"; exit(1); }

are kenig hi comp.pistons any good ??

Post Reply
jensen
honda305.com Member
Posts: 1143
Joined: Tue Feb 12, 2008 2:51 pm
Location: netherlands, huizen
Contact:

Post by jensen » Sun Feb 27, 2011 5:26 pm

Hi,

Piston pin to piston clearance is 0,000 to 0,012. If clearance is more then 0,05 mm, repair.
If you can move the pin freely through the piston when cold, suspect and measure the clearance.

In plain English, when you feel (side) play, throw it away, because it's hard to feel 0,012 mm.
And to give an answer on the question, no, you don't need to move the pin freely to the piston, it's a tight fit, depending on the tolerances on both piston and pin.

Jensen
assembly of Japanese motorcycles requires great peace of mind (Pirsig)

LOUD MOUSE
honda305.com Member
Posts: 7818
Joined: Mon Aug 15, 2005 8:23 am
Location: KERRVILLE, TEXAS

Post by LOUD MOUSE » Sun Feb 27, 2011 8:03 pm

Ya mean the pin Doesn't Rotate In The Piston!!!!!!!!!!!!!!!!!!!!!???????????????
Now ya Got It. .............lm

jensen wrote:Hi,

Piston pin to piston clearance is 0,000 to 0,012. If clearance is more then 0,05 mm, repair.
If you can move the pin freely through the piston when cold, suspect and measure the clearance.

In plain English, when you feel (side) play, throw it away, because it's hard to feel 0,012 mm.
And to give an answer on the question, no, you don't need to move the pin freely to the piston, it's a tight fit, depending on the tolerances on both piston and pin.

Jensen

jensen
honda305.com Member
Posts: 1143
Joined: Tue Feb 12, 2008 2:51 pm
Location: netherlands, huizen
Contact:

Post by jensen » Mon Feb 28, 2011 4:40 am

Hi,

No, the piston isn't part of a bearing. The bearing is a combination of conrod (small end) and pin, not piston and piston pin. But when the piston is warm, there is a possibility that the pin can rotate a little in the piston, but not as a bearing.

Jensen
assembly of Japanese motorcycles requires great peace of mind (Pirsig)

Post Reply

Return to “Motors - 247cc | 305cc | 337cc | 350cc”