Page Menu
Home
In-Portal Phabricator
Search
Configure Global Search
Log In
Files
F1245141
cat_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, 5:18 AM
Size
7 KB
Mime Type
text/x-php
Expires
Sun, Nov 23, 5:18 AM (1 d, 21 h)
Engine
blob
Format
Raw Data
Handle
809774
Attached To
rINP In-Portal
cat_tag_processor.php
View Options
<?php
class
kCatDBTagProcessor
extends
kDBTagProcessor
{
/**
* Permission Helper
*
* @var kPermissionsHelper
*/
var
$PermHelper
=
null
;
function
kCatDBTagProcessor
()
{
parent
::
kDBTagProcessor
();
$this
->
PermHelper
=
$this
->
Application
->
recallObject
(
'PermissionsHelper'
);
}
function
ItemIcon
(
$params
)
{
$object
=&
$this
->
Application
->
recallObject
(
$this
->
getPrefixSpecial
(),
$this
->
Prefix
,
$params
);
$grids
=
$this
->
Application
->
getUnitOption
(
$this
->
Prefix
,
'Grids'
);
$icons
=&
$grids
[
$params
[
'grid'
]
][
'Icons'
];
$status_fields
=
$this
->
Application
->
getUnitOption
(
$this
->
Prefix
,
'StatusField'
);
if
(!
$status_fields
)
return
$icons
[
'default'
];
$value
=
$object
->
GetDBField
(
$status_fields
[
0
]);
// sets base status icon
if
(
$value
==
STATUS_ACTIVE
)
{
if
(
$object
->
GetDBField
(
'IsPop'
)
)
$value
=
'POP'
;
if
(
$object
->
GetDBField
(
'IsHot'
)
)
$value
=
'HOT'
;
if
(
$object
->
GetDBField
(
'IsNew'
)
)
$value
=
'NEW'
;
if
(
$object
->
GetDBField
(
'EditorsPick'
)
)
$value
=
'PICK'
;
}
return
isset
(
$icons
[
$value
])
?
$icons
[
$value
]
:
$icons
[
'default'
];
}
/**
* Allows to create valid mod-rewrite compatible link to module item
*
* @param Array $params
* @param string $id_prefix
* @return string
*/
function
ItemLink
(
$params
,
$id_prefix
)
{
$params
=
array_merge
(
$params
,
Array
(
'pass'
=>
'm,'
.
$this
->
Prefix
)
);
$item_id
=
isset
(
$params
[
$id_prefix
.
'_id'
])
&&
$params
[
$id_prefix
.
'_id'
];
if
(!
$item_id
)
{
$item_id
=
$this
->
Application
->
GetVar
(
$this
->
getPrefixSpecial
().
'_id'
);
if
(!
$item_id
)
{
$item_id
=
$this
->
Application
->
GetVar
(
$this
->
Prefix
.
'_id'
);
}
}
$params
[
$this
->
Prefix
.
'_id'
]
=
$item_id
;
$object
=&
$this
->
getObject
(
$params
);
$params
[
'm_cat_id'
]
=
$object
->
GetDBField
(
'CategoryId'
);
$params
[
'pass_category'
]
=
1
;
return
$this
->
Application
->
ProcessParsedTag
(
'm'
,
't'
,
$params
);
}
function
CategoryPath
(
$params
)
{
if
(!
isset
(
$params
[
'cat_id'
]))
{
$params
[
'cat_id'
]
=
$this
->
Application
->
RecallVar
(
$params
[
'session_var'
],
0
);
}
return
$this
->
Application
->
ProcessParsedTag
(
'c'
,
'CategoryPath'
,
$params
);
}
function
BuildListSpecial
(
$params
)
{
if
(
$this
->
Special
!=
''
)
return
$this
->
Special
;
if
(
isset
(
$params
[
'parent_cat_id'
])
)
{
$parent_cat_id
=
$params
[
'parent_cat_id'
];
}
else
{
$parent_cat_id
=
$this
->
Application
->
GetVar
(
'c_id'
);
if
(!
$parent_cat_id
)
{
$parent_cat_id
=
$this
->
Application
->
GetVar
(
'm_cat_id'
);
}
}
$recursive
=
isset
(
$params
[
'recursive'
]);
$types
=
$this
->
SelectParam
(
$params
,
'types'
);
$except
=
$this
->
SelectParam
(
$params
,
'except'
);
if
(
$types
.
$except
.
$recursive
==
''
)
{
return
parent
::
BuildListSpecial
(
$params
);
}
$special
=
crc32
(
$parent_cat_id
.
$types
.
$except
.
$recursive
);
return
$special
;
}
function
ExportStatus
(
$params
)
{
$export_object
=&
$this
->
Application
->
recallObject
(
'CatItemExportHelper'
);
$event
=
new
kEvent
(
$this
->
getPrefixSpecial
().
':OnDummy'
);
$action_method
=
'perform'
.
ucfirst
(
$this
->
Special
);
$field_values
=
$export_object
->
$action_method
(
$event
);
// finish code is done from JS now
if
(
$field_values
[
'start_from'
]
==
$field_values
[
'total_records'
])
{
if
(
$this
->
Special
==
'import'
)
{
$this
->
Application
->
StoreVar
(
'PermCache_UpdateRequired'
,
1
);
$this
->
Application
->
Redirect
(
'categories/cache_updater'
,
Array
(
'm_opener'
=>
'r'
,
'pass'
=>
'm'
,
'continue'
=>
1
,
'no_amp'
=>
1
));
}
elseif
(
$this
->
Special
==
'export'
)
{
$template
=
$this
->
Application
->
getUnitOption
(
$this
->
Prefix
,
'ModuleFolder'
).
'/'
.
$this
->
Special
.
'_finish'
;
$this
->
Application
->
Redirect
(
$template
,
Array
(
'pass'
=>
'all'
));
}
}
$export_options
=
$export_object
->
loadOptions
(
$event
);
return
$export_options
[
'start_from'
]
*
100
/
$export_options
[
'total_records'
];
}
function
CatalogItemCount
(
$params
)
{
$object
=&
$this
->
GetList
(
$params
);
if
(!
$object
->
Counted
)
{
$object
->
CountRecs
();
}
return
$object
->
NoFilterCount
!=
$object
->
RecordsCount
?
$object
->
RecordsCount
.
' / '
.
$object
->
NoFilterCount
:
$object
->
RecordsCount
;
}
function
ListReviews
(
$params
)
{
$prefix
=
$this
->
Prefix
.
'-rev'
;
$review_tag_processor
=&
$this
->
Application
->
recallObject
(
$prefix
.
'.item_TagProcessor'
);
return
$review_tag_processor
->
PrintList
(
$params
);
}
function
ReviewCount
(
$params
)
{
$review_tag_processor
=&
$this
->
Application
->
recallObject
(
'rev.item_TagProcessor'
);
return
$review_tag_processor
->
TotalRecords
(
$params
);
}
function
InitCatalogTab
(
$params
)
{
$tab_params
[
'mode'
]
=
$this
->
Application
->
GetVar
(
'tm'
);
// single/multi selection possible
$tab_params
[
'special'
]
=
$this
->
Application
->
GetVar
(
'ts'
);
// use special for this tab
$tab_params
[
'dependant'
]
=
$this
->
Application
->
GetVar
(
'td'
);
// is grid dependant on categories grid
// set default params (same as in catalog)
if
(
$tab_params
[
'mode'
]
===
false
)
$tab_params
[
'mode'
]
=
'multi'
;
if
(
$tab_params
[
'special'
]
===
false
)
$tab_params
[
'special'
]
=
''
;
if
(
$tab_params
[
'dependant'
]
===
false
)
$tab_params
[
'dependant'
]
=
'yes'
;
// pass params to block with tab content
$params
[
'name'
]
=
$params
[
'render_as'
];
$params
[
'prefix'
]
=
trim
(
$this
->
Prefix
.
'.'
.(
$tab_params
[
'special'
]
?
$tab_params
[
'special'
]
:
$this
->
Special
),
'.'
);
$params
[
'cat_prefix'
]
=
trim
(
'c.'
.(
$tab_params
[
'special'
]
?
$tab_params
[
'special'
]
:
$this
->
Special
),
'.'
);
$params
[
'tab_mode'
]
=
$tab_params
[
'mode'
];
$params
[
'tab_dependant'
]
=
$tab_params
[
'dependant'
];
$params
[
'show_category'
]
=
$tab_params
[
'special'
]
==
'showall'
?
1
:
0
;
// this is advanced view -> show category name
return
$this
->
Application
->
ParseBlock
(
$params
,
1
);
}
/**
* Show CachedNavbar of current item primary category
*
* @param Array $params
* @return string
*/
function
CategoryName
(
$params
)
{
// show category cachednavbar of
$object
=&
$this
->
getObject
(
$params
);
$category_id
=
isset
(
$params
[
'cat_id'
])
?
$params
[
'cat_id'
]
:
$object
->
GetDBField
(
'CategoryId'
);
$category_path
=
$this
->
Application
->
getCache
(
'category_paths'
,
$category_id
);
if
(
$category_path
===
false
)
{
// not chached
if
(
$category_id
>
0
)
{
$category_path
=
trim
(
$this
->
CategoryName
(
Array
(
'cat_id'
=>
0
)
).
' > '
.
str_replace
(
'&|&'
,
' > '
,
$object
->
GetDBField
(
'CachedNavbar'
)),
' > '
);
}
else
{
$category_path
=
$this
->
Application
->
Phrase
(
$this
->
Application
->
ConfigValue
(
'Root_Name'
)
);
}
$this
->
Application
->
setCache
(
'category_paths'
,
$category_id
,
$category_path
);
}
return
$category_path
;
}
/**
* Allows to determine if original value should be shown
*
* @param Array $params
* @return bool
*/
function
DisplayOriginal
(
$params
)
{
// original id found & greather then zero + show original
$display_original
=
isset
(
$params
[
'display_original'
])
&&
$params
[
'display_original'
];
$object
=&
$this
->
getObject
(
$params
);
$perm_value
=
$this
->
PermHelper
->
ModifyCheckPermission
(
$object
->
GetDBField
(
'CreatedById'
),
$object
->
GetDBField
(
'CategoryId'
),
$this
->
Prefix
);
return
$display_original
&&
(
$perm_value
==
1
)
&&
$this
->
Application
->
GetVar
(
$this
->
Prefix
.
'.original_id'
);
}
}
?>
Event Timeline
Log In to Comment