/** * Get additional content data selected * * @param $result = Query result */ public static function post_find($result) { if ($result !== null) { if (is_array($result)) { $tier_price = static::$tier_price; $user_group = static::$user_group; foreach ($result as $item) { // Get all prices $item->get_prices = static::lazy_load(function () use($item) { return \Product\Model_Attribute_Price::find(function ($query) use($item) { return $query->where('product_attribute_id', $item->id); }); }, $item->id, 'prices'); // Get unit price $item->get_unit_price = static::lazy_load(function () use($item, $user_group) { return \Product\Model_Attribute_Price::find(function ($query) use($item, $user_group) { $query->where('product_attribute_id', $item->id); $query->and_where('type', 'unit_price'); return $query->and_where('user_group_id', $user_group); }); }, $item->id, 'unit_price'); // Get sale price $item->get_sale_price = static::lazy_load(function () use($item, $user_group) { return \Product\Model_Attribute_Price::find(function ($query) use($item, $user_group) { $query->where('product_attribute_id', $item->id); $query->and_where('type', 'sale_price'); return $query->and_where('user_group_id', $user_group); }); }, $item->id, 'sale_price'); // Get tier price $item->get_tier_price = static::lazy_load(function () use($item, $user_group, $tier_price) { return \Product\Model_Attribute_Price::find(function ($query) use($item, $user_group, $tier_price) { $query->where('product_attribute_id', $item->id); $query->and_where('type', 'tier_price'); $query->and_where('user_group_id', $user_group); return $query->and_where('product_group_discount_id', $tier_price); }); }, $item->id, 'tier_price'); // Get content images $item->get_images = static::lazy_load(function () use($item) { return \Product\Model_Attribute_Image::find(array('where' => array('content_id' => $item->id), 'order_by' => array('sort' => 'asc'))); }, $item->id, 'images'); // Get attribute group $item->get_attribute_group = static::lazy_load(function () use($item) { // Return 0 for no attribute group if ($item->attribute_group_id == 0) { $tmp = new \stdClass(); $tmp->title = 'No Attributes'; return array(0 => $tmp); } // Return null for not yet selected group return \Attribute\Model_Attribute_Group::find(function ($query) use($item) { $query->where('id', $item->attribute_group_id); }); }, $item->id, 'attribute_group'); } } } // return the result return $result; }
<?php // Get categories $groups = \Attribute\Model_Attribute_Group::find(function ($query) { $query->order_by('sort', 'asc'); $query->order_by('id', 'asc'); }); ?> <div class="side_tree_holder"> <div class="tree_heading"> <h4>Attribute Groups</h4> <div id="sidetreecontrol" class="sidetreecontrol"><a href="#">Collapse All</a><a href="#">Expand All</a></div> </div> <div class="tree_content"> <div id="sidetree"> <?php if (empty($groups)) { ?> <div class="wide"><span class="req">Note: </span> There are no attribute groups yet.</div> <?php } else { ?> <ul class="treeview" id="tree"> <?php $list_attributes = function ($group) { ?> <ul><?php foreach ($group->attributes as $attribute) {