- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
if(!$category = $this->EE->product_model->get_category_by_key($key)){
$this->EE->functions->redirect($this->EE->functions->create_url($this->EE->config->item('site_404')));
exit();
}
// Эти 4 строчки достают все продукт которые относятся к выбранной категории. Дальше веселее ..
// Build our variable data
$vars[0] = array(
'site_id' => $category[0]['site_id'],
'category_id' => $category[0]['category_id'],
'category_image' => $img,
'category_detail' => $category[0]['detail'],
'parent_id' => $category[0]['parent_id'],
'category_title' => $category[0]['title'],
'url_title' => $category[0]['url_title'],
'meta_title' => $category[0]['meta_title'],
'meta_keyword' => $category[0]['meta_keyword'],
'meta_descr' => $category[0]['meta_descr'],
'total_results' => count($category[0]["products"]),
'results' => $category[0]["products"],
'no_results' => array(),
'result_filter_set' => '',
'breadcrumb_parent_categories' => $breadcrumb_parent_categories,
'catalog_guest_flag' => $flag_catalog,
'catalog_price_visible' => $catalog_visible
);
// Filter the results
if(count($category[0]["products"]) != 0)
$vars = $this->_filter_results($vars,$key,true);
// А теперь count($vars['results']) == $this->EE->config->products_per_page;
// И самое веселое -
foreach($vars[0]['results'] as $rst){
$tmp = $this->_get_product($rst["product_id"]);
$results[] = $tmp[0];
}
$vars[0]['results'] = $results;
// Функция _get_product() получает все данные о продукте: отзывы, описание, цена, куча опций. Пара строчек оттуда:
if($product_id == ''){
// Get product by param or dynamically
$product_id = $this->EE->TMPL->fetch_param('product_id');
$url_title = $this->EE->TMPL->fetch_param('url_title');
if($product_id != ''){
$products = $this->EE->product_model->get_products($product_id);
}else{
// get by url key
$key = ($url_title == '') ? $this->EE->uri->segment(2) : $url_title;
if(!$products = $this->EE->product_model->get_product_by_key($key)){
// Not a product page
return false;
}
}
}else{
if(!$products = $this->EE->product_model->get_products($product_id)){
return false;
}
}
// Очень интересен вызов функции get_products(), эта ф-ция вызывается и для продуктов в каталоге и на странице продукта.
// Каждый вызов тянет за собой 25 запросов в базу, если на странице 40 продуктов * 25 = 1000 запросов = ~ 20 секунд на загрузку страницы
кусочек кода который выводит продукты в каталог, взят из eCommerce плагина BrilliantRetail для ExpressionEngine. Плагин кстати говоря стоит 150 баксов, мда )
bormand 27.10.2012 16:41 # +2
wvxvw 27.10.2012 17:28 # +1
bormand 27.10.2012 18:07 # +4
scriptin 27.10.2012 20:14 # +1
Статья в тему: http://steve-yegge.blogspot.com/2008/09/programmings-dirtiest-little-secret.html
bormand 27.10.2012 21:00 # 0
Догадайтесь, чем жертвуют не умеющие печатать вслепую? Всем, приятель. Они приносят в жертву всё.
USB 27.10.2012 21:38 # 0
Почему?
bormand 27.10.2012 21:45 # 0
А еще чуть выше просто про общение с людьми в месенджерах - не умея печатать вслепую приходится сокращать мысли, и заставлять людей ждать.
Почитайте статейку, автор интересно пишет.
roman-kashitsyn 27.10.2012 22:38 # 0
По мне так немного затянуто, хоть я и дочитал до конца. Давно уже думаю попробовать Дворака, но не знаю, стоит ли оно того. Я лично не знаком с людьми, которые решились на такой шаг, хотя знаю парочку думавших об этом.
Кто-нибудь пробовал освоить Дворака? Оно того стоит? Судя по статье и отзывам в комментах - стоит, но хотелось бы услышать мнение русскоговорящих коллег :)
USB 27.10.2012 22:41 # 0
roman-kashitsyn 27.10.2012 23:05 # +1
Всем известен факт, что раскладка qwerty создавалась с целью не давать молоточкам сцепляться, а не с целью сделать удобную для людей раскладку.
Выучить новые позиции букв несложно, сложнее будет переучиваться работать с текстовыми редакторами (много аккордов в емаксе поменяется).
P.S. На самом деле, мне интересней скорее Colemak, но это не принципиально.
eth0 28.10.2012 17:33 # 0
roman-kashitsyn 27.10.2012 23:53 # +1
- у всех людей вокруг будет qwerty, за чужим компьютером нужно будет перестраиваться
- дома компьютером пользуюсь не я один, нужно дополнительное переключение раскладки, что совсем не айс
Ох уж эти вездесущие проблемы обратной совместимости...
*ушёл прокачивать слепую печать на qwerty*
defecate-plusplus 28.10.2012 01:06 # +2
будущее - за Йцукен!
inkanus-gray 28.10.2012 06:13 # +2
bormand 28.10.2012 08:13 # 0
На русском да (ну собственно она и используется), на инглише, имхо, не особо.
Скорее она сделана для людей, которые набирают по больше части на русском, и не хотят учить вторую раскладку.
inkanus-gray 28.10.2012 09:53 # +2
wvxvw 28.10.2012 02:30 # 0
Конечно, спору нет, печатать вслепую гораздо лучше, но мне кажется, что факты несколько преувеличены.
zim 27.10.2012 16:55 # +2
bormand 27.10.2012 17:48 # −1