ruạṛ
<?php /** * Display categories and products * @version 0.10 * @author Robert Urquhart <programmer@activatedesign.co.nz> * @package WEP-CMS */ session_start(); require_once 'scripts-includes/universal.php'; require_once 'scripts-includes/display.php'; $categories = build_category_tree(); // recursive function // print_r($pages); if(count($categories)==0) { $table = '<p class="center">No categories found</p>'; } else { $table = '<table class="control_panel"> <thead> <tr> <th class="pad"></th> <th>Category/Product</th> <th class="control">Active</th> <th class="control">On Menu</th> <th class="control">Position<br /><input type="submit" value="Update" class="update" /></th> <th class="control">Edit</th> <th class="control">Delete</th> <th class="control">Views</th> <th class="pad"></th> </tr> </thead> <tfoot></tfoot> '; $table .= build_category_table($categories); //recursive function $table .= uncategorised_products(); $table .='</table>'; } head('products','Administration Panel'); $error = isset($_SESSION['passback']); ?> <form name="add_category" id="add_category" action="processes/process-category-new.php" method="post" enctype="multipart/form-data" class="add"> <p class="center"><label for="cat_name">Category name:</label> <input name="cat_name" id="cat_name" type="text" size="30" value="<?php echo ($error) ? $_SESSION['passback']['cat_name'] : ''; ?>" /> in <select name="parent" id="parent"> <option value="0">Top Level category</option> <?php $category_id = ($error) ? $_SESSION['passback']['parent_id'] : 0; echo build_category_select($categories,1,1,2,true); ?> </select> at position <input name="position" id="position" type="text" size="2" maxlength="3" value="<?php echo ($error) ? $_SESSION['passback']['position'] : ''; ?>" placeholder="<?php echo select_one('categories','max(position)')+10;?>" /> <input type="submit" name="add" value="Add category" /> </p> </form> <?php if($error){unset($_SESSION['passback']);} if(count($categories)>0): ?> <p> </p> <form class="add center" action="edit-product.php" method="get"> <p> <a href="edit-product.php">Add a product</a> | <input name="prod" id="prod" type="hidden" value="" /> <label for="find_product">Find Product:</label> <input type="text" name="find_product" id="find_product" value="" size="40"> <input type="submit" value="Go to product" /> </p> </form> <?php endif; ?> <form action="processes/process-category-product-ordering-bulk.php" method="post" enctype="multipart/form-data"> <?php echo $table; ?> </form> <?php footer(); exit; function build_category_table($categories=array(), $tier=1,$menu_id=0) { $rows = ''; foreach($categories as $c) { /* if($c['menu_id'] != $menu_id) { $rows .= '<tr><th colspan="9" class="left">'.select_one('menus','menu_title','menu_id',$c['menu_id']).'</th></tr>'."\n"; $menu_id = $c['menu_id']; } */ $cid = $c['cat_id']; $name = '<a href="'.$c['path'].'" target="preview">'.$c['name'].'</a>'; if($c['products']>0) $name .= ' ('.$c['products'].')'; for($i=1;$i<$tier;$i++) { $name = '- '.$name; } $name = '<td class="left"><span class="tier-'.$tier.'"> '.$name.'</span></td>'; $visits = '<td>'.$c['visited'].'</td>'; $edit = '<td><a href="edit-category.php?cat='.$cid.'">Edit</a></td>'; $active = '<td><a class="toggle" href="processes/process-switch.php?f=active&cat='.$cid.'">'.onOrOff($c['active']).'</a></td>'; $menu = '<td><a class="toggle" href="processes/process-switch.php?f=menu&cat='.$cid.'">'.onOrOff($c['menu']).'</a></td>'; $order = '<input name="category['.$cid.']" type="text" size="2" maxlength="3" class="ordering inline-editing" value="'.$c['position'].'" />'; for($i=1;$i<$tier;$i++) { $order = ' '.$order; } $order = '<td>'.$order.'</td>'; $delete = '<td><a href="processes/process-category-delete.php?cat='.$cid.'" onClick="if(confirm(\'Delete '.addslashes($c['name']).', and any subcategories?\')){return true}else{return false}" class="delete"><img src="images/img-del.png" alt="Delete" /></a></td>'; $rows .= '<tbody class="category tier-'.$tier.'">'; $rows .= "<tr> <td> </td> $name $active $menu $order $edit $delete $visits <td> </td> </tr> "; $rows .= ' </tbody> '; /* * if lowest tier output all products */ if(empty($c['branches'])) { $products = mysql_query("select x.product_path as path, x.position as ord, p.* from product_category_xref as x left join products as p on p.prod_id = x.product_id where x.category_id = '$cid' order by x.position") or die(mysql_error()); if(mysql_num_rows($products)>0) { $rows .= '<tbody class="products"> '.product_rows($products,$cid,$tier).' </tbody> '; } } else { $products = mysql_query("select x.product_path as path, x.position as ord, p.* from product_category_xref as x left join products as p on p.prod_id = x.product_id where x.category_id = '$cid' and (select count(*) from product_category_xref where product_id = p.prod_id and category_id in (select cat_id from categories where parent_id = '$cid') ) = '0' order by x.position") or die(mysql_error()); if(mysql_num_rows($products)>0) { $rows .= '<tbody class="products"> '.product_rows($products,$cid,$tier).' </tbody> '; } $rows .= build_category_table($c['branches'],$tier+1,$menu_id); } // recursive } return $rows; } /** * @param resource $products */ function product_rows($products,$cid,$tier) { $rows = ''; if($products && mysql_num_rows($products)>0) { while($p = mysql_fetch_assoc($products)) { $pid = $p['prod_id']; $rows .= '<tr class="product"> <td> </td> '; $name = ''; for($i=1;$i<$tier;$i++) { $name .= ' '; } $name .= '<a href="'.$p['path'].'" target="preview">'.$p['product_name'].'</a>'; $name .= ($p['featured']) ? ' [featured]' : ''; $name .= ($p['sidebar']) ? ' [sidebar]' : ''; $name = "<td>$name</td>"; $visits = '<td>'.$p['visited'].'</td>'; //$visits = '<td> </td>'; $edit = '<td><a href="edit-product.php?prod='.$pid.'">Edit</a></td>'; $active = '<td><a href="processes/process-switch.php?f=active&prod='.$pid.'" class="toggle">'.onOrOff($p['active']).'</a></td>'; $menu = '<td> </td>'; $order = '<input name="product['.$cid.']['.$pid.']" type="text" size="2" maxlength="3" class="ordering inline-editing" value="'.$p['ord'].'" />'; for($i=1;$i<$tier;$i++) { $order = ' '.$order; } $order = '<td>'.$order.'</td>'; $delete = '<td><a href="processes/process-product-delete.php?prod='.$pid.'" onClick="if(confirm(\'Delete '.addslashes($p['product_name']).' from all categories?\')){return true}else{return false}" class="delete"><img src="images/img-del.png" alt="Delete" /></a></td>'; $rows .= "$name $active $menu $order $edit $delete $visits <td> </td> </tr> "; }// end while $products } //end if $products return $rows; } function uncategorised_products() { $rows = ''; $products = mysql_query("select p.* from products as p left join product_category_xref as x on x.product_id = p.prod_id where x.category_id is null"); if($products && mysql_num_rows($products) > 0) { $name = '<b>Uncategorised Products</b> ('.mysql_num_rows($products).')'; $name = '<td class="left"><span class="tier-1"> '.$name.'</span></td>'; $visits = '<td> </td>'; $edit = '<td> </td>'; $active = '<td> </td>'; $menu = '<td> </td>'; $order = '<td> </td>'; $delete = '<td colspan="3"><a href="processes/process-products-uncategorised-delete.php" class="button update" onclick="if(confirm(\'Delete '.mysql_num_rows($products).' uncategorised products?\')){return true}else{return false}" >Delete all uncategorised products</a></td>'; $rows .= '<tbody class="category tier-1">'; $rows .= "<tr> <td> </td> $name $active $menu $order $delete </tr> "; $rows .= ' </tbody> '; $rows .= '<tbody class="products"> '; while($p = mysql_fetch_assoc($products)) { $pid = $p['prod_id']; $rows .= '<tr class="product"> <td> </td> '; $name = $p['product_name']; $name .= ($p['featured']) ? ' [featured]' : ''; $name .= ($p['sidebar']) ? ' [sidebar]' : ''; $name = "<td>$name</td>"; $visits = '<td>'.$p['visited'].'</td>'; $edit = '<td><a href="edit-product.php?prod='.$pid.'">Edit</a></td>'; $active = '<td>'.onOrOff($p['active']).'</td>'; $menu = '<td> </td>'; $order = '<td> </td>'; $delete = '<td><a href="processes/process-product-delete.php?prod='.$pid.'" onClick="if(confirm(\'Delete '.addslashes($p['product_name']).'?\')){return true}else{return false}" class="delete"><img src="images/img-del.png" alt="Delete" /></a></td>'; $rows .= "$name $active $menu $order $edit $delete $visits <td> </td> </tr> "; }// end while $products $rows .= ' </tbody> '; } return $rows; } ?>
cải xoăn