From d4978a7122ae0211c93e8e1a849cd191affb6c05 Mon Sep 17 00:00:00 2001 From: Kian <156937383+kian-mcchesney@users.noreply.github.com> Date: Mon, 19 Jan 2026 21:10:52 -0500 Subject: [PATCH] first commit --- assets/cart_add.png | Bin 0 -> 3855 bytes js/ava_test_.js | 24 ------- js/main.js | 22 ++++++ js/search_shop_link.js | 23 +++++++ jstest.php | 57 ---------------- plugin.php | 151 +++++++++++++++++++++++++++++++++++++++++ 6 files changed, 196 insertions(+), 81 deletions(-) create mode 100644 assets/cart_add.png delete mode 100644 js/ava_test_.js create mode 100644 js/main.js create mode 100644 js/search_shop_link.js delete mode 100644 jstest.php create mode 100644 plugin.php diff --git a/assets/cart_add.png b/assets/cart_add.png new file mode 100644 index 0000000000000000000000000000000000000000..0eb83e4ef7652f982d375e3763e65050d3119566 GIT binary patch literal 3855 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 RTZ8}r002ovPDHLkV1mz=FDd{4 literal 0 HcmV?d00001 diff --git a/js/ava_test_.js b/js/ava_test_.js deleted file mode 100644 index 3a610b3..0000000 --- a/js/ava_test_.js +++ /dev/null @@ -1,24 +0,0 @@ -function popup(){ - - -alert('hello there this is a test popup'); -console.log("hellooooo"); - -} - - -function replace_text(){ - - var x= document.getElementById("ub-tabbed-content-f5da2756-8434-41cd-aa83-ec95a71a9c26-panel-0"); - x.innerHTML=js_variable; - -} - -document.addEventListener("DOMContentLoaded", function () { - popup(); - - replace_text(); -}); - - - diff --git a/js/main.js b/js/main.js new file mode 100644 index 0000000..e28db78 --- /dev/null +++ b/js/main.js @@ -0,0 +1,22 @@ +var counter=0; + +(function waitForISBN() { + const interval = setInterval(() => { + const isbnEl = document.querySelector(".sp__the-isbn13"); + + if (!isbnEl){ + +return; + } // keep waiting + + const isbn = isbnEl.textContent.trim(); + const link = document.querySelector(".wp-block-image.size-full a"); + + if (link) { + link.href = `https://cdcshoppingcart.uchicago.edu/Cart2/ChicagoBook?ISBN=${isbn}&PRESS=wvp`; + console.log("Cart link updated:", isbn); + } + + clearInterval(interval); // stop checking once done + }, 100); // check every 100ms +})(); diff --git a/js/search_shop_link.js b/js/search_shop_link.js new file mode 100644 index 0000000..13dd97c --- /dev/null +++ b/js/search_shop_link.js @@ -0,0 +1,23 @@ +(function waitForBookWrappers(imageUrl) { + const interval = setInterval(() => { + const bookWrappers = document.querySelectorAll(".book-wrapper"); + if (bookWrappers.length === 0) return; + + bookWrappers.forEach(wrapper => { + const coverLink = wrapper.querySelector(".sp__the-cover a"); + if (!coverLink || wrapper.querySelector(".shop_link")) return; + + const hrefParts = coverLink.getAttribute("href").split("/"); + const isbn = hrefParts[1]; + + const shopLink = document.createElement("p"); + shopLink.innerHTML = ` + Shop Link + `; + + wrapper.appendChild(shopLink); + }); + + clearInterval(interval); + }, 100); +})(window.searchShopLinkImageUrl); // Pass URL dynamically diff --git a/jstest.php b/jstest.php deleted file mode 100644 index 104eaa2..0000000 --- a/jstest.php +++ /dev/null @@ -1,57 +0,0 @@ -loadHTML('' . $content); - $xpath = new DOMXPath($dom); - - $panels = $xpath->query( - "//*[contains(@class,'wp-block-ub-tabbed-content-tab-content-wrap')]" - ); - - if ($panels->length === 0) { - return $content; - } - - if ($panels->item(0)) { - replace_panel_html($dom, $panels->item(0), '

TEST AUTHOR CONTENT

'); - } - - if ($panels->item(1)) { - replace_panel_html($dom, $panels->item(1), '

TEST SUMMARY CONTENT

'); - } - - if ($panels->item(2)) { - replace_panel_html($dom, $panels->item(2), '

TEST REVIEWS CONTENT

'); - } - - return $dom->saveHTML(); -} - - - -function replace_panel_html($dom, $panel, $html) { - while ($panel->firstChild) { - $panel->removeChild($panel->firstChild); - } - - $fragment = $dom->createDocumentFragment(); - $fragment->appendXML($html); - $panel->appendChild($fragment); -} diff --git a/plugin.php b/plugin.php new file mode 100644 index 0000000..c3271df --- /dev/null +++ b/plugin.php @@ -0,0 +1,151 @@ +(.*?)<\/div>\s*<\/div>/s', $html, $match); + + if (!isset($match[0])) return $html; + + $book_block = $match[0]; + + $cover = extract_attr($book_block, '/]*src="([^"]+)"/'); + $title = extract_text($book_block, '/
\s*

(.*?)<\/h1>/'); + $author = extract_text($book_block, '/

(.*?)<\/p>/'); + $publisher = extract_text($book_block, '/

(.*?)<\/p>/'); + $imprint = extract_text($book_block, '/

(.*?)<\/p>/'); + $series = extract_text($book_block, '/

(.*?)<\/p>/'); + $isbn13 = extract_text($book_block, '/

(.*?)<\/p>/'); + $price = extract_text($book_block, '/

(.*?)<\/p>/'); + $format = extract_text($book_block, '/

(.*?)<\/p>/'); + $pubdate = extract_text($book_block, '/

(.*?)<\/p>/'); + $pages = extract_text($book_block, '/

(.*?)<\/p>/'); + $summary = extract_html($book_block, '/

(.*?)<\/div>/s'); + $description= extract_html($book_block, '/
(.*?)<\/div>/s'); + $reviews = extract_html($book_block, '/
(.*?)<\/div>/s'); + + + +$html = preg_replace_callback( + '/(
]*>)(.*?)(<\/div>)/s', + function($matches) use ($description, $author, $reviews) { + static $i = 0; + $replacement = ''; + if ($i === 0) $replacement = $description; + elseif ($i === 1) $replacement = 'Hello World!'; + elseif ($i === 2) $replacement = $author; + elseif ($i === 3) $replacement = $reviews; + $i++; + return $matches[1] . $replacement . $matches[3]; + }, + $html + ); + + return $html; +} + +function extract_text($html, $pattern) { + preg_match($pattern, $html, $m); + return $m[1] ?? ''; +} + +function extract_attr($html, $pattern) { + preg_match($pattern, $html, $m); + return $m[1] ?? ''; +} + +function extract_html($html, $pattern) { + preg_match($pattern, $html, $m); + return $m[1] ?? ''; +} + + +//gets rid of information and image wrapper +add_action('wp_head', function() { + echo ''; +}); + +