Dancer2-Plugin-Cart

 view release on metacpan or  search on metacpan

bin/create_cart_views.pl  view on Meta::CPAN

$close_t =  $ARGV[1] || $close_t;
 
my $dir = 'views';

if (-e $dir and -d $dir) {
  make_path('views/cart/');
  print "Creating views/cart directory\n";
  make_path('views/layouts/');
  print "Creating views/layouts directory\n";
	create_cart_layout;
	print "Layout created at $dir/layouts/cart.tt\n";
  create_products_view;
  print "Products view created at $dir/products.tt\n";
  create_cart_view;
  print "Cart view created at $dir/cart/cart.tt\n";
  create_shipping_view;
  print "Shipping view created at $dir/cart/shipping.tt\n";
  create_billing_view;
  print "Billing view created at $dir/cart/billing.tt\n";
  create_review_view;
  print "Review view created at $dir/cart/review.tt\n"; 
  create_receipt_view;
  print "Receipt view created at $dir/cart/receipt.tt\n"; 
} 
else {
  print "view directory needs to exists in order to proceed, please be sure you are in the root of your application.\n";
}



sub create_cart_layout{
  my $page = "";
  $page .= "
		<!DOCTYPE html>
		<html lang='en'>
		<head>
			<meta name='viewport' content='width=device-width, initial-scale=1.0, user-scalable=yes'>
			<title>Ec Cart</title>
			<link rel='stylesheet' href='https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css'>
			<script src='https://code.jquery.com/jquery-2.2.4.min.js'></script>
			<script src='https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js'></script>
		</head>
		<body>
  <nav class='navbar navbar-default'>
    
      <div class='navbar-header'>
        <button type='button' class='navbar-toggle collapsed' data-toggle='collapse' data-target='#menu-options' aria-expanded='false'>
          <span class='sr-only'>Toggle navigation</span>
          <span class='icon-bar'></span>
          <span class='icon-bar'></span>
          <span class='icon-bar'></span>
        </button>
        <a class='navbar-brand' href='#'>Ec-Cart</a>
      </div>
    </div>
    <div class='collapse navbar-collapse' id='menu-options'>
      <ul class='nav navbar-nav navbar-right'>
        <li><a href='/products'>Products</a></li>
        <li><a href='/cart'><span class='glyphicon glyphicon-shopping-cart' aria-hidden='true'></span></a></li>
         <li class='dropdown'>
          <a href='#' class='dropdown-toggle' data-toggle='dropdown' role='button' aria-haspopup='true' aria-expanded='false'>About<span class='caret'></span></a>
          <ul class='dropdown-menu'>
            <li><a href='https://github.com/YourSole/Cart'>Github</a></li>
          </ul>
        </li>
      </ul>
</nav>
			<div class='container'>
				$open_t content $close_t 
			</div>
		</body>
		</html>
	";
  create_view( 'layouts/cart.tt', $page );
  return 1;
};


sub create_products_view{
  my $page = "";
  $page .= "
  <h1>Product list</h1>
  <table class='table table-bordered'>
    <thead>
      <tr>
        <th>Sku</th><th>Price</th><th>Action</th>
      </tr>
    </thead>
    <tbody>";
    $page .= "
    $open_t FOREACH product IN product_list $close_t
      <tr>
        <td> $open_t product.ec_sku $close_t </td>
        <td> $open_t product.ec_price $close_t </td>
        <td>
          <form method='post' action='cart/add'>
            <input type='hidden' name='ec_sku' value='$open_t product.ec_sku $close_t'>
            <input type='hidden' name='ec_quantity' value='1'>
            <input type='submit' value = 'Add' class='btn btn-primary'>
          </form>
        </td>
      </tr>
    $open_t END $close_t";
  $page .= "
    </tbody>
  </table>";
  create_view( 'products.tt', $page );
  return 1;
};


sub _cart_view {
  my ($params) = @_;
  my $editable = $params->{editable} || 0;
  my $ec_cart = $params->{ec_cart} || 'ec_cart';
  my $colspan = $editable?4:2;
  my $page = "$open_t IF $ec_cart.cart.items.size $close_t";
    $page .= "<h2>Cart info</h2>
    <table class='table table-bordered'>
      <thead>
        <tr>



( run in 0.871 second using v1.01-cache-2.11-cpan-364913b4093 )