public
Description: Git mirror of the CMS Made Simple 2.0 rewrite
Homepage: http://cmsmadesimple.org
Clone URL: git://github.com/tedkulp/cmsmadesimple-2-0.git
Search Repo:
Created a test script to bulk load test pages
Fixed a couple of performance issues when loading from large content trees

Signed-off-by: Ted Kulp <ted@cmsmadesimple.org>


git-svn-id: http://svn.cmsmadesimple.org/svn/cmsmadesimple/trunk@4319 
3d254a34-79dc-0310-9e5f-be208747d8a0
tedkulp (author)
Tue Jan 29 12:59:44 -0800 2008
commit  5ad9a2e901919a55def4a667f39a61378407f076
tree    36dfa753c62ab81c5952a9c596b0973ecbf98c2d
parent  274aa501ae37d7b67199fae01e22528eefed5c3b
...
20
21
22
23
 
24
25
26
...
20
21
22
 
23
24
25
26
0
@@ -20,7 +20,7 @@
0
 {
0
   if (!isset($params['id']) || $params['id'] < 0)
0
   {
0
- var_dump('not found');
0
+ //var_dump('not found');
0
     return;
0
   }
0
 
...
652
653
654
655
 
 
656
657
658
...
652
653
654
 
655
656
657
658
659
0
@@ -652,7 +652,8 @@
0
       //created yet. We should probably do that.
0
       if (!$this->children_loaded())
0
       {
0
- $this->tree->load_child_nodes(-1, $this->lft, $this->rgt);
0
+ //$this->tree->load_child_nodes(-1, $this->lft, $this->rgt);
0
+ $this->tree->load_child_nodes($this->id);
0
       }
0
     }
0
     return $this->children;
...
69
70
71
 
 
 
72
73
74
...
93
94
95
96
 
 
97
98
99
...
69
70
71
72
73
74
75
76
77
...
96
97
98
 
99
100
101
102
103
0
@@ -69,6 +69,9 @@
0
       $pages = cms_orm()->content->find_all(array('conditions' => array('lft > ? AND rgt < ?', $lft, $rgt), 'order' => 'lft ASC'));
0
     }
0
     
0
+ //var_dump(count($pages));
0
+ //debug_print_backtrace();
0
+
0
     foreach ($pages as $page)
0
     {
0
       $parent_node = $this->get_node_by_id($page->parent_id);
0
@@ -93,7 +96,8 @@
0
       $top_nodes = $this->tree->get_root_node()->get_children();
0
       foreach ($top_nodes as $one_node)
0
       {
0
- if ($one_node->lft < $page->lft && $one_node->rgt > $page->rgt && $one_node->id != $page->id) //Don't bother doing this if we're only level 2
0
+ //Don't bother doing this if we're only level 2
0
+ if ($one_node->lft < $page->lft && $one_node->rgt > $page->rgt && $one_node->id != $page->id)
0
         {
0
           $ancestor = $one_node;
0
           break;
...
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
...
1
2
3
4
5
6
7
8
9
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
0
@@ -1 +1,99 @@
0
+<?php
0
+
0
+include_once ('../lib/cmsms.api.php');
0
+
0
+$db = cms_db();
0
+
0
+define('NUM_PER', 32);
0
+define('MAX_DEPTH', 3);
0
+
0
+//var_dump('Creating ' . (pow(NUM_PER, MAX_DEPTH) + NUM_PER + 1) . ' nodes...');
0
+
0
+$db->Execute('DELETE FROM ' . cms_db_prefix() . 'content_props');
0
+//$db->Execute('ALTER TABLE ' . cms_db_prefix() . 'content_props AUTO_INCREMENT = 1');
0
+$db->Execute('DELETE FROM ' . cms_db_prefix() . 'content');
0
+//$db->Execute('ALTER TABLE ' . cms_db_prefix() . 'content AUTO_INCREMENT = 1');
0
+
0
+$id = 1;
0
+$lft = 1;
0
+$rgt = 2;
0
+$hierarchy = '';
0
+
0
+function create_content(&$id, &$lft, &$rgt, $hierarchy, $depth, $parent_id)
0
+{
0
+ $db = cms_db();
0
+
0
+ /*
0
+ `id` int(11) NOT NULL auto_increment,
0
+ `content_name` varchar(255) default NULL,
0
+ `type` varchar(25) default NULL,
0
+ `owner_id` int(11) default NULL,
0
+ `parent_id` int(11) default NULL,
0
+ `template_id` int(11) default NULL,
0
+ `item_order` int(11) default NULL,
0
+ `lft` int(11) default NULL,
0
+ `rgt` int(11) default NULL,
0
+ `hierarchy` varchar(255) default NULL,
0
+ `default_content` tinyint(4) default NULL,
0
+ `menu_text` varchar(255) default NULL,
0
+ `content_alias` varchar(255) default NULL,
0
+ `show_in_menu` tinyint(4) default NULL,
0
+ `collapsed` tinyint(4) default NULL,
0
+ `markup` varchar(25) default NULL,
0
+ `active` tinyint(4) default NULL,
0
+ `cachable` tinyint(4) default NULL,
0
+ `id_hierarchy` varchar(255) default NULL,
0
+ `hierarchy_path` text,
0
+ `prop_names` text,
0
+ `metadata` text,
0
+ `titleattribute` varchar(255) default NULL,
0
+ `tabindex` varchar(10) default NULL,
0
+ `accesskey` varchar(5) default NULL,
0
+ `last_modified_by` int(11) default NULL,
0
+ `create_date` datetime default NULL,
0
+ `modified_date` datetime default NULL,
0
+ */
0
+ for ($i = 1; $i <= NUM_PER; $i++)
0
+ {
0
+ //$new_id = $id + $i;
0
+ $id++;
0
+ $orig_id = $id;
0
+ //$lft = $lft + (MAX_DEPTH - $depth + 1);
0
+ $lft++;
0
+
0
+ //$rgt = $lft + ((MAX_DEPTH - $depth + 1) * NUM_PER + 1);
0
+
0
+ $new_hierarchy = $hierarchy . $i;
0
+ $query = 'INSERT INTO ' . cms_db_prefix() . 'content (id, lft, rgt, hierarchy, content_name, menu_text, content_alias, item_order, template_id, parent_id, default_content, active, show_in_menu) VALUES (?, ?, ?, ?, ?, ?, ?, ?, 1, ?, 0, 1, 1)';
0
+ $db->Execute($query, array($id, $lft, $lft + 1, $new_hierarchy, $new_hierarchy, $new_hierarchy, $new_hierarchy, $i, $parent_id));
0
+
0
+ if ($depth < MAX_DEPTH)
0
+ {
0
+ create_content($id, $lft, $rgt, $new_hierarchy . '.', $depth + 1, $orig_id);
0
+ }
0
+
0
+ $lft++;
0
+
0
+ $query = 'UPDATE ' . cms_db_prefix() . 'content SET rgt = ? WHERE id = ?';
0
+ $db->Execute($query, array($lft, $orig_id));
0
+ }
0
+}
0
+
0
+$db->Execute('SET insert_id = 1');
0
+
0
+$query = 'INSERT INTO ' . cms_db_prefix() . 'content (id, lft, rgt, hierarchy, content_name, menu_text, item_order) VALUES (?, ?, ?, ?, ?, ?, ?)';
0
+$db->Execute($query, array($id, $lft, $lft+1, '', '__root__', '__root__', 1));
0
+
0
+create_content($id, $lft, $rgt, '', 1, 1);
0
+
0
+$query = 'UPDATE ' . cms_db_prefix() . 'content SET rgt = ? WHERE id = ?';
0
+$db->Execute($query, array($lft+1, 1));
0
+
0
+$query = 'UPDATE ' . cms_db_prefix() . 'content SET default_content = 1 WHERE id = 2';
0
+$db->Execute($query);
0
+
0
+include ('../lib/page.functions.php'); //bug -- needs fixing in CmsSmarty
0
+CmsCache::clear();
0
+
0
+?>

Comments

    No one has commented yet.