1
0
mirror of https://github.com/e107inc/e107.git synced 2025-10-12 13:34:39 +02:00
Files
php-e107/e107_plugins/content/handlers/content_class.php
2009-11-18 01:06:08 +00:00

1551 lines
74 KiB
PHP

<?php
/*
* e107 website system
*
* Copyright (C) 2008-2009 e107 Inc (e107.org)
* Released under the terms and conditions of the
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
*
*
*
* $Source: /cvs_backup/e107_0.8/e107_plugins/content/handlers/content_class.php,v $
* $Revision: 1.25 $
* $Date: 2009-11-18 01:05:28 $
* $Author: e107coders $
*/
if (!defined('e107_INIT')) { exit; }
global $plugindir, $plugintable, $datequery;
$plugindir = e_PLUGIN."content/";
$plugintable = "pcontent";
$datequery = " AND content_datestamp < ".time()." AND (content_enddate=0 || content_enddate>".time().") ";
require_once($plugindir."handlers/content_defines.php");
if(!is_object($sql)){ $sql = new db; }
class content{
function ContentDefaultPrefs(){
global $tp;
//ADMIN CREATE FORM
$cp['content_admin_subheading'] = '1'; //should subheading be available
$cp['content_admin_summary'] = '1'; //should summary be available
$cp['content_admin_startdate'] = '1'; //should start date be available
$cp['content_admin_enddate'] = '1'; //should end date be available
$cp['content_admin_icon'] = ''; //should icon be available to add when creating an item
$cp['content_admin_attach'] = ''; //should file be available to add when creating an item
$cp['content_admin_images'] = ''; //should image be available to add when creating an item
$cp['content_admin_comment'] = '1'; //should comment be available to add when creating an item
$cp['content_admin_rating'] = '1'; //should rating be available to add when creating an item
$cp['content_admin_score'] = '1'; //should score be available to add when creating an item
$cp['content_admin_pe'] = '1'; //should printemailicons be available to add when creating an item
$cp['content_admin_visibility'] = '1'; //should visibility be available to add when creating an item
$cp['content_admin_meta'] = ''; //should metatags be available to add when creating an item
$cp['content_admin_custom_number'] = ''; //how many customtags should be available to add when creating an item
$cp['content_admin_images_number'] = '2'; //how many images should be available to add when creating an item
$cp['content_admin_files_number'] = '1'; //how many files should be available to add when creating an item
$cp['content_admin_layout'] = ''; //should the option for choosing a layout template be shown
$cp['content_admin_customtags'] = ''; //should options for adding additional data be shown
$cp['content_admin_presettags'] = ''; //should preset data tags be shown
$cp['content_admin_loadicons'] = 0; //load all icons, or only the 'tmp' icons, when assigning an icon
$cp['content_admin_loadattach'] = 0; //load all attachments, or only the 'tmp' attachments, when assigning an attachment
//ADMIN CREATE CATEGORY FORM
$cp['content_admincat_subheading'] = '1'; //should subheading be available
$cp['content_admincat_startdate'] = '1'; //should startdate be available
$cp['content_admincat_enddate'] = '1'; //should enddate be available
$cp['content_admincat_uploadicon'] = '1'; //should uploadicon be available
$cp['content_admincat_selecticon'] = '1'; //should selecticon be available
$cp['content_admincat_comment'] = '1'; //should comment be available
$cp['content_admincat_rating'] = '1'; //should rating be available
$cp['content_admincat_pe'] = '1'; //should print email icons be available
$cp['content_admincat_visibility'] = '1'; //should visibility be available
//PATH THEME CSS
$cp['content_cat_icon_path_large'] = '{e_PLUGIN}content/images/cat/48/'; //default path to large categry icons
$cp['content_cat_icon_path_small'] = '{e_PLUGIN}content/images/cat/16/'; //default path to small category icons
$cp['content_icon_path'] = '{e_PLUGIN}content/images/icon/'; //default path to item icons
$cp['content_icon_path_tmp'] = '{e_PLUGIN}content/images/icon/tmp/'; //default tmp path to item icons
$cp['content_image_path'] = '{e_PLUGIN}content/images/image/'; //default path to item images
$cp['content_image_path_tmp'] = '{e_PLUGIN}content/images/image/tmp/'; //default tmp path to item images
$cp['content_file_path'] = '{e_PLUGIN}content/images/file/'; //default path to item file attachments
$cp['content_file_path_tmp'] = '{e_PLUGIN}content/images/file/tmp/'; //default tmp path to item file attachments
$cp['content_theme'] = '{e_PLUGIN}content/templates/default/'; //choose theme for main parent
$cp['content_layout'] = 'content_content_template.php'; //choose default layout scheme
//GENERAL
$cp['content_log'] = ''; //activate log
$cp['content_blank_icon'] = ''; //use blank icon if no icon present
$cp['content_blank_caticon'] = ''; //use blank caticon if no caticon present
$cp['content_breadcrumb_catall'] = ''; //show breadcrumb on all categories page
$cp['content_breadcrumb_cat'] = ''; //show breadcrumb on single category page
$cp['content_breadcrumb_authorall'] = ''; //show breadcrumb on all author page
$cp['content_breadcrumb_author'] = ''; //show breadcrumb on single author page
$cp['content_breadcrumb_recent'] = ''; //show breadcrumb on recent page
$cp['content_breadcrumb_item'] = ''; //show breadcrumb on content item page
$cp['content_breadcrumb_top'] = ''; //show breadcrumb on top rated page
$cp['content_breadcrumb_archive'] = ''; //show breadcrumb on archive page
$cp['content_breadcrumb_seperator'] = '>'; //seperator character between breadcrumb
$cp['content_breadcrumb_rendertype'] = '2'; //how to render the breadcrumb
$cp['content_navigator_catall'] = ''; //show navigator on all categories page
$cp['content_navigator_cat'] = ''; //show navigator on single category page
$cp['content_navigator_authorall'] = ''; //show navigator on all author page
$cp['content_navigator_author'] = ''; //show navigator on single author page
$cp['content_navigator_recent'] = ''; //show navigator on recent page
$cp['content_navigator_item'] = ''; //show navigator on content item page
$cp['content_navigator_top'] = ''; //show navigator on top rated page
$cp['content_navigator_archive'] = ''; //show navigator on archive page
$cp['content_search_catall'] = ''; //show search keyword on all categories page
$cp['content_search_cat'] = ''; //show search keyword on single category page
$cp['content_search_authorall'] = ''; //show search keyword on all author page
$cp['content_search_author'] = ''; //show search keyword on single author page
$cp['content_search_recent'] = ''; //show search keyword on recent page
$cp['content_search_item'] = ''; //show search keyword on content item page
$cp['content_search_top'] = ''; //show search keyword on top rated page
$cp['content_search_archive'] = ''; //show search keyword on archive page
$cp['content_ordering_catall'] = ''; //show ordering on all categories page
$cp['content_ordering_cat'] = ''; //show ordering on single category page
$cp['content_ordering_authorall'] = ''; //show ordering on all author page
$cp['content_ordering_author'] = ''; //show ordering on single author page
$cp['content_ordering_recent'] = ''; //show ordering on recent page
$cp['content_ordering_item'] = ''; //show ordering on content item page
$cp['content_ordering_top'] = ''; //show ordering on top rated page
$cp['content_ordering_archive'] = ''; //show ordering on archive page
$cp['content_searchmenu_rendertype'] = '1'; //rendertype for searchmenu (1=echo, 2=in separate menu)
$cp['content_nextprev'] = '1'; //use nextprev buttons
$cp['content_nextprev_number'] = '10'; //how many items on a page
$cp['content_defaultorder'] = 'orderddate'; //default sort and order method
//upload icon/image size handling
$cp['content_upload_image_size'] = '500'; //resize size of uploaded image
$cp['content_upload_image_size_thumb'] = '100'; //resize size of created thumb on uploaded image
$cp['content_upload_icon_size'] = '100'; //resize size of uploaded icon
//CONTENT ITEM PREVIEW
$cp['content_list_icon'] = '1'; //show icon
$cp['content_list_subheading'] = '1'; //show subheading
$cp['content_list_summary'] = '1'; //show summary
$cp['content_list_text'] = ''; //show (part of) text
$cp['content_list_date'] = ''; //show date
$cp['content_list_authorname'] = ''; //show authorname
$cp['content_list_authorprofile'] = ''; //show link to author profile
$cp['content_list_authoremail'] = ''; //show authoremail
$cp['content_list_authoricon'] = ''; //show link to author list
$cp['content_list_rating'] = '1'; //show rating system
$cp['content_list_peicon'] = '1'; //show printemailicons
$cp['content_list_parent'] = ''; //show parent cat
$cp['content_list_refer'] = ''; //show refer count
$cp['content_list_subheading_char'] = '100'; //how many subheading characters
$cp['content_list_subheading_post'] = '[...]'; //use a postfix for too long subheadings
$cp['content_list_summary_char'] = '100'; //how many summary characters
$cp['content_list_summary_post'] = '[...]'; //use a postfix for too long summary
$cp['content_list_text_char'] = '60'; //how many text words
$cp['content_list_text_post'] = CONTENT_LAN_16; //use a postfix for too long text
$cp['content_list_text_link'] = '1'; //show link to content item on postfix
$cp['content_list_authoremail_nonmember'] = ''; //show email non member author
$cp['content_list_peicon_all'] = ''; //override printemail icons
$cp['content_list_rating_all'] = ''; //override rating system
$cp['content_list_editicon'] = ''; //show link to admin edit item
$cp['content_list_datestyle'] = '%d %b %Y'; //choose datestyle for given date
$cp['content_list_caption'] = CONTENT_LAN_23; //caption for recent list
$cp['content_list_caption_append_name'] = '1'; //append category heading to caption
//CATEGORY PAGES
//sections of content category in 'view all categories page'
$cp['content_catall_icon'] = '1'; //show icon
$cp['content_catall_subheading'] = '1'; //show subheading
$cp['content_catall_text'] = ''; //show text
$cp['content_catall_date'] = ''; //show date
$cp['content_catall_rating'] = '1'; //show rating
$cp['content_catall_authorname'] = ''; //show author name
$cp['content_catall_authoremail'] = ''; //show author email
$cp['content_catall_authorprofile'] = ''; //show link to author profile
$cp['content_catall_authoricon'] = ''; //show link to author list
$cp['content_catall_peicon'] = '1'; //show pe icons
$cp['content_catall_comment'] = '1'; //show amount of comments
$cp['content_catall_amount'] = ''; //show amount of items
$cp['content_catall_text_char'] = '65'; //define amount of words of text to display
$cp['content_catall_text_post'] = CONTENT_LAN_16; //define postfix is text is too long
$cp['content_catall_text_link'] = '1'; //define if link to category should be added on postfix
$cp['content_catall_caption'] = CONTENT_LAN_25; //caption for all categories page
$cp['content_catall_defaultorder'] = 'orderaheading'; //default order for categories on the all categories page
//sections of content category in 'view category' page
$cp['content_cat_icon'] = '1'; //show icon
$cp['content_cat_subheading'] = '1'; //show subheading
$cp['content_cat_text'] = ''; //show text
$cp['content_cat_date'] = ''; //show date
$cp['content_cat_authorname'] = ''; //show author name
$cp['content_cat_authoremail'] = ''; //show author email
$cp['content_cat_authorprofile'] = ''; //show link to author profile
$cp['content_cat_authoricon'] = ''; //show link to author list
$cp['content_cat_rating'] = '1'; //show rating
$cp['content_cat_peicon'] = '1'; //show pe icons
$cp['content_cat_comment'] = '1'; //show amount of comments
$cp['content_cat_amount'] = '1'; //show amount of items
$cp['content_cat_caption'] = CONTENT_LAN_26; //caption for single category page
$cp['content_cat_caption_append_name'] = '1'; //append category heading to caption
$cp['content_cat_sub_caption'] = CONTENT_LAN_28; //caption for subcategories
$cp['content_cat_item_caption'] = CONTENT_LAN_31; //caption for items in category
$cp['content_cat_defaultorder'] = 'orderaheading'; //default order for the subcategories on the single category page
//sections of subcategories in 'view category page'
$cp['content_catsub_icon'] = '1'; //show icon
$cp['content_catsub_subheading'] = '1'; //show subheading
$cp['content_catsub_amount'] = '1'; //show amount of items
$cp['content_cat_showparent'] = '1'; //show parent item in category page
$cp['content_cat_showparentsub'] = '1'; //show subcategories in category page
$cp['content_cat_listtype'] = ''; //also show items from subategories
$cp['content_cat_menuorder'] = '1'; //order of parent and child items
$cp['content_cat_rendertype'] = '2'; //render method of the menus
$cp['content_cat_text_char'] = '65'; //define amount of words of text to display
$cp['content_cat_text_post'] = CONTENT_LAN_16; //define postfix is text is too long
$cp['content_cat_text_link'] = '1'; //define if link to category should be added on postfix
$cp['content_cat_authoremail_nonmember'] = ''; //define if the email of a non-member will be displayed
$cp['content_cat_peicon_all'] = ''; //override printemail icons
$cp['content_cat_rating_all'] = ''; //override rating system
//CONTENT PAGE
$cp['content_content_icon'] = ''; //show icon
$cp['content_content_subheading'] = '1'; //show subheading
$cp['content_content_summary'] = '1'; //show summary
$cp['content_content_date'] = '1'; //show date
$cp['content_content_authorname'] = '1'; //show authorname
$cp['content_content_authorprofile'] = ''; //show link to author profile
$cp['content_content_authoremail'] = ''; //show suthoremail
$cp['content_content_authoricon'] = ''; //show link to author list
$cp['content_content_parent'] = ''; //show parent category
$cp['content_content_rating'] = '1'; //show rating system
$cp['content_content_peicon'] = '1'; //show printemailicons
$cp['content_content_refer'] = ''; //show refer count
$cp['content_content_comment'] = '1'; //show amount of comments
$cp['content_content_authoremail_nonmember'] = ''; //show email non member
$cp['content_content_peicon_all'] = ''; //override printemail icons
$cp['content_content_rating_all'] = ''; //override rating system
$cp['content_content_comment_all'] = ''; //override comment system
$cp['content_content_editicon'] = ''; //show link in content page to admin edit item
$cp['content_content_customtags'] = ''; //should additional data be shown
$cp['content_content_presettags'] = ''; //should preset data tags be shown
$cp['content_content_attach'] = ''; //show attachments
$cp['content_content_images'] = ''; //show images
$cp['content_content_pagenames_rendertype'] = ''; //rendertype for articleindex on multipage content items
$cp['content_content_multipage_preset'] = ''; //render custom/preset in multipage item first/last page
$cp['content_content_pagenames_nextprev_prevhead'] = '< {PAGETITLE}'; //link to next page in multipage item
$cp['content_content_pagenames_nextprev_nexthead'] = '{PAGETITLE} >'; //link to prev page in multipage item
//AUTHOR PAGE
$cp['content_author_lastitem'] = ''; //show last item reference
$cp['content_author_amount'] = '1'; //show amount of items from this author
$cp['content_author_nextprev'] = '1'; //use next prev buttons
$cp['content_author_nextprev_number'] = '20'; //amount of items per page
$cp['content_author_index_caption'] = CONTENT_LAN_32; //caption for author index page
$cp['content_author_caption'] = CONTENT_LAN_32; //caption for single author page
$cp['content_author_caption_append_name'] = '1'; //append author name to caption
//ARCHIVE PAGE
$cp['content_archive_nextprev'] = '1'; //archive : choose to show next/prev links
$cp['content_archive_nextprev_number'] = '30'; //archive : choose amount to use in next/prev
$cp['content_archive_letterindex'] = '1'; //archive : letter index
$cp['content_archive_datestyle'] = '%d %b %Y'; //archive : choose datestyle for given date
$cp['content_archive_date'] = '1'; //archive : section: show date
$cp['content_archive_authorname'] = ''; //archive : section: show authorname
$cp['content_archive_authorprofile'] = ''; //archive : section: show link to author profile
$cp['content_archive_authoricon'] = ''; //archive : section: show link to author list
$cp['content_archive_authoremail'] = ''; //archive : section: show author email
$cp['content_archive_authoremail_nonmember'] = ''; //archive : show link to email of non-member author
$cp['content_archive_caption'] = CONTENT_LAN_84; //caption for archive page
$cp['content_archive_defaultorder'] = 'orderaheading'; //default order for content items on the archive page
//TOP RATED PAGE
$cp['content_top_icon'] = ''; //top : section: show icon
$cp['content_top_authorname'] = ''; //top : section: show authorname
$cp['content_top_authorprofile'] = ''; //top : section: show link to author profile
$cp['content_top_authoricon'] = ''; //top : section: show link to author list
$cp['content_top_authoremail'] = ''; //top : section: show author email
$cp['content_top_authoremail_nonmember'] = ''; //top : show link to email of non-member author
$cp['content_top_icon_width'] = ''; //use this size for icon
$cp['content_top_caption'] = CONTENT_LAN_38; //caption for top rated page
$cp['content_top_caption_append_name'] = '1'; //append category heading to caption
//TOP SCORE PAGE
$cp['content_score_icon'] = ''; //score : section: show icon
$cp['content_score_authorname'] = ''; //score : section: show authorname
$cp['content_score_authorprofile'] = ''; //score : section: show link to author profile
$cp['content_score_authoricon'] = ''; //score : section: show link to author list
$cp['content_score_authoremail'] = ''; //score : section: show author email
$cp['content_score_authoremail_nonmember'] = ''; //score : show link to email of non-member author
$cp['content_score_icon_width'] = ''; //use this size for icon
$cp['content_score_caption'] = CONTENT_LAN_87; //caption for top score page
$cp['content_score_caption_append_name'] = '1'; //append category heading to caption
//MENU OPTIONS
$cp['content_menu_caption'] = CONTENT_MENU_LAN_0; //caption of menu
$cp['content_menu_search'] = ''; //show search keyword
$cp['content_menu_sort'] = ''; //show sorting methods
$cp['content_menu_visibilitycheck'] = ''; //show menu only on content pages of this top level category?
$cp['content_menu_links'] = '1'; //show content links
$cp['content_menu_links_dropdown'] = ''; //rendertype of content links (in dropdown or as normal links)
$cp['content_menu_links_icon'] = ''; //define icon for content links (only with normallinks)
$cp['content_menu_links_caption'] = CONTENT_MENU_LAN_4; //define caption for link list (only is normallinks is selected)
$cp['content_menu_viewallcat'] = '1'; //menu: view link to all categories
$cp['content_menu_viewallauthor'] = '1'; //menu: view link to all authors
$cp['content_menu_viewallitems'] = '1'; //menu: view link to all items (archive)
$cp['content_menu_viewtoprated'] = ''; //menu: view link to top rated items
$cp['content_menu_viewtopscore'] = ''; //menu: view link to top score items
$cp['content_menu_viewrecent'] = '1'; //menu: view link to recent items
$cp['content_menu_viewsubmit'] = '1'; //view link to submit content item (only if it is allowed)
$cp['content_menu_viewicon'] = ''; //choose icon to display for links
$cp['content_menu_cat'] = '1'; //view categories
$cp['content_menu_cat_main'] = '1'; //show main parent in the category list
$cp['content_menu_cat_number'] = '1'; //show number of items in category
$cp['content_menu_cat_icon'] = ''; //choose icon to display for categories
$cp['content_menu_cat_icon_default'] = ''; //choose default icon is no icon present (only if category_icon is selected)
$cp['content_menu_cat_caption'] = CONTENT_MENU_LAN_3; //define caption for category list
$cp['content_menu_cat_dropdown'] = ''; //rendertype of categories (in dropdown or as normal links)
$cp['content_menu_recent'] = '1'; //view recent list
$cp['content_menu_recent_caption'] = CONTENT_MENU_LAN_2; //caption of recent list
$cp['content_menu_recent_number'] = '5'; //number of recent items to show
$cp['content_menu_recent_date'] = ''; //show date in recent list
$cp['content_menu_recent_datestyle'] = '%d %b %Y'; //choose datestyle for given date
$cp['content_menu_recent_author'] = ''; //show author in recent list
$cp['content_menu_recent_subheading'] = ''; //show subheading in recent list
$cp['content_menu_recent_subheading_char'] = '80'; //number of characters of subheading to show
$cp['content_menu_recent_subheading_post'] = '[...]'; //postfix for too long subheadings
$cp['content_menu_recent_icon'] = ''; //choose icon to display for recent items
$cp['content_menu_recent_icon_width'] = '50'; //specify width of icon (only if content_icon is set)
$cp['content_inherit'] = ''; //inherit options from default preferences
//CONTENT MANAGER
$cp['content_manager_submit'] = '255'; //class for managers who can submit items in a category
$cp['content_manager_approve'] = '255'; //class for managers who can approve submitted items
$cp['content_manager_personal'] = '255'; //class for managers who can manage personal items
$cp['content_manager_category'] = '255'; //class for managers who can manage all items in a category
$cp['content_manager_inherit'] = ''; //inherit options from default (manager) preferences
//manager : submit options
$cp['content_manager_submit_directpost'] =''; //should submission be direclty posted as an item, or have them validated by admins
$cp['content_manager_submit_subheading'] = ''; //should subheading be available
$cp['content_manager_submit_summary'] = ''; //should summary be available
$cp['content_manager_submit_startdate'] = ''; //should startdate be available
$cp['content_manager_submit_enddate'] = ''; //should enddate be available
$cp['content_manager_submit_icon'] = ''; //should icon be available to add when submitting an item
$cp['content_manager_submit_attach'] = ''; //should file be available to add when submitting an item
$cp['content_manager_submit_images'] = ''; //should image be available to add when submitting an item
$cp['content_manager_submit_comment'] = ''; //should comment be available to add when submitting an item
$cp['content_manager_submit_rating'] = ''; //should rating be available to add when submitting an item
$cp['content_manager_submit_score'] = ''; //should score be available to add when submitting an item
$cp['content_manager_submit_pe'] = ''; //should printemailicons be available to add when submitting an item
$cp['content_manager_submit_visibility'] = ''; //should visibility be available to add when submitting an item
$cp['content_manager_submit_meta'] = ''; //should metatags be available to add when submitting an item
$cp['content_manager_submit_layout'] = ''; //should the option for choosing a layout template be shown
$cp['content_manager_submit_customtags'] = ''; //should options for adding additional data be shown
$cp['content_manager_submit_presettags'] = ''; //should preset data tags be shown
$cp['content_manager_submit_custom_number'] = ''; //how many customtags should be available to add when submitting an item
$cp['content_manager_submit_images_number'] = ''; //how many images should be available to add when submitting an item
$cp['content_manager_submit_files_number'] = ''; //how many files should be available to add when submitting an item
//manager : manager options
$cp['content_manager_manager_subheading'] = '';
$cp['content_manager_manager_summary'] = '';
$cp['content_manager_manager_startdate'] = '';
$cp['content_manager_manager_enddate'] = '';
$cp['content_manager_manager_icon'] = '';
$cp['content_manager_manager_attach'] = '';
$cp['content_manager_manager_images'] = '';
$cp['content_manager_manager_comment'] = '';
$cp['content_manager_manager_rating'] = '';
$cp['content_manager_manager_score'] = '';
$cp['content_manager_manager_pe'] = '';
$cp['content_manager_manager_visibility'] = '';
$cp['content_manager_manager_meta'] = '';
$cp['content_manager_manager_layout'] = '';
$cp['content_manager_manager_customtags'] = '';
$cp['content_manager_manager_presettags'] = '';
$cp['content_manager_manager_custom_number'] = '';
$cp['content_manager_manager_images_number'] = '2';
$cp['content_manager_manager_files_number'] = '1';
foreach($cp as $k => $v){
if( !empty($v) ){
$content_pref[$k] = $tp->toDB($v);
}
}
return $content_pref;
}
function getContentPref($id="", $parsepaths=false) {
global $sql, $plugintable, $qs, $tp, $eArrayStorage;
$plugintable = "pcontent";
//if $id; use prefs from content table
if($id && $id!="0"){
$id = intval($id);
$num_rows = $sql -> db_Select($plugintable, "content_pref", "content_id='$id' ");
$row = $sql -> db_Fetch();
if (empty($row['content_pref'])) {
//if no prefs present yet, get them from core (default preferences)
$num_rows = $sql -> db_Select("core", "e107_value", "e107_name='$plugintable' ");
//if those are not present, insert the default ones given in this file
if ($num_rows == 0) {
$content_pref = $this -> ContentDefaultPrefs();
$tmp = $eArrayStorage->WriteArray($content_pref);
$sql -> db_Insert("core", "'$plugintable', '{$tmp}' ");
$sql -> db_Select("core", "e107_value", "e107_name='$plugintable' ");
}
$row = $sql -> db_Fetch();
$content_pref = $eArrayStorage->ReadArray($row['e107_value']);
//create array of custom preset tags
foreach($content_pref['content_custom_preset_key'] as $ck => $cv){
if(!empty($cv)){
$string[] = $cv;
}
}
if($string){
$content_pref['content_custom_preset_key'] = $string;
}else{
unset($content_pref['content_custom_preset_key']);
}
//finally we can store the new default prefs into the db
$tmp1 = $eArrayStorage->WriteArray($content_pref);
$sql -> db_Update($plugintable, "content_pref='{$tmp1}' WHERE content_id='$id' ");
$sql -> db_Select($plugintable, "content_pref", "content_id='$id' ");
$row = $sql -> db_Fetch();
}
$content_pref = $eArrayStorage->ReadArray($row['content_pref']);
if(e_PAGE == "admin_content_config.php" && isset($qs[0]) && ($qs[0] == 'option' || $qs[0] == 'manager') ){
}else{
//check inheritance, if set, get core prefs (default prefs)
if(isset($content_pref['content_inherit']) && $content_pref['content_inherit']!=''){
$sql -> db_Select("core", "e107_value", "e107_name='$plugintable' ");
$row = $sql -> db_Fetch();
$content_pref = $eArrayStorage->ReadArray($row['e107_value']);
}
}
//if not $id; use prefs from default core table
}else{
$num_rows = $sql -> db_Select("core", "e107_value", "e107_name='$plugintable' ");
if ($num_rows == 0) {
$content_pref = $this -> ContentDefaultPrefs();
$tmp = $eArrayStorage->WriteArray($content_pref);
$sql -> db_Insert("core", "'$plugintable', '{$tmp}' ");
$sql -> db_Select("core", "e107_value", "e107_name='$plugintable' ");
}
$row = $sql -> db_Fetch();
$content_pref = $eArrayStorage->ReadArray($row['e107_value']);
}
if($parsepaths){
$content_pref = $this->parseConstants($content_pref);
}
return $content_pref;
}
function parseConstants($content_pref){
global $tp;
//sanitize the paths (first check if exists, else create default paths
$content_pref['content_cat_icon_path_large'] = varset($content_pref['content_cat_icon_path_large'], "{e_PLUGIN}content/images/cat/48/");
$content_pref['content_cat_icon_path_small'] = varset($content_pref['content_cat_icon_path_small'], "{e_PLUGIN}content/images/cat/16/");
$content_pref['content_icon_path'] = varset($content_pref['content_icon_path'], "{e_PLUGIN}content/images/icon/");
$content_pref['content_icon_path_tmp'] = varset($content_pref['content_icon_path_tmp'], $content_pref['content_icon_path']."tmp/");
$content_pref['content_image_path'] = varset($content_pref['content_image_path'], "{e_PLUGIN}content/images/image/");
$content_pref['content_image_path_tmp'] = varset($content_pref['content_image_path_tmp'], $content_pref['content_image_path']."tmp/");
$content_pref['content_file_path'] = varset($content_pref['content_file_path'], "{e_PLUGIN}content/images/file/");
$content_pref['content_file_path_tmp'] = varset($content_pref['content_file_path_tmp'], $content_pref['content_file_path']."tmp/");
//parse constants from the paths
$content_pref['content_cat_icon_path_large'] = $tp -> replaceConstants($content_pref['content_cat_icon_path_large']);
$content_pref['content_cat_icon_path_small'] = $tp -> replaceConstants($content_pref['content_cat_icon_path_small']);
$content_pref['content_icon_path'] = $tp -> replaceConstants($content_pref['content_icon_path']);
$content_pref['content_image_path'] = $tp -> replaceConstants($content_pref['content_image_path']);
$content_pref['content_file_path'] = $tp -> replaceConstants($content_pref['content_file_path']);
$content_pref['content_icon_path_tmp'] = $tp -> replaceConstants($content_pref['content_icon_path_tmp']);
$content_pref['content_file_path_tmp'] = $tp -> replaceConstants($content_pref['content_file_path_tmp']);
$content_pref['content_image_path_tmp'] = $tp -> replaceConstants($content_pref['content_image_path_tmp']);
return $content_pref;
}
//admin
function UpdateContentPref($id){
global $qs, $plugintable, $sql, $tp, $eArrayStorage;
if(!is_object($sql)){ $sql = new db; }
//insert default preferences into core
if($id == "0"){
$num_rows = $sql -> db_Select("core", "e107_value", "e107_name='$plugintable' ");
if ($num_rows == 0) {
$content_pref = $this -> ContentDefaultPrefs();
$tmp = $eArrayStorage->WriteArray($content_pref);
$sql -> db_Insert("core", "'$plugintable', '{$tmp}' ");
$sql -> db_Select("core", "e107_value", "e107_name='$plugintable' ");
}
$row = $sql -> db_Fetch();
$current = $eArrayStorage->ReadArray($row['e107_value']);
//if we are updating options
if(isset($qs[0]) && $qs[0] == 'option' ){
//only retain the manager prefs from the existing set from getting overwritten
foreach($current as $k => $v){
if( strpos($k, "content_manager_") === 0 ){
$content_pref[$k] = $tp->toDB($v);
}
}
//prepare custom tags: use the posted values
$cp = $_POST['content_custom_preset_key'];
//if we are updating manager
}elseif(isset($qs[0]) && $qs[0] == 'manager'){
//if this is a top level category we need to retain all existing options
if($currentparent=='0'){
$content_pref = $current;
}
//prepare custom tags: use the existing content_pref values
$cp = $content_pref['content_custom_preset_key'];
}
//prepare custom tags: use the posted value
$cp = $_POST['content_custom_preset_key'];
//insert category preferences into plugintable
}else{
//first get the existing prefs and parent
$sql -> db_Select($plugintable, "content_pref, content_parent", "content_id='".intval($id)."' ");
$row = $sql -> db_Fetch();
$current = $eArrayStorage->ReadArray($row['content_pref']);
$currentparent = $row['content_parent'];
//if we are updating options
if(isset($qs[0]) && $qs[0] == 'option' ){
//only use the manager prefs from the existing set
foreach($current as $k => $v){
if( strpos($k, "content_manager_") === 0 ){
$content_pref[$k] = $tp->toDB($v);
}
}
//prepare custom tags: use the posted values
$cp = $_POST['content_custom_preset_key'];
//if we are updating manager
}elseif(isset($qs[0]) && $qs[0] == 'manager'){
//if this is a top level category we need to keep all existing options
if($currentparent=='0'){
$content_pref = $current;
}
//prepare custom tags: use the existing content_pref values
$cp = $content_pref['content_custom_preset_key'];
}
}
//parse custom tags and covert them in $_POST values ($cp is derived above)
$string = array();
foreach($cp as $ck => $cv){
if(!empty($cv)){
$string[] = $cv;
}
}
if(is_array($string) && !empty($string[0])){
$_POST['content_custom_preset_key'] = $string;
}
//convert all $_POST to $content_pref for storage, and renew the existing stored prefs
foreach($_POST as $k => $v){
if(strpos($k, "content_") === 0){
$content_pref[$k] = $tp->toDB($v);
}
}
//create new array of preferences
$tmp = $eArrayStorage->WriteArray($content_pref);
//update core table
if($id == "0"){
$sql -> db_Update("core", "e107_value = '{$tmp}' WHERE e107_name = '$plugintable' ");
//update plugin table
}else{
$sql -> db_Update($plugintable, "content_pref='{$tmp}' WHERE content_id='".intval($id)."' ");
}
return $content_pref;
}
function CONTENTREGEXP($var){
return "(^|,)(".str_replace(",", "|", $var).")(,|$)";
}
//function to check and require the template file
//$var: array of all variables that need to be global'ed
//$var[0]: holds the primary var to check isset on (if the template var exists ($MYTEMPLATE))
//$file: the actual filename (template.php)
function gettemplate($var, $file=''){
global $content_pref, $tp;
if(is_array($var)){
$check = $$var[0];
foreach($var as $t){
global $$t;
}
}else{
$check = $var;
global $var;
}
if(!isset($check)){
if(!$content_pref["content_theme"]){
require_once(e_PLUGIN."content/templates/default/".$file);
}else{
if( is_readable($tp->replaceConstants($content_pref["content_theme"]).$file) ){
require_once($tp->replaceConstants($content_pref["content_theme"]).$file);
}else{
require_once(e_PLUGIN."content/templates/default/".$file);
}
}
}
}
function getCategoryTree($id, $parent, $classcheck=TRUE, $cache=true){
//id : content_parent of an item
global $plugintable, $datequery, $agc;
if($cache){
$cachestring = md5("cm_gct_".$id."_".$parent."_".$classcheck);
if($ret = getcachedvars("content_getcategorytree_{$cachestring}"))
{
return $ret;
}
}
if($parent){
$agc = "";
$qrygc = " content_id = '".intval($parent)."' ";
}else{
$qrygc = " content_parent = '0' ";
}
if($id){
$qrygc = " content_parent = '0.".intval($id)."' ";
}
if($classcheck == TRUE){
$qrygc .= " AND content_class REGEXP '".e_CLASS_REGEXP."' ";
}
$datequery = " AND content_datestamp < ".time()." AND (content_enddate=0 || content_enddate>".time().") ";
$sqlgetcat = new db;
if($sqlgetcat -> db_Select($plugintable, "content_id, content_heading, content_parent", " ".$qrygc." ".$datequery." " )){
while($row = $sqlgetcat -> db_Fetch()){
if($agc){
if($row['content_parent'] != "0"){
if(array_key_exists(substr($row['content_parent'],2), $agc)){
if(is_array($agc[substr($row['content_parent'],2)])){
$agc[$row['content_id']] = array_merge_recursive($agc[substr($row['content_parent'],2)], array($row['content_id'], $row['content_heading']));
}else{
$agc[$row['content_id']] = array($agc[substr($row['content_parent'],2)], array($row['content_id'], $row['content_heading']));
}
}else{
$agc[$row['content_id']] = array($row['content_id'], $row['content_heading']);
}
}else{
$agc[$row['content_id']] = array($row['content_id'], $row['content_heading']);
}
}else{
$agc[$row['content_id']] = array($row['content_id'], $row['content_heading']);
}
$this -> getCategoryTree($row['content_id'], "", $classcheck, false);
}
}
if($cache){
cachevars("content_getcategorytree_{$cachestring}", $agc);
}
return $agc;
}
function getCrumbItem($id, $arr){
//$id : content_parent of item
//$arr : array of all categories
$crumb = "";
if(is_array($arr)){
if(array_key_exists($id, $arr)){
for($i=0;$i<count($arr[$id]);$i++){
$crumb .= "<a href='".e_SELF."?cat.".$arr[$id][$i]."'>".$arr[$id][$i+1]."</a> > ";
$i++;
}
$crumb = substr($crumb,0,-3);
}
}
return $crumb;
}
function ShowNextPrev($mode='', $from='0', $number, $total, $return=false){
global $content_pref, $qs, $tp, $plugindir, $content_shortcodes, $CONTENT_NEXTPREV;
if($total<=$number){
return;
}
$modepref = ($mode ? "content_{$mode}_nextprev" : "content_nextprev");
if( varsettrue($content_pref[$modepref]) ){
$np_querystring = e_SELF."?[FROM]".(isset($qs[0]) ? ".".$qs[0] : "").(isset($qs[1]) ? ".".$qs[1] : "").(isset($qs[2]) ? ".".$qs[2] : "").(isset($qs[3]) ? ".".$qs[3] : "").(isset($qs[4]) ? ".".$qs[4] : "");
$parms = $total.",".$number.",".$from.",".$np_querystring."";
$CONTENT_NEXTPREV = $tp->parseTemplate("{NEXTPREV={$parms}}");
if($return){
return $CONTENT_NEXTPREV;
}else{
if(!isset($CONTENT_NP_TABLE)){
if(!$content_pref["content_theme"]){
require_once($plugindir."templates/default/content_np_template.php");
}else{
if(is_readable($tp->replaceConstants($content_pref["content_theme"])."content_np_template.php")){
require_once($tp->replaceConstants($content_pref["content_theme"])."content_np_template.php");
}else{
require_once($plugindir."templates/default/content_np_template.php");
}
}
}
echo $tp -> parseTemplate($CONTENT_NP_TABLE, FALSE, $content_shortcodes);
}
}
}
function getCrumbPage($mode, $arr, $parent){
global $qs, $ns, $content_pref, $plugintable;
if( varsettrue($content_pref["content_breadcrumb_{$mode}"]) ){
$crumb = '';
if(array_key_exists($parent, $arr)){
$sep = varsettrue($content_pref["content_breadcrumb_seperator"], ">");
if( varsettrue($content_pref["content_breadcrumb_base"]) ){
$crumb .= "<a href='".e_BASE."'>".CONTENT_LAN_58."</a> ".$sep." ";
}
if( varsettrue($content_pref["content_breadcrumb_self"]) ){
$crumb .= "<a href='".e_SELF."'>".CONTENT_LAN_59."</a> ".$sep." ";
}
for($i=0;$i<count($arr[$parent]);$i++){
if($i == count($arr[$parent])-2){
$crumb .= "<a href='".e_SELF."?cat.".$arr[$parent][$i]."'>".$arr[$parent][$i+1]."</a>";
break;
}else{
$crumb .= "<a href='".e_SELF."?cat.".$arr[$parent][$i]."'>".$arr[$parent][$i+1]."</a> ".$sep." ";
$i++;
}
}
}
if($qs[0] == "recent"){
$crumb .= " ".$sep." <a href='".e_SELF."?recent.".$arr[$parent][0]."'>".CONTENT_LAN_60."</a>";
}
if($qs[0] == "author"){
$crumb .= " ".$sep." <a href='".e_SELF."?author.list.".$arr[$parent][0]."'>".CONTENT_LAN_85."</a>";
if(is_numeric($qs[1])){
global $sql;
$sql->db_Select($plugintable, "content_author","content_id='".intval($qs[1])."'");
$row=$sql->db_Fetch();
$au = $this->getAuthor($row['content_author']);
$crumb .= " ".$sep." <a href='".e_SELF."?author.".$qs[1]."'>".$au[1]."</a>";
}
}
if($qs[0] == "list"){
$crumb .= " ".$sep." <a href='".e_SELF."?list.".$arr[$parent][0]."'>".CONTENT_LAN_13."</a>";
}
if($qs[0] == "top"){
$crumb .= " ".$sep." <a href='".e_SELF."?top.".$arr[$parent][0]."'>".CONTENT_LAN_8."</a>";
}
if($qs[0] == "score"){
$crumb .= " ".$sep." <a href='".e_SELF."?score.".$arr[$parent][0]."'>".CONTENT_LAN_12."</a>";
}
if($qs[0] == "content"){
global $row;
$crumb .= " ".$sep." ".$row['content_heading'];
}
$crumb = "<div class='breadcrumb'>".trim($crumb)."</div>";
if(isset($content_pref["content_breadcrumb_rendertype"]) && $content_pref["content_breadcrumb_rendertype"] == "1"){
echo $crumb;
return "";
}elseif(isset($content_pref["content_breadcrumb_rendertype"]) && $content_pref["content_breadcrumb_rendertype"] == "2"){
$ns -> tablerender(CONTENT_LAN_24, $crumb);
return "";
}else{
return $crumb;
}
}else{
return "";
}
}
function countCatItems($id){
global $sqlcountitemsincat, $plugintable, $datequery;
//$id : category content_id
$cachestring = md5($id."_".$datequery."_".e_CLASS_REGEXP);
if($ret = getcachedvars("content_countcatitems_{$cachestring}"))
{
return $ret;
}
if(!is_object($sqlcountitemsincat)){ $sqlcountitemsincat = new db; }
$n = $sqlcountitemsincat -> db_Count($plugintable, "(*)", "WHERE content_class REGEXP '".e_CLASS_REGEXP."' AND content_parent='".intval($id)."' AND content_refer != 'sa' ".$datequery." ");
cachevars("content_countcatitems_{$cachestring}", $n);
return $n;
}
function getCategoryHeading($id){
global $plugintable, $sql;
$qry = "
SELECT p.content_heading
FROM #pcontent as c
LEFT JOIN #pcontent as p ON p.content_id = c.content_parent
WHERE c.content_id = '".intval($id)."' ";
$sql -> db_Select_gen($qry);
$row2 = $sql -> db_Fetch();
return $row2['content_heading'];
}
function getPageHeading($id){
global $plugintable, $sql;
$sql -> db_Select($plugintable, "content_heading", "content_id='".intval($id)."' ");
$row2 = $sql -> db_Fetch();
return $row2['content_heading'];
}
function setPageTitle(){
global $plugintable, $sql, $qs;
//content page
if(e_PAGE == "content.php"){
//main parent overview
if(!e_QUERY){
$page = CONTENT_PAGETITLE_LAN_0;
}else{
$sql -> db_Select($plugintable, "content_heading", "content_id = '".intval($qs[1])."' ");
$row = $sql -> db_Fetch();
$page = CONTENT_PAGETITLE_LAN_0;
//recent of parent='2'
if($qs[0] == "recent" && is_numeric($qs[1]) && !isset($qs[2])){
$page .= " / ".$row['content_heading']." / ".CONTENT_PAGETITLE_LAN_2;
//item
}elseif($qs[0] == "content" && isset($qs[1]) && is_numeric($qs[1]) ){
$page .= " / ".$this -> getCategoryHeading($qs[1])." / ".$this -> getPageHeading($qs[1]);
//all categories of parent='2'
}elseif($qs[0] == "cat" && $qs[1] == "list" && is_numeric($qs[2])){
$page .= " / ".$this -> getPageHeading($qs[2])." / ".CONTENT_PAGETITLE_LAN_13;
//category of parent='2' and content_id='5'
}elseif($qs[0] == "cat" && is_numeric($qs[1]) && (!isset($qs[2]) || isset($qs[2]) && $qs[2]=='view') ){
$page .= " / ".CONTENT_PAGETITLE_LAN_3." / ".$row['content_heading'];
//top rated of parent='2'
}elseif($qs[0] == "top" && is_numeric($qs[1]) && !isset($qs[2])){
$page .= " / ".$this -> getPageHeading($qs[1])." / ".CONTENT_PAGETITLE_LAN_4;
//top score of parent='2'
}elseif($qs[0] == "score" && is_numeric($qs[1]) && !isset($qs[2])){
$page .= " / ".$this -> getPageHeading($qs[1])." / ".CONTENT_PAGETITLE_LAN_15;
//authorlist of parent='2'
}elseif($qs[0] == "author" && $qs[1] == "list" && is_numeric($qs[2])){
$page .= " / ".$this -> getPageHeading($qs[2])." / ".CONTENT_PAGETITLE_LAN_14;
//authorlist of parent='2' and content_id='5'
}elseif($qs[0] == "author" && is_numeric($qs[1]) && !isset($qs[2])){
$sql -> db_Select($plugintable, "content_author", "content_id='".intval($qs[1])."' ");
$row2 = $sql -> db_Fetch();
$authordetails = $this -> getAuthor($row2['content_author']);
$page .= " / ".CONTENT_PAGETITLE_LAN_5." / ".$authordetails[1];
//archive of parent='2'
}elseif($qs[0] == "list" && is_numeric($qs[1]) && !isset($qs[2])){
$page .= " / ".CONTENT_PAGETITLE_LAN_6;
}
}
}elseif(e_PAGE == "content_manager.php"){
//manager page : view categories
if(!e_QUERY){
$page = CONTENT_PAGETITLE_LAN_0." / ".CONTENT_PAGETITLE_LAN_9;
}else{
$page = CONTENT_PAGETITLE_LAN_0." / ".CONTENT_PAGETITLE_LAN_9;
//manager page : list items
if($qs[0] == "content" && is_numeric($qs[1]) ){
$page .= " / ".CONTENT_PAGETITLE_LAN_10;
//manager page : edit item
}elseif($qs[0] == "content" && $qs[1] == "edit" && is_numeric($qs[2]) ){
$page .= " / ".CONTENT_PAGETITLE_LAN_11;
//manager page : create new item (manager)
}elseif($qs[0] == "content" && $qs[1] == "create" && is_numeric($qs[2]) ){
$page .= " / ".CONTENT_PAGETITLE_LAN_12;
//manager page : create new item (submit)
}elseif($qs[0] == "content" && $qs[1] == "submit" && is_numeric($qs[2]) ){
$page .= " / ".CONTENT_PAGETITLE_LAN_8;
//manager page : approve submitted items (list items)
}elseif($qs[0] == "content" && $qs[1] == "approve" && is_numeric($qs[2]) ){
$page .= " / ".CONTENT_PAGETITLE_LAN_16;
//manager page : post submitted item (edit item)
}elseif($qs[0] == "content" && $qs[1] == "sa" && is_numeric($qs[2]) ){
$page .= " / ".CONTENT_PAGETITLE_LAN_17;
}
}
}
define("e_PAGETITLE", $page);
}
function getAuthor($content_author) {
global $sql, $plugintable, $datequery;
$cachestring = md5($content_author);
if($ret = getcachedvars("content_getauthor_{$cachestring}"))
{
return $ret;
}
if(is_numeric($content_author)){
if(!$sql -> db_Select("user", "user_id, user_name, user_email", "user_id=$content_author")){
$author_id = "0";
$author_name = "";
$author_email = "";
}else{
list($author_id, $author_name, $author_email) = $sql -> db_Fetch();
}
$getauthor = array($author_id, $author_name, $author_email, $content_author);
}else{
$tmp = explode("^", $content_author);
if(isset($tmp[0]) && is_numeric($tmp[0]) ){
$author_id = $tmp[0];
$author_name = (isset($tmp[1]) ? $tmp[1] : "");
$author_email = (isset($tmp[2]) ? $tmp[2] : "");
}else{
$author_id = "0";
$author_name = $tmp[0];
$author_email = (isset($tmp[1]) ? $tmp[1] : "");
}
$getauthor = array($author_id, $author_name, $author_email, $content_author);
}
cachevars("content_getauthor_{$cachestring}", $getauthor);
return $getauthor;
}
function getMainParent($id, $cache=true){
global $sql, $plugintable;
if($cache){
$cachestring = md5("cm_gmp_".$id);
if($ret = getcachedvars("content_getmainparent_{$cachestring}"))
{
return $ret;
}
}
$category_total = $sql -> db_Select($plugintable, "content_id, content_parent", "content_id='".intval($id)."' ");
$row = $sql -> db_Fetch();
if($row['content_parent'] == 0){
$mainparent = $row['content_id'];
}else{
if(strpos($row['content_parent'], ".")){
$newid = substr($row['content_parent'],2);
}else{
$newid = $row['content_parent'];
}
$mainparent = $this -> getMainParent( $newid, false );
}
$val = ($mainparent ? $mainparent : "0");
if($cache){
cachevars("content_getmainparent_{$cachestring}", $val);
}
return $val;
}
//$mode : managecontent, createcontent, category
function ShowOption($currentparent="", $mode=''){
global $qs, $sql, $rs, $plugintable, $tp, $content_pref, $stylespacer;
if( ($mode=='managecontent' || $mode=='createcontent') && $currentparent == "submit"){
$mainparent = $this -> getMainParent( intval($qs[2]) );
$catarray = $this -> getCategoryTree("", intval($mainparent), FALSE);
}else{
$catarray = $this -> getCategoryTree("", "", FALSE);
}
$array = array_keys($catarray);
$string = "";
foreach($array as $catid){
$category_total = $sql -> db_Select($plugintable, "content_id, content_heading, content_parent", "content_id='".intval($catid)."' ");
$row = $sql -> db_Fetch();
$pre = "";
//sub level
if($row['content_parent'] != "0"){
for($b=0;$b<(count($catarray[$catid])/2)-1;$b++){
$pre .= "&nbsp;&nbsp;";
}
}
if($row['content_parent'] == 0){
$name = $row['content_heading'];
$js = "style='font-weight:bold;'";
}else{
$js = "";
$name = $pre.$row['content_heading'];
}
if($mode=='managecontent'){
$checkid = ($currentparent ? $currentparent : "");
if($qs[0] == 'content' && ($qs[1]=='create' || $qs[1]=='submit') ){
$value = e_SELF."?content.".$qs[1].".".$catid;
}else{
$value = e_SELF."?content.".$catid;
}
}elseif($mode=='createcontent'){
if($qs[1] == "create" || $qs[1] == "submit"){
$checkid = (isset($qs[2]) && is_numeric($qs[2]) ? $qs[2] : "");
$value = $catid;
}else{
$checkid = ($currentparent ? $currentparent : "");
$value = $qs[2].".".$catid;
}
}elseif($mode=='category'){
if($qs[1] == "create"){
$checkid = (isset($qs[2]) && is_numeric($qs[2]) ? $qs[2] : "");
$value = e_SELF."?cat.create.".$catid;
}elseif($qs[1] == "edit"){
$checkid = ($currentparent ? $currentparent : "");
$value = e_SELF."?cat.edit.".$qs[2].".".$catid;
}
}
$sel = ($catid == $checkid ? "1" : "0");
$string .= $rs -> form_option($name, $sel, $value, $js);
}
if($mode=='managecontent'){
$selectjs = " onchange=\" if(this.options[this.selectedIndex].value != 'none'){ return document.location=this.options[this.selectedIndex].value; } \"";
$text = $rs -> form_select_open("parent1", $selectjs);
$text .= $rs -> form_option(CONTENT_ADMIN_MAIN_LAN_28, "0", "none");
$text .= $string;
$text .= $rs -> form_select_close();
}elseif($mode=='createcontent'){
$redirecturl = e_SELF."?content.".$qs[1].".";
$selectjs = " onchange=\" if(this.options[this.selectedIndex].value != 'none'){ return document.location='".$redirecturl."'+this.options[this.selectedIndex].value; } \"";
$text = $rs -> form_select_open("parent1", $selectjs);
$text .= $rs -> form_option(CONTENT_ADMIN_MAIN_LAN_28, "0", "none");
$text .= $string;
$text .= $rs -> form_select_close();
}elseif($mode=='category'){
$selectjs = " onchange=\" if(this.options[this.selectedIndex].value != 'none'){ return document.location=this.options[this.selectedIndex].value; } \"";
$text = $rs -> form_select_open("parent1", $selectjs);
if($qs[1] == "create"){
$text .= $rs -> form_option(CONTENT_ADMIN_MAIN_LAN_29."&nbsp;&nbsp;", (isset($qs[2]) ? "0" : "1"), e_SELF."?cat.create", "style='font-weight:bold;'");
}else{
$text .= $rs -> form_option(CONTENT_ADMIN_MAIN_LAN_29."&nbsp;&nbsp;", (isset($qs[2]) ? "0" : "1"), e_SELF."?cat.edit.".$qs[2].".0", "style='font-weight:bold;'");
}
$text .= $string;
$text .= $rs -> form_select_close();
}
return $text;
}
function getOrder($mode=''){
global $qs, $content_pref;
if(isset($qs[0]) && substr($qs[0],0,5) == "order"){
$orderstring = $qs[0];
}elseif(isset($qs[1]) && substr($qs[1],0,5) == "order"){
$orderstring = $qs[1];
}elseif(isset($qs[2]) && substr($qs[2],0,5) == "order"){
$orderstring = $qs[2];
}elseif(isset($qs[3]) && substr($qs[3],0,5) == "order"){
$orderstring = $qs[3];
}else{
if(isset($mode) && $mode=='catall'){
$orderstring = ($content_pref["content_catall_defaultorder"] ? $content_pref["content_catall_defaultorder"] : "orderaheading" );
}elseif(isset($mode) && $mode=='cat'){
$orderstring = ($content_pref['content_cat_defaultorder'] ? $content_pref['content_cat_defaultorder'] : "orderaheading" );
}elseif(isset($mode) && $mode=='archive'){
$orderstring = ($content_pref['content_archive_defaultorder'] ? $content_pref['content_archive_defaultorder'] : "orderaheading" );
}else{
$orderstring = ($content_pref["content_defaultorder"] ? $content_pref["content_defaultorder"] : "orderddate" );
}
}
if(substr($orderstring,6) == "heading"){
$orderby = "content_heading";
$orderby2 = "";
}elseif(substr($orderstring,6) == "date"){
$orderby = "content_datestamp";
$orderby2 = ", content_heading ASC";
}elseif(substr($orderstring,6) == "parent"){
$orderby = "content_parent";
$orderby2 = ", content_heading ASC";
}elseif(substr($orderstring,6) == "refer"){
$orderby = "content_refer";
$orderby2 = ", content_heading ASC";
}elseif(substr($orderstring,6) == "author"){
}elseif(substr($orderstring,6) == "order"){
if(isset($mode) && $mode=='catall'){
$orderby = "content_order+0";
}elseif(isset($mode) && $mode=='cat'){
$orderby = "content_order+0";
}else{
if($qs[0] == "cat"){
$orderby = "SUBSTRING_INDEX(content_order, '.', 1)+0";
}elseif($qs[0] != "cat"){
$orderby = "SUBSTRING_INDEX(content_order, '.', -1)+0";
}
}
$orderby2 = ", content_heading ASC";
}else{
$orderstring = "orderddate";
$orderby = "content_datestamp";
$orderby2 = ", content_heading ASC";
}
$order = " ORDER BY ".$orderby." ".(substr($orderstring,5,1) == "a" ? "ASC" : "DESC")." ".$orderby2." ";
return $order;
}
function getIcon($mode, $icon, $path="", $linkid="", $width="", $blank=""){
global $content_pref;
$blank = (!$blank ? "0" : $blank);
$border = "border:0;";
$hrefpre = ($linkid ? "<a href='".e_SELF."?".$linkid."'>" : "");
$hrefpost = ($linkid ? "</a>" : "");
if($mode == "item"){
$path = (!$path ? $content_pref['content_icon_path'] : $path);
$width = ($width ? "width:".$width."px;" : "");
//$border = "border:1px solid #000;";
$border = '';
$icon = ($icon ? $path.$icon : ($blank ? $content_pref['content_icon_path']."blank.gif" : ""));
}elseif($mode == "catsmall"){
$path = (!$path ? $content_pref['content_cat_icon_path_small'] : $path);
$icon = ($icon ? $path.$icon : "");
}elseif($mode == "catlarge"){
$path = (!$path ? $content_pref['content_cat_icon_path_large'] : $path);
$icon = ($icon ? $path.$icon : "");
}else{
$path = (!$path ? $content_pref['content_icon_path'] : $path);
$hrefpre = "";
$hrefpost = "";
$width = "";
$icon = ($icon ? $path.$icon : ($blank ? $content_pref['content_icon_path']."blank.gif" : ""));
}
if($icon && is_readable($icon)){
$iconstring = $hrefpre."<img src='".$icon."' alt='' style='".$width." ".$border."' />".$hrefpost;
}else{
$iconstring = "";
if($blank){
if(is_readable($content_pref['content_icon_path']."blank.gif")){
if($mode == "catsmall"){
$width = ($width ? "width:".$width."px;" : "width:16px;");
}elseif($mode == "catlarge"){
$width = ($width ? "width:".$width."px;" : "width:48px;");
}
$iconstring = $hrefpre."<img src='".$content_pref['content_icon_path']."blank.gif' alt='' style='".$width." ".$border."' />".$hrefpost;
}
}
}
return $iconstring;
}
function prepareAuthor($mode, $author, $id){
global $aa, $content_pref;
if($mode == ''){return;}
$authorinfo = "";
if( varsettrue($content_pref["content_{$mode}_authorname"]) || varsettrue($content_pref["content_{$mode}_authoremail"]) || varsettrue($content_pref["content_{$mode}_authoricon"]) || varsettrue($content_pref["content_{$mode}_authorprofile"]) ){
$authordetails = $this -> getAuthor($author);
if( varsettrue($content_pref["content_{$mode}_authorname"]) ){
if(isset($content_pref["content_{$mode}_authoremail"]) && $authordetails[2]){
if($authordetails[0] == "0"){
if( varsettrue($content_pref["content_{$mode}_authoremail_nonmember"]) && strpos($authordetails[2], "@") ){
$authorinfo = preg_replace("#([a-z0-9\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i", "<a rel='external' href='javascript:window.location=\"mai\"+\"lto:\"+\"\\1\"+\"@\"+\"\\2\";self.close();' onmouseover='window.status=\"mai\"+\"lto:\"+\"\\1\"+\"@\"+\"\\2\"; return true;' onmouseout='window.status=\"\";return true;'>".$authordetails[1]."</a>", $authordetails[2]);
}else{
$authorinfo = $authordetails[1];
}
}else{
$authorinfo = preg_replace("#([a-z0-9\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i", "<a rel='external' href='javascript:window.location=\"mai\"+\"lto:\"+\"\\1\"+\"@\"+\"\\2\";self.close();' onmouseover='window.status=\"mai\"+\"lto:\"+\"\\1\"+\"@\"+\"\\2\"; return true;' onmouseout='window.status=\"\";return true;'>".$authordetails[1]."</a>", $authordetails[2]);
}
}else{
$authorinfo = $authordetails[1];
}
if(USER && is_numeric($authordetails[0]) && $authordetails[0] != "0" && varsettrue($content_pref["content_{$mode}_authorprofile"]) ){
$authorinfo .= " <a href='".e_BASE."user.php?id.".$authordetails[0]."' title='".CONTENT_LAN_40."'>".CONTENT_ICON_USER."</a>";
}
}
if( varsettrue($content_pref["content_{$mode}_authoricon"]) ){
$authorinfo .= " <a href='".e_SELF."?author.".$id."' title='".CONTENT_LAN_39."'>".CONTENT_ICON_AUTHORLIST."</a>";
}
}
return $authorinfo;
}
//search by keyword
function showOptionsSearch($mode, $searchtypeid=""){
global $plugindir, $plugintable, $qs, $rs;
if(!is_object($rs)){
require_once(e_HANDLER."form_handler.php");
$rs = new form;
}
if(!isset($searchtypeid)){
$searchtypeid = (is_numeric($qs[1]) ? $qs[1] : $qs[2]);
}
if($mode == "menu"){
$CONTENT_SEARCH_TABLE_KEYWORD = $rs -> form_open("post", $plugindir."content.php?recent.$searchtypeid", "contentsearchmenu_{$mode}", "", "enctype='multipart/form-data'")."<div><input class='tbox' size='20' type='text' id='searchfieldmenu_{$mode}' name='searchfieldmenu_{$mode}' value='".(isset($_POST['searchfieldmenu_{$mode}']) ? $_POST['searchfieldmenu_{$mode}'] : CONTENT_LAN_18)."' maxlength='100' onfocus=\"document.forms['contentsearchmenu_{$mode}'].searchfieldmenu_$mode.value='';\" /> <input class='button' type='submit' name='searchsubmit' value='".CONTENT_LAN_19."' /></div>".$rs -> form_close();
}else{
$searchfieldname = "searchfield_{$mode}";
$CONTENT_SEARCH_TABLE_KEYWORD = $rs -> form_open("post", $plugindir."content.php?recent.$searchtypeid", "contentsearch_{$mode}", "", "enctype='multipart/form-data'")."<div>
<input class='tbox' size='27' type='text' id='$searchfieldname' name='$searchfieldname' value='".(isset($_POST[$searchfieldname]) ? $_POST[$searchfieldname] : CONTENT_LAN_18)."' maxlength='100' onfocus=\"document.forms['contentsearch_{$mode}'].$searchfieldname.value='';\" />
<input class='button' type='submit' name='searchsubmit' value='".CONTENT_LAN_19."' /></div>
".$rs -> form_close();
}
return $CONTENT_SEARCH_TABLE_KEYWORD;
}
//redirection links in dropdown
function showOptionsSelect($mode, $searchtypeid=""){
global $plugindir, $plugintable, $rs, $qs, $content_pref;
if(!is_object($rs)){
require_once(e_HANDLER."form_handler.php");
$rs = new form;
}
if(!isset($searchtypeid)){
$searchtypeid = (is_numeric($qs[1]) ? $qs[1] : $qs[2]);
}
$catarray = "";
$mainparent = $this -> getMainParent( $searchtypeid );
$content_pref = $this -> getContentPref($mainparent, true);
$parent = $this -> getCategoryTree("", $mainparent, TRUE);
$parent = array_merge_recursive($parent);
for($a=0;$a<count($parent);$a++){
for($b=0;$b<count($parent[$a]);$b++){
$newparent[$parent[$a][$b]] = $parent[$a][$b+1];
$b++;
}
}
if($newparent){
$emptystring = CONTENT_LAN_14;
$catarray = $rs -> form_option($emptystring, "0", "none");
}
foreach($newparent as $key => $value){
$n = "";
if($mode == "page" || ($mode == "menu" && isset($content_pref["content_menu_cat_number"])) ){
$n = $this -> countCatItems($key);
$n = " (".$n." ".($n == "1" ? CONTENT_LAN_53 : CONTENT_LAN_54).")";
}
if( ($content_pref["content_menu_cat_main"] && $key == $mainparent) || $key != $mainparent ){
$value = (strlen($value) > 25 ? substr($value,0,25)."..." : $value);
$catarray .= $rs -> form_option($value.$n, 0, $plugindir."content.php?cat.".$key);
}
}
if($mode == "page" || ($mode == "menu" && ($content_pref["content_menu_links"] && $content_pref["content_menu_links_dropdown"]) || ($content_pref["content_menu_cat"] && $content_pref["content_menu_cat_dropdown"]) ) ){
if($mode == "menu"){ $style = "style='width:100%;' "; }else{ $style = ""; }
$CONTENT_SEARCH_TABLE_SELECT = "
".$rs -> form_open("post", $plugindir."content.php".(e_QUERY ? "?".e_QUERY : ""), "contentredirect".$mode, "", "enctype='multipart/form-data'")."
<div><select id='{$mode}value' name='{$mode}value' class='tbox' $style onchange=\"if(this.options[this.selectedIndex].value != 'none'){ return document.location=this.options[this.selectedIndex].value; }\">";
if($mode == "page" || ($mode == "menu" && $content_pref["content_menu_links"] && $content_pref["content_menu_links_dropdown"]) ){
$CONTENT_SEARCH_TABLE_SELECT .= $rs -> form_option(CONTENT_LAN_56, 1, "none");
if($mode == "page" || ($mode == "menu" && $content_pref["content_menu_viewallcat"])){
$CONTENT_SEARCH_TABLE_SELECT .= $rs -> form_option(CONTENT_LAN_6, 0, $plugindir."content.php?cat.list.".$mainparent);
}
if($mode == "page" || ($mode == "menu" && $content_pref["content_menu_viewallauthor"])){
$CONTENT_SEARCH_TABLE_SELECT .= $rs -> form_option(CONTENT_LAN_7, 0, $plugindir."content.php?author.list.".$mainparent);
}
if($mode == "page" || ($mode == "menu" && $content_pref["content_menu_viewallitems"])){
$CONTENT_SEARCH_TABLE_SELECT .= $rs -> form_option(CONTENT_LAN_83, 0, $plugindir."content.php?list.".$mainparent);
}
if($mode == "page" || ($mode == "menu" && $content_pref["content_menu_viewtoprated"])){
$CONTENT_SEARCH_TABLE_SELECT .= $rs -> form_option(CONTENT_LAN_8, 0, $plugindir."content.php?top.".$mainparent);
}
if($mode == "page" || ($mode == "menu" && $content_pref["content_menu_viewtopscore"])){
$CONTENT_SEARCH_TABLE_SELECT .= $rs -> form_option(CONTENT_LAN_12, 0, $plugindir."content.php?score.".$mainparent);
}
if($mode == "page" || ($mode == "menu" && $content_pref["content_menu_viewrecent"])){
$CONTENT_SEARCH_TABLE_SELECT .= $rs -> form_option(CONTENT_LAN_61, 0, $plugindir."content.php?recent.".$mainparent);
}
if($mode == "page" || ($mode == "menu" && $content_pref["content_menu_viewsubmit"])){
$CONTENT_SEARCH_TABLE_SELECT .= $rs -> form_option(CONTENT_LAN_75, 0, $plugindir."content_manager.php");
}
}
if($mode == "page" || ($mode == "menu" && $content_pref["content_menu_cat"] && $content_pref["content_menu_cat_dropdown"])){
if($mode == "page" || ($mode == "menu" && $content_pref["content_menu_links"] && $content_pref["content_menu_links_dropdown"]) ){
$CONTENT_SEARCH_TABLE_SELECT .= $rs -> form_option("&nbsp;", "0", "none");
}
$CONTENT_SEARCH_TABLE_SELECT .= $catarray;
}
$CONTENT_SEARCH_TABLE_SELECT .= $rs -> form_select_close()."</div>".$rs -> form_close();
}
return $CONTENT_SEARCH_TABLE_SELECT;
}
//ordering in dropdown
function showOptionsOrder($mode, $ordertypeid=""){
global $plugindir, $rs, $qs;
if(!is_object($rs)){
require_once(e_HANDLER."form_handler.php");
$rs = new form;
}
if(!isset($ordertypeid)){
$ordertypeid = (is_numeric($qs[1]) ? $qs[1] : $qs[2]);
}
$text = "";
if(strpos(e_SELF, 'content.php') !== FALSE){
if(e_QUERY){
$check = "";
for($i=0;$i<count($qs);$i++){
if($qs[$i] && substr($qs[$i],0,5) == "order"){
$check = $qs[$i];
break;
}
}
$baseurl = $plugindir."content.php";
$qry = (isset($qs[0]) && substr($qs[0],0,5) != "order" ? $qs[0] : "").(isset($qs[1]) && substr($qs[1],0,5) != "order" ? ".".$qs[1] : "").(isset($qs[2]) && substr($qs[2],0,5) != "order" ? ".".$qs[2] : "").(isset($qs[3]) && substr($qs[3],0,5) != "order" ? ".".$qs[3] : "");
$text = $rs -> form_open("post", $baseurl."?$qs[0].$ordertypeid", "contentsearchorder{$mode}", "", "enctype='multipart/form-data'");
$text .= "<div><select id='ordervalue{$mode}' name='ordervalue{$mode}' class='tbox' onchange=\"if(this.options[this.selectedIndex].value != 'none'){ return document.location=this.options[this.selectedIndex].value; }\">";
$text .= $rs -> form_option(CONTENT_ORDER_LAN_0, 1, "none");
if($qs[0] == "author" && $qs[1] == "list"){
$text .= $rs -> form_option(CONTENT_ORDER_LAN_11, ($check == "orderaauthor" ? "1" : "0"), $baseurl."?".$qry.".orderaauthor" );
$text .= $rs -> form_option(CONTENT_ORDER_LAN_12, ($check == "orderdauthor" ? "1" : "0"), $baseurl."?".$qry.".orderdauthor" );
}else{
$text .= $rs -> form_option(CONTENT_ORDER_LAN_1, ($check == "orderaheading" ? "1" : "0"), $baseurl."?".$qry.".orderaheading" );
$text .= $rs -> form_option(CONTENT_ORDER_LAN_2, ($check == "orderdheading" ? "1" : "0"), $baseurl."?".$qry.".orderdheading" );
$text .= $rs -> form_option(CONTENT_ORDER_LAN_3, ($check == "orderadate" ? "1" : "0"), $baseurl."?".$qry.".orderadate" );
$text .= $rs -> form_option(CONTENT_ORDER_LAN_4, ($check == "orderddate" ? "1" : "0"), $baseurl."?".$qry.".orderddate" );
$text .= $rs -> form_option(CONTENT_ORDER_LAN_5, ($check == "orderarefer" ? "1" : "0"), $baseurl."?".$qry.".orderarefer" );
$text .= $rs -> form_option(CONTENT_ORDER_LAN_6, ($check == "orderdrefer" ? "1" : "0"), $baseurl."?".$qry.".orderdrefer" );
$text .= $rs -> form_option(CONTENT_ORDER_LAN_7, ($check == "orderaparent" ? "1" : "0"), $baseurl."?".$qry.".orderaparent" );
$text .= $rs -> form_option(CONTENT_ORDER_LAN_8, ($check == "orderdparent" ? "1" : "0"), $baseurl."?".$qry.".orderdparent" );
$text .= $rs -> form_option(CONTENT_ORDER_LAN_9, ($check == "orderaorder" ? "1" : "0"), $baseurl."?".$qry.".orderaorder" );
$text .= $rs -> form_option(CONTENT_ORDER_LAN_10, ($check == "orderdorder" ? "1" : "0"), $baseurl."?".$qry.".orderdorder" );
}
$text .= $rs -> form_select_close();
$text .= "</div>";
$text .= $rs -> form_close();
}
}
return $text;
}
//function to create the php menu file
function CreateParentMenu($parentid){
global $plugintable, $plugindir, $tp, $datequery;
if(!is_object($sqlcreatemenu)){ $sqlcreatemenu = new db; }
if(!$sqlcreatemenu -> db_Select($plugintable, "content_heading", "content_id='".intval($parentid)."' ")){
return FALSE;
}else{
$row = $sqlcreatemenu -> db_Fetch();
}
$content_path_menu = $plugindir."menus/";
if(!is_writable($content_path_menu)){
echo "<b>".CONTENT_ADMIN_ITEM_LAN_22." ".$content_path_menu." ".CONTENT_ADMIN_ITEM_LAN_23."</b><br />";
return FALSE;
}
$menufile = "content_".$row['content_heading'];
$menuname = $row['content_heading'];
$data = chr(60)."?php\n". chr(47)."*\n+---------------------------------------------------------------+\n| e107 website system\n| ".e_PLUGIN."content/menus/".$menufile."_menu.php\n|\n| ©Copyright (C) 2008-2009 e107 Inc (e107.org)\n| http://e107.org\n| jalist@e107.org\n|\n| Released under the terms and conditions of the\n| GNU General Public License (http://gnu.org).\n+---------------------------------------------------------------+\n\nThis file has been generated by ".e_PLUGIN."content/handlers/content_class.php.\n\n*". chr(47)."\n";
$data .= "\n";
$data .= "unset(\$text);\n";
$data .= "\$text = \"\";\n";
$data .= "\$menutypeid = \"$parentid\";\n";
$data .= "\$menuname = \"$menuname\";\n";
$data .= "\n";
$data .= "\$plugindir = e_PLUGIN.'content/';\n";
$data .= "\$plugintable = \"pcontent\"; //name of the table used in this plugin (never remove this, as it's being used throughout the plugin !!)\n";
$data .= "\$datequery = \" AND content_datestamp < \".time().\" AND (content_enddate=0 || content_enddate>\".time().\") \";\n";
$data .= "\n";
$data .= "global \$tp;\n";
$data .= "require_once(e_PLUGIN.'content/content_shortcodes.php');\n";
$data .= "require_once(e_PLUGIN.'content/handlers/content_class.php');\n";
$data .= "\$aa = new content;\n";
$data .= "require_once(e_HANDLER.'form_handler.php');\n";
$data .= "\$rs = new form;\n";
$data .= "\$gen = new convert;\n";
$data .= "global \$tp;\n";
$data .= "\n";
$data .= "include_lan(e_PLUGIN.'content/languages/'.e_LANGUAGE.'/lan_content.php');\n";
$data .= '
$bullet = \'\';
if(defined(\'BULLET\'))
{
$bullet = \'<img src="\'.THEME.\'images/\'.BULLET.\'" alt="" class="icon" />\';
}
elseif(file_exists(THEME.\'images/bullet2.gif\'))
{
$bullet = \'<img src="\'.THEME.\'images/bullet2.gif" alt="" class="icon" />\';
}
';
$data .= "\$content_pref = \$aa -> getContentPref(\$menutypeid, true);\n";
$data .= "\n";
$data .= "// load the template --------------------------------------------------\n";
$data .= "if(!isset(\$CONTENT_MENU)){\n";
$data .= " if(!\$content_pref[\"content_theme\"]){\n";
$data .= " require_once(\$plugindir.\"templates/default/content_menu_template.php\");\n";
$data .= " }else{\n";
$data .= " if(is_readable(\$tp->replaceConstants(\$content_pref[\"content_theme\"]).\"content_menu_template.php\")){\n";
$data .= " require_once(\$tp->replaceConstants(\$content_pref[\"content_theme\"]).\"content_menu_template.php\");\n";
$data .= " }else{\n";
$data .= " require_once(\$plugindir.\"templates/default/content_menu_template.php\");\n";
$data .= " }\n";
$data .= " }\n";
$data .= "}\n";
$data .= "\n";
$data .= "//get category array\n";
$data .= "\$array = \$aa -> getCategoryTree(\"\", intval(\$menutypeid), TRUE);\n";
$data .= "\n";
$data .= "// menu visibility --------------------------------------------------\n";
$data .= "if(isset(\$content_pref[\"content_menu_visibilitycheck\"]) && \$content_pref[\"content_menu_visibilitycheck\"]){\n";
$data .= " \$check='';\n";
$data .= " //if url contains plugin/content\n";
$data .= " if(strpos(e_SELF, e_PLUGIN_ABS.\"content/\")!==FALSE){\n";
$data .= " //if current page is content.php\n";
$data .= " if(e_PAGE == 'content.php'){\n";
$data .= " if(e_QUERY){\n";
$data .= " \$qs=explode(\".\",e_QUERY);\n";
$data .= " if(isset(\$qs[0]) && in_array(\$qs[0], array('recent','cat','top','score','author','list','content')) ){\n";
$data .= " if(isset(\$qs[1]) && is_numeric(\$qs[1])){\n";
$data .= " \$check = intval(\$qs[1]);\n";
$data .= " }elseif(isset(\$qs[1]) && \$qs[1]=='list'){\n";
$data .= " if(isset(\$qs[2]) && is_numeric(\$qs[2])){\n";
$data .= " \$check = intval(\$qs[2]);\n";
$data .= " }\n";
$data .= " }\n";
$data .= " //content item\n";
$data .= " if(isset(\$qs[0]) && \$qs[0]=='content' && is_numeric(\$qs[1])){\n";
$data .= " if(\$sql -> db_Select('pcontent', \"content_parent\", \" content_id='\".intval(\$check).\"' \")){\n";
$data .= " \$row = \$sql -> db_Fetch();\n";
$data .= " \$check = \$row['content_parent'];\n";
$data .= " }\n";
$data .= " }\n";
$data .= " }\n";
$data .= " }\n";
$data .= " }\n";
$data .= " }\n";
$data .= " if(is_numeric(\$check) && in_array(\$check, array_keys(\$array)) ){\n";
$data .= " //continue\n";
$data .= " }else{\n";
$data .= " //do not show menu, so return empty\n";
$data .= " return;\n";
$data .= " }\n";
$data .= "}\n";
$data .= "// end menu visibility --------------------------------------------------\n";
$data .= "\n";
$data .= "global \$icon, \$bullet, \$row, \$CMT_CATEGORY, \$CMT_RECENT;\n";
$data .= "\$icon = \$tp->parseTemplate(\"{CM_MENU_LINKS_ICON}\",TRUE,\$content_shortcodes);\n";
$data .= "\n";
$data .= "//##### CATEGORY LIST --------------------------------------------------\n";
$data .= "\$CMT_CATEGORY = '';\n";
$data .= "if(!\$content_pref[\"content_menu_cat_dropdown\"]){\n";
$data .= " if(\$content_pref[\"content_menu_cat\"]){\n";
$data .= " \$newparent = \"\";\n";
$data .= " \$checkid = \"\";\n";
$data .= " \$newarray = array_merge_recursive(\$array);\n";
$data .= " for(\$a=0;\$a<count(\$newarray);\$a++){\n";
$data .= " for(\$b=0;\$b<count(\$newarray[\$a]);\$b++){\n";
$data .= " \$newparent[\$newarray[\$a][\$b]] = \$newarray[\$a][\$b+1];\n";
$data .= " if( (\$content_pref[\"content_menu_cat_main\"] && \$newarray[\$a][\$b] == \$menutypeid) || \$newarray[\$a][\$b] != \$menutypeid ){\n";
$data .= " \$checkid .= \" content_id = '\".\$newarray[\$a][\$b].\"' OR \";\n";
$data .= " }\n";
$data .= " \$b++;\n";
$data .= " }\n";
$data .= " }\n";
$data .= " \$checkid = substr(\$checkid,0,-3);\n";
$data .= " if(!is_object(\$sql)){ \$sql = new db; }\n";
$data .= " if(\$sql -> db_Select(\$plugintable, \"content_id, content_heading, content_icon\", \" \".\$checkid.\" ORDER BY SUBSTRING_INDEX(content_order, '.', 1)+0 \")){\n";
$data .= " \$CMT_CATEGORY .= \$tp->parseTemplate(\$CONTENT_MENU_CATEGORY_START,TRUE,\$content_shortcodes);\n";
$data .= " while(\$row = \$sql -> db_Fetch()){\n";
$data .= " \$CMT_CATEGORY .= \$tp->parseTemplate(\$CONTENT_MENU_CATEGORY_TABLE,TRUE,\$content_shortcodes);\n";
$data .= " }\n";
$data .= " \$CMT_CATEGORY .= \$tp->parseTemplate(\$CONTENT_MENU_CATEGORY_END,TRUE,\$content_shortcodes);\n";
$data .= " }\n";
$data .= " }\n";
$data .= "}\n";
$data .= "\n";
$data .= "//##### RECENT --------------------------------------------------\n";
$data .= "\$CMT_RECENT = '';\n";
$data .= "if(\$content_pref[\"content_menu_recent\"]){\n";
$data .= " //prepare query paramaters\n";
$data .= " \$validparent = implode(\",\", array_keys(\$array));\n";
$data .= " \$qry = \" content_parent REGEXP '\".\$aa -> CONTENTREGEXP(\$validparent).\"' \";\n";
$data .= "\n";
$data .= " if(\$resultitem = \$sql -> db_Select(\$plugintable, \"content_id, content_heading, content_subheading, content_author, content_icon, content_datestamp\", \"content_refer !='sa' AND \".\$qry.\" \".\$datequery.\" AND content_class REGEXP '\".e_CLASS_REGEXP.\"' ORDER BY content_datestamp DESC LIMIT 0,\".\$content_pref[\"content_menu_recent_number\"] )){\n";
$data .= "\n";
$data .= " \$CMT_RECENT .= \$tp->parseTemplate(\$CONTENT_MENU_RECENT_START,TRUE,\$content_shortcodes);\n";
$data .= " while(\$row = \$sql -> db_Fetch()){\n";
$data .= " \$CMT_RECENT .= \$tp->parseTemplate(\$CONTENT_MENU_RECENT_TABLE,TRUE,\$content_shortcodes);\n";
$data .= " }\n";
$data .= " \$CMT_RECENT .= \$tp->parseTemplate(\$CONTENT_MENU_RECENT_END,TRUE,\$content_shortcodes);\n";
$data .= " }\n";
$data .= "}\n";
$data .= "\n";
$data .= "//##### PARSE THE MENU --------------------------------------------------\n";
$data .= "\$text = \$tp->parseTemplate(\$CONTENT_MENU,TRUE,\$content_shortcodes);\n";
$data .= "\n";
$data .= "if(!isset(\$text)){ \$text = CONTENT_MENU_LAN_1; }\n";
$data .= "\$caption = (\$content_pref[\"content_menu_caption\"] != \"\" ? \$content_pref[\"content_menu_caption\"] : CONTENT_MENU_LAN_0.\" \".\$menuname);\n";
$data .= "\$ns -> tablerender(\$caption, \$text, '$menufile');\n";
$data .= "\n";
$data .= "?".chr(62);
if(file_exists($plugindir."menus/".$menufile."_menu.php")){
$message = "";
}else{
$fp = @fopen($plugindir."menus/".$menufile."_menu.php", "w");
if (!@fwrite($fp, $data)) {
$message = CONTENT_ADMIN_CAT_LAN_51;
} else {
fclose($fp);
$message = CONTENT_ADMIN_CAT_LAN_50;
}
}
return $message;
}
} //close class
?>