/** * Filter the query by a related Book object * * @param Book|PropelCollection $book The related object(s) to use as filter * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL * * @return ItemQuery The current query, for fluid interface */ public function filterByBook($book, $comparison = null) { if ($book instanceof Book) { return $this->addUsingAlias(ItemPeer::ISBN, $book->getIsbn(), $comparison); } elseif ($book instanceof PropelCollection) { if (null === $comparison) { $comparison = Criteria::IN; } return $this->addUsingAlias(ItemPeer::ISBN, $book->toKeyValue('PrimaryKey', 'Isbn'), $comparison); } else { throw new PropelException('filterByBook() only accepts arguments of type Book or PropelCollection'); } }
/** * Declares an association between this object and a Book object. * * @param Book $v * @return Item The current object (for fluent API support) * @throws PropelException */ public function setBook(Book $v = null) { if ($v === null) { $this->setIsbn(NULL); } else { $this->setIsbn($v->getIsbn()); } $this->aBook = $v; // Add binding for other direction of this n:n relationship. // If this object has already been added to the Book object, it will not be re-added. if ($v !== null) { $v->addItem($this); } return $this; }
/** * Prints the metadata and prices for an item * @param Item|Book $item an Item (Section mode) or Book (ISBN mode) object * @param int $requiredStatus */ function printItemRow($item, $status = null) { global $app; ?> <tr> <th> <span class="tooltip" style="display: none;"> <img src="<?php echo $item->getImageUrl(); ?> "> <h1><?php echo $item->getTitle(); ?> </h1> <h2><?php echo $item->getAuthor(); ?> </h2> <?php if ($edition = $item->getEdition()) { ?> <div class="edition"><strong>Edition:</strong> <?php echo $edition; ?> </div> <?php } if ($publisher = $item->getPublisher()) { ?> <div class="publisher"><strong>Publisher:</strong> <?php echo $publisher; ?> </div> <?php } if ($isbn = $item->getIsbn()) { ?> <div class="isbn"><strong>ISBN:</strong> <span class="isbn"><?php echo $isbn; ?> </span></div> <?php } ?> </span> <?php $indented = $item->isPackageComponent() || $status === SectionHasItem::BOOKSTORE_RECOMMENDED; $class = $indented ? " packageComponent" : ""; ?> <span class="bookdata <?php echo $class; ?> "> <span class="title"><?php echo $item->getTitle(); ?> </span><br> <?php if ($edition || $item->getAuthor()) { ?> <span class="minimetadata"><?php echo ($edition ? "{$edition}, " : "") . $item->getAuthor(); ?> </span> <?php } ?> <?php // e.g. (Recommended) if ($stat = Item::getStatusText($status)) { ?> <br/><span class="minimetadata"><?php echo $stat; ?> </span> <?php } // sentence about being a package or component if ($description = $item->getDescription($status)) { ?> <br/><span class="minimetadata important"><?php echo $description; ?> </span> <?php } ?> </span> </th> <?php foreach ($item->prices as $v => $p) { if ($p === null) { if ($v === $GLOBALS['results']->bookstore) { ?> <td data-price="-1" class="empty" data-unknown="true">unknown</td> <?php } else { ?> <td data-price="-1" class="empty">—</td> <?php } } else { ?> <td data-price="<?php echo money($p->total); ?> " <?php if ($p->asteriskPrice) { ?> data-used="<?php echo money($p->asteriskPrice); ?> " <?php } ?> data-subtotal="<?php echo money($p->subtotal); ?> " data-shipping="<?php echo money($p->shipping + $p->tax); ?> "> <a href="<?php echo $app->urlFor('redirect', array('url' => '', 'type' => 'single', 'vendor' => $p->vendorName)) . $p->url; ?> " data-confirm="<?php echo $p->getDescription(); ?> "> <?php if ($p->total == 0) { ?> unknown <?php } else { ?> $<?php echo money($p->total); echo $p->asteriskPrice ? '*' : ''; ?> <?php } ?> </a> </td> <?php } ?> <?php } // end: foreach $item->prices ?> </tr> <?php if ($item->getIsPackage()) { $components = Item::getComponents(array($item->getId())); foreach ($components as $c) { printItemRow($c); } } }