Advertisement
NFL

Untitled

NFL
Sep 12th, 2014
261
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.88 KB | None | 0 0
  1. public function scaffAction() {
  2. $db = Zend_Db_Table::getDefaultAdapter();
  3. $useCache = false;
  4. if ($this->_getParam('cache', false)) {
  5. $frontendOptions = array(
  6. 'lifetime' => 7200, // время жизни кэша - 2 часа
  7. 'automatic_serialization' => true
  8. );
  9.  
  10. $backendOptions = array(
  11. 'cache_dir' => APPLICATION_CACHE_DIR // директория, в которой размещаются файлы кэша
  12. );
  13. $cache = Zend_Cache::factory('Core', 'File', $frontendOptions, $backendOptions);
  14. $useCache = true;
  15. }
  16.  
  17. /* for($i=1; $i<=40; $i++) {
  18. $db->insert('test', array(
  19. 'pid'=>0,
  20. 'title'=>'Категория-родитель 1 уровня '.$i
  21.  
  22. ));
  23. } */
  24. /*
  25. $second = array();
  26. foreach($list as $v) {
  27. //Генерим предков 2 уровня
  28. $count = mt_rand(5, 20);
  29. for($i=1; $i<=$count; $i++) {
  30. $second[] = $db->insert('test', array(
  31. 'pid'=>$v['id'],
  32. 'title'=>'Категория-потомок 2 уровня '.$i
  33. ));
  34. }
  35. }
  36. exit(var_dump($second)); */
  37. /* $list = $db->select()->from('test')->where('id > 2700')->query()->fetchAll();
  38. foreach($list as $v) {
  39. //Генерим предков 2 уровня
  40. $count = mt_rand(0, 10);
  41. for($i=1; $i<=$count; $i++) {
  42. $db->insert('test', array(
  43. 'pid'=>$v['id'],
  44. 'title'=>'Категория-потомок 4 уровня '.$i
  45. ));
  46. }
  47. }exit; */
  48.  
  49. if ($useCache) {
  50. $start = microtime(true);
  51. if (!$container = $cache->load('categories')) {
  52. $list = $db->select()->from('test')->query()->fetchAll();
  53. $entries = array();
  54. foreach ($list as $row) {
  55. $entry['id'] = $row['id'];
  56. $entry['parent_id'] = $row['pid'];
  57. $entry['title'] = $row['title'];
  58. $entry['label'] = $row['title'];
  59. $entry['external_url'] = '#' . $row['id'];
  60. $entry['uri'] = '#' . $row['id'];
  61. $entry['class'] = 'nav-item';
  62. $entry['active'] = (bool) mt_rand(0, 1);
  63. $entries[] = $entry;
  64. }
  65. $entries = Core_Helper_Tree::build($entries);
  66. $container = new Zend_Navigation();
  67. $container->setPages($entries);
  68. $cache->save($container, 'categories');
  69. }
  70. $this->view->container = $container;
  71. $this->view->time = microtime(true) - $start;
  72. $this->view->count = count($container->count());
  73. } else {
  74.  
  75. $start = microtime(true);
  76. $list = $db->select()->from('test')->query()->fetchAll();
  77. $entries = array();
  78. foreach ($list as $row) {
  79. $entry['id'] = $row['id'];
  80. $entry['parent_id'] = $row['pid'];
  81. $entry['title'] = $row['title'];
  82. $entry['label'] = $row['title'];
  83. $entry['external_url'] = '#' . $row['id'];
  84. $entry['uri'] = '#' . $row['id'];
  85. $entry['class'] = 'nav-item';
  86. $entry['active'] = (bool) mt_rand(0, 1);
  87. $entries[] = $entry;
  88. }
  89. $entries = Core_Helper_Tree::build($entries);
  90. $container = new Zend_Navigation();
  91. $container->setPages($entries);
  92. $this->view->container = $container;
  93. $this->view->time = microtime(true) - $start;
  94. $this->view->count = count($list);
  95. }
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement