Page Menu
Home
In-Portal Phabricator
Search
Configure Global Search
Log In
Files
F1245597
categories_tag_processor.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Fri, Nov 21, 7:29 AM
Size
7 KB
Mime Type
text/x-php
Expires
Sun, Nov 23, 7:29 AM (1 d, 18 h)
Engine
blob
Format
Raw Data
Handle
809898
Attached To
rINP In-Portal
categories_tag_processor.php
View Options
<?php
class
CategoriesTagProcessor
extends
kDBTagProcessor
{
function
&
GetList
(
$params
)
{
$special
=
$this
->
BuildListSpecial
(
$params
);
$prefix_special
=
$this
->
Prefix
.
'.'
.
$special
;
$this
->
Special
=
$special
;
$params
[
'skip_counting'
]
=
true
;
$list
=&
$this
->
Application
->
recallObject
(
$prefix_special
,
$this
->
Prefix
.
'_List'
,
$params
);
// $list->clearFilters();
// $list->addFilter('parent_filter', 'ParentId = '.$parent_cat_id, WHERE_FILTER, FLT_SYSTEM);
//unset($params['skip_counting']);
$this
->
Application
->
HandleEvent
(
$event
,
$prefix_special
.
':SetPagination'
,
$params
);
$list
->
Query
();
return
$list
;
}
function
SubCatCount
(
$params
)
{
$cat_object
=&
$this
->
Application
->
recallObject
(
$this
->
getPrefixSpecial
(),
$this
->
Prefix
,
$params
);
$sql
=
' SELECT COUNT(*) - 1
FROM '
.
$cat_object
->
TableName
.
'
WHERE ParentPath LIKE "'
.
$cat_object
->
GetDBField
(
'ParentPath'
).
'%"'
;
return
$this
->
Conn
->
GetOne
(
$sql
);
}
function
IsNew
(
$params
)
{
$object
=&
$this
->
Application
->
recallObject
(
$this
->
getPrefixSpecial
(),
$this
->
Prefix
,
$params
);
$ret
=
$object
->
GetDBField
(
'IsNew'
)
?
1
:
0
;
return
$ret
;
}
function
IsPick
(
$params
)
{
$object
=&
$this
->
Application
->
recallObject
(
$this
->
getPrefixSpecial
(),
$this
->
Prefix
,
$params
);
$ret
=
$object
->
GetDBField
(
'EditorsPick'
)
?
1
:
0
;
return
$ret
;
}
function
ItemIcon
(
$params
)
{
$object
=&
$this
->
Application
->
recallObject
(
$this
->
getPrefixSpecial
(),
$this
->
Prefix
,
$params
);
$status
=
$object
->
GetDBField
(
'Status'
);
if
(
$status
==
1
)
{
$ret
=
$object
->
GetDBField
(
'IsNew'
)
?
'icon16_cat_new.gif'
:
'icon16_cat.gif'
;
}
else
{
$ret
=
$status
?
'icon16_cat_pending.gif'
:
'icon16_cat_disabled.gif'
;
}
return
$ret
;
}
function
ItemCount
(
$params
)
{
$cat_object
=&
$this
->
Application
->
recallObject
(
$this
->
getPrefixSpecial
(),
$this
->
Prefix
,
$params
);
$ci_table
=
$this
->
Application
->
getUnitOption
(
'ci'
,
'TableName'
);
$sql
=
' SELECT COUNT(*)
FROM '
.
$cat_object
->
TableName
.
' c
LEFT JOIN '
.
$ci_table
.
' ci
ON c.CategoryId=ci.CategoryId
WHERE c.ParentPath LIKE "'
.
$cat_object
->
GetDBField
(
'ParentPath'
).
'%"
AND NOT (ci.CategoryId IS NULL)'
;
return
$this
->
Conn
->
GetOne
(
$sql
);
}
function
ListCategories
(
$params
)
{
return
$this
->
PrintList2
(
$params
);
}
function
RootCategoryName
(
$params
)
{
$root_phrase
=
$this
->
Application
->
ConfigValue
(
'Root_Name'
);
$ret
=
$this
->
Application
->
Phrase
(
$root_phrase
);
return
$ret
;
}
function
CheckModuleRoot
(
$params
)
{
$module_name
=
getArrayValue
(
$params
,
'module'
)
?
$params
[
'module'
]
:
'In-Commerce'
;
$module
=
$this
->
Application
->
recallObject
(
'mod.'
.
$module_name
);
$module_root_cat
=
$module
->
GetDBField
(
'RootCat'
);
if
(
$this
->
Application
->
GetVar
(
'm_cat_id'
)
==
$module_root_cat
)
{
$home_template
=
getArrayValue
(
$params
,
'home_template'
);
if
(!
$home_template
)
return
;
$this
->
Application
->
Redirect
(
$home_template
,
Array
(
'pass'
=>
'all'
));
};
}
function
CategoryPath
(
$params
)
{
$module_name
=
getArrayValue
(
$params
,
'module'
)
?
$params
[
'module'
]
:
'In-Commerce'
;
$module
=
$this
->
Application
->
recallObject
(
'mod.'
.
$module_name
);
$module_root_cat
=
$module
->
GetDBField
(
'RootCat'
);
$block_params
[
'current'
]
=
0
;
$block_params
[
'separator'
]
=
$params
[
'separator'
];
if
(!
isset
(
$params
[
'cat_id'
]))
{
$params
[
'cat_id'
]
=
getArrayValue
(
$params
,
'cat_id'
)
?
$params
[
'cat_id'
]
:
$this
->
Application
->
GetVar
(
'm_cat_id'
);
$block_params
[
'current'
]
=
1
;
}
$product_id
=
$this
->
Application
->
GetVar
(
'p_id'
);
if
(
$product_id
)
{
$block_params
[
'current'
]
=
0
;
}
$block_params
[
'is_module_root'
]
=
(
$params
[
'cat_id'
]
==
$module_root_cat
)
?
1
:
0
;
if
(
$params
[
'cat_id'
]
==
0
)
{
$block_params
[
'name'
]
=
$this
->
SelectParam
(
$params
,
'root_cat_render_as,block_root_cat,rootcatblock'
);
return
$this
->
Application
->
ParseBlock
(
$block_params
);
}
else
{
$block_params
[
'name'
]
=
$this
->
SelectParam
(
$params
,
'render_as,block'
);
$cat_object
=
&
$this
->
Application
->
recallObject
(
$this
->
getPrefixSpecial
(),
$this
->
Prefix
.
'_List'
);
$sql
=
'SELECT CategoryId, ParentId, Name FROM '
.
$cat_object
->
TableName
.
' WHERE CategoryId='
.
$params
[
'cat_id'
];
$res
=
$this
->
Conn
->
GetRow
(
$sql
);
$block_params
[
'cat_name'
]
=
$res
[
'Name'
];
$block_params
[
'cat_id'
]
=
$res
[
'CategoryId'
];
$parent_params
=
$params
;
$parent_params
[
'cat_id'
]
=
$res
[
'ParentId'
];
// which block to parse as current ?
if
(
$block_params
[
'is_module_root'
]
==
1
)
{
// module root
$block_params
[
'name'
]
=
$this
->
SelectParam
(
$params
,
'module_root_render_as,block_module_root,rootmoduleblock'
);
}
if
(
$block_params
[
'current'
]
==
1
)
{
// current cat (label)
$block_params
[
'name'
]
=
$this
->
SelectParam
(
$params
,
'current_render_as,block_current,currentblock'
);
}
$this
->
Application
->
SetVar
(
$this
->
Prefix
.
'_id'
,
$res
[
'CategoryId'
]);
$current_cat
=
$this
->
Application
->
ParseBlock
(
$block_params
,
1
);
$this
->
Application
->
SetVar
(
$this
->
Prefix
.
'_id'
,
$res
[
'ParentId'
]);
$parent_cat
=
$this
->
CategoryPath
(
$parent_params
);
return
$parent_cat
.
$current_cat
;
}
}
function
CurrentCategoryName
(
$params
){
$cat_object
=
&
$this
->
Application
->
recallObject
(
$this
->
getPrefixSpecial
(),
$this
->
Prefix
.
'_List'
);
$cat_id
=
$this
->
Application
->
GetVar
(
"m_cat_id"
);
$sql
=
'SELECT Name FROM '
.
$cat_object
->
TableName
.
' WHERE CategoryId='
.
$cat_id
;
return
$this
->
Conn
->
GetOne
(
$sql
);
}
function
InitMainPrefix
(
$params
)
{
if
(
$main_prefix
=
$this
->
Application
->
GetVar
(
'main_prefix'
))
{
$this
->
Application
->
StoreVar
(
'selector_main_prefix'
,
$main_prefix
);
}
}
function
CategoryLink
(
$params
)
{
// 'p_id'=>'0', ??
$params
=
array_merge
(
array
(
'pass'
=>
'm'
),
$params
);
$cat_id
=
getArrayValue
(
$params
,
'cat_id'
);
if
(!
$cat_id
)
{
// $cat_id = $this->Application->Parser->GetParam('cat_id');
$cat_id
=
$this
->
Application
->
GetVar
(
$this
->
Prefix
.
'_id'
);
}
if
(
$cat_id
==
'Root'
)
{
$object
=&
$this
->
Application
->
recallObject
(
'mod.'
.
$params
[
'module'
]);
$params
[
'm_cat_id'
]
=
$object
->
GetDBField
(
'RootCat'
);
unset
(
$params
[
'module'
]);
}
else
{
$params
[
'm_cat_id'
]
=
$cat_id
;
}
unset
(
$params
[
'cat_id'
]);
$main_processor
=&
$this
->
Application
->
recallObject
(
'm_TagProcessor'
);
return
$main_processor
->
T
(
$params
);
}
function
CategoryList
(
$params
)
{
$object
=&
$this
->
Application
->
recallObject
(
$this
->
getPrefixSpecial
()
,
$this
->
Prefix
.
'_List'
,
$params
);
if
(
$object
->
RecordsCount
==
0
)
{
if
(
isset
(
$params
[
'block_no_cats'
]))
{
$params
[
'name'
]
=
$params
[
'block_no_cats'
];
return
$this
->
Application
->
ParseBlock
(
$params
);
}
else
{
return
''
;
}
}
if
(
isset
(
$params
[
'block'
]))
{
return
$this
->
PrintList
(
$params
);
}
else
{
$params
[
'block'
]
=
$params
[
'block_main'
];
$params
[
'row_start_block'
]
=
$params
[
'block_row_start'
];
$params
[
'row_end_block'
]
=
$params
[
'block_row_end'
];
return
$this
->
PrintList2
(
$params
);
}
}
function
Meta
(
$params
)
{
$name
=
getArrayValue
(
$params
,
'name'
);
$object
=&
$this
->
Application
->
recallObject
(
$this
->
Prefix
.
'.-item'
);
$field
=
$object
->
GetField
(
'Meta'
.
$name
);
if
(
$field
)
return
$field
;
switch
(
$name
)
{
case
'Description'
:
$conf
=
'Category_MetaDesc'
;
break
;
case
'Keywords'
:
$conf
=
'Category_MetaKey'
;
break
;
}
return
$this
->
Application
->
ConfigValue
(
$conf
);
}
function
BuildListSpecial
(
$params
)
{
if
(
isset
(
$params
[
'parent_cat_id'
])
)
{
$parent_cat_id
=
$params
[
'parent_cat_id'
];
}
else
{
$parent_cat_id
=
$this
->
Application
->
GetVar
(
$this
->
Prefix
.
'_id'
);
if
(!
$parent_cat_id
)
{
$parent_cat_id
=
$this
->
Application
->
GetVar
(
'm_cat_id'
);
}
if
(!
$parent_cat_id
)
{
$parent_cat_id
=
0
;
}
}
$types
=
$this
->
SelectParam
(
$params
,
'types'
);
$except
=
$this
->
SelectParam
(
$params
,
'except'
);
if
(
$types
.
$except
.
$parent_cat_id
==
''
)
{
return
parent
::
BuildListSpecial
(
$params
);
}
$special
=
crc32
(
$types
.
$except
.
$parent_cat_id
);
return
$special
;
}
}
?>
Event Timeline
Log In to Comment