do not show translated category ids in list
[Pman.Cms] / mysql / cms_page_fullpath.sql
1
2 DROP PROCEDURE IF EXISTS cms_page_fullpath;
3
4 DELIMITER $$
5
6 CREATE PROCEDURE cms_page_fullpath(
7     IN in_id INT(11), 
8     IN in_separator VARCHAR(64),
9     IN in_depth INT(11),
10     OUT fullpath TEXT 
11 ) DETERMINISTIC
12     BEGIN
13         
14         DECLARE v_title TEXT;
15         DECLARE v_parent_title TEXT;
16         DECLARE v_parent_id INT(11);
17         DECLARE v_translation_of_id INT(11);
18
19         SET v_title = '';
20         SET v_parent_title = '';
21         SET v_parent_id = 0;
22         SET v_translation_of_id = 0;
23         SET max_sp_recursion_depth = 15;
24         
25         SELECT title, parent_id, translation_of_id INTO v_title, v_parent_id, v_translation_of_id FROM cms_page WHERE id = in_id;
26
27         IF (v_translation_of_id > 0) THEN
28             SELECT title, v_parent_id INTO v_title, v_parent_id FROM cms_page WHERE id = v_translation_of_id;
29         END IF;
30
31         IF (v_parent_id = 0 OR in_depth > 10) THEN
32             SET fullpath = v_title;
33         ELSE
34             CALL cms_page_fullpath(v_parent_id, in_separator, in_depth + 1, v_parent_title);
35
36             SELECT CONCAT_WS(in_separator, v_parent_title, v_title) INTO fullpath;
37         END IF;
38         
39     END $$
40 DELIMITER ;
41
42
43 DROP FUNCTION IF EXISTS cms_page_fullpath;
44
45 DELIMITER $$
46 CREATE FUNCTION cms_page_fullpath(
47     in_id INT(11),
48     in_separator VARCHAR(64)
49 )  
50 RETURNS TEXT DETERMINISTIC
51     BEGIN
52         
53         DECLARE v_ret TEXT;
54
55         CALL cms_page_fullpath(in_id, in_separator, 0,  v_ret) ;
56
57         RETURN v_ret;
58
59     END $$
60
61 DELIMITER ;
62