>
------------------------------------------------------------------------------
See main.inc.php for release information
LMT_AIP : classe to manage plugin admin pages
--------------------------------------------------------------------------- */
include_once('lmt_root.class.inc.php');
include_once(PHPWG_PLUGINS_PATH.'GrumPluginClasses/classes/GPCTranslate.class.inc.php');
include_once(PHPWG_PLUGINS_PATH.'GrumPluginClasses/classes/GPCTables.class.inc.php');
include_once(PHPWG_PLUGINS_PATH.'GrumPluginClasses/classes/genericjs.class.inc.php');
include_once(PHPWG_PLUGINS_PATH.'GrumPluginClasses/classes/GPCPagesNavigation.class.inc.php');
include_once(PHPWG_ROOT_PATH.'admin/include/tabsheet.class.php');
class LMT_AIP extends LMT_root
{
protected $google_translate;
protected $tabsheet;
public function __construct($prefixeTable, $filelocation)
{
parent::__construct($prefixeTable, $filelocation);
$this->loadConfig();
$this->initEvents();
$this->tabsheet = new tabsheet();
$this->tabsheet->add('list',
l10n('lmt_list'),
$this->getAdminLink()."&f_tabsheet=list");
$this->tabsheet->add('manage',
l10n('lmt_manage'),
$this->getAdminLink()."&f_tabsheet=manage");
$this->tabsheet->add('manageaut',
l10n('lmt_manageaut'),
$this->getAdminLink()."&f_tabsheet=manageaut");
$this->tabsheet->add('config',
l10n('lmt_config'),
$this->getAdminLink()."&f_tabsheet=config");
$this->tabsheet->add('help',
l10n('lmt_help'),
$this->getAdminLink()."&f_tabsheet=help");
// don't create the google_translate object everytime, otherwise google's js
// code is always included in the header even if translation functionalities
// aren't needed
// translation is needed only if we are in a ajax request
/*if((isset($_POST['fmypolls_gomodify_translation'])||isset($_POST['fmypolls_goadd_translation'])))
{
$this->google_translate = new GPCTranslate();
}
*/
}
public function __destruct()
{
unset($this->google_translate);
unset($this->tabsheet);
parent::__destruct();
}
/*
initialize events call for the plugin
*/
public function initEvents()
{
parent::initEvents();
add_event_handler('loc_end_page_header', array(&$this->css, 'applyCSS'));
add_event_handler('loc_end_page_header', array(&$this->css_icn, 'applyCSS'));
}
/*
display administration page
*/
public function manage()
{
global $template;
$this->return_ajax_content();
$template->set_filename('plugin_admin_content', dirname(__FILE__)."/admin/lmt_admin.tpl");
if(!isset($_REQUEST['f_tabsheet']))
{
$_REQUEST['f_tabsheet']='list';
}
switch($_REQUEST['f_tabsheet'])
{
case 'list':
$this->display_list_page();
break;
case 'manage':
$this->display_manage_page();
break;
case 'manageaut':
$this->display_manageaut_page();
break;
case 'managedoc':
$this->display_managedoc_page();
break;
case 'help':
$this->display_help_page();
break;
case 'config':
$this->display_config_page();
break;
}
$this->tabsheet->select($_REQUEST['f_tabsheet']);
$this->tabsheet->assign();
$selected_tab=$this->tabsheet->get_selected();
$template->assign($this->tabsheet->get_titlename(), "[".$selected_tab['caption']."]");
$template_plugin["LMT_VERSION"] = "".$this->getPluginName()." ".l10n('lmt_release').LMT_VERSION;
$template_plugin["LMT_PAGE"] = $_REQUEST['f_tabsheet'];
$template_plugin["LMT_TITLE"] = "";
$template->assign('plugin', $template_plugin);
$template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content');
}
/*
return ajax content
*/
protected function return_ajax_content()
{
global $ajax, $template;
if(isset($_REQUEST['ajaxfct']))
{
//$this->debug("AJAXFCT:".$_REQUEST['ajaxfct']);
$result="
An error has occured
";
switch($_REQUEST['ajaxfct'])
{
case 'img_list':
$result=$this->ajax_img_list($_REQUEST['numpage']);
break;
case 'manage_list':
$result=$this->ajax_manage_list($_REQUEST['numpage']);
break;
}
GPCAjax::returnResult($result);
}
}
/*
manage display of config page & save config
*/
protected function display_config_page()
{
$languages=get_languages();
if(!$this->adviser_abort())
{
if(isset($_POST['submit_save_config']))
{
foreach($this->config as $key => $val)
{
if(is_array($val))
{
foreach($languages as $key2 => $val2)
{
if(isset($_REQUEST[str2url('f_'.$key.'_'.$key2)]))
{
$this->config[$key][$key2] = htmlspecialchars(stripslashes($_REQUEST[str2url('f_'.$key.'_'.$key2)]), ENT_QUOTES);
}
}
}
else
{
if(isset($_REQUEST['f_'.$key]))
{
$this->config[$key] = $_REQUEST['f_'.$key];
}
}
}
$this->displayResult(l10n('lmt_save_config'), $this->saveConfig());
}
}
$this->display_config();
}
/*
*/
protected function display_help_page()
{
global $template;
$template->set_filename('body_page',
dirname($this->getFileLocation()).'/admin/plugin_admin_help.tpl');
$template->assign('imgdir', LMT_PATH."img/");
$template->assign_var_from_handle('LMT_BODY_PAGE', 'body_page');
}
/*
*/
protected function display_list_page()
{
global $template, $conf, $user;
$template->set_filename('body_page',
dirname($this->getFileLocation()).'/admin/plugin_admin_list.tpl');
if(!isset($_REQUEST['filter']) ||
!($_REQUEST['filter']=="BY" ||
$_REQUEST['filter']=="BY-SA" ||
$_REQUEST['filter']=="BY-ND" ||
$_REQUEST['filter']=="BY-NC-ND" ||
$_REQUEST['filter']=="BY-NC-SA" ||
$_REQUEST['filter']=="BY-NC" ||
$_REQUEST['filter']=="CRIGHT" ||
$_REQUEST['filter']=="CLEFT"
))
{
$_REQUEST['filter']='';
}
$datas=array(
"LMT_AJAX_URL_LIST" => $this->getAdminLink().'&ajaxfct=img_list&numpage='
);
$filter_list_selected = '';
$filter_list_values = array_slice($this->licences,0,count($this->licences)-1);
$filter_list_labels = array();
foreach($filter_list_values as $key=>$val)
{
$filter_list_labels[] = "[".l10n("lmt_lbl_cc_s-".strtolower($val))."] ".l10n("lmt_lbl_cc-".strtolower($val));
if($val==$_REQUEST['filter'])
{
$filter_list_selected = $val;
}
}
$filter_list_values = array_merge(array(''), $filter_list_values);
$filter_list_labels = array_merge(array(l10n('lmt_nofilter')), $filter_list_labels);
$default_licence = l10n("lmt_lbl_cc-".strtolower($this->config['lmt_licence_default']));
$default_licence_img =LMT_PATH."img/".strtolower($this->config['lmt_licence_default'])."_80x15.png";
$results=true;
if(isset($_POST["submit_replace_caddie"]))
{
$sql="DELETE FROM ".CADDIE_TABLE." WHERE user_id='".$user['id']."'";
$result=pwg_query($sql);
($result)?$results=true:$results=false;
}
if(isset($_POST["submit_add_to_caddie"]) || isset($_POST["submit_replace_caddie"]))
{
$sql="REPLACE INTO ".CADDIE_TABLE."
SELECT '".$user['id']."', it.id FROM ".IMAGES_TABLE." it, ".$this->tables["images"]." lmti
WHERE it.id = lmti.image_id";
if($_REQUEST['filter']!="")
{
$sql.=" AND lmti.licence_type='".$_REQUEST['filter']."'";
}
$result=pwg_query($sql);
if((!$results)||(!$result))
{
$this->displayResult(l10n("lmt_caddie_not_updated"), false);
}
else
{
$this->displayResult(l10n("lmt_caddie_updated"), true);
}
}
$template->assign('datas', $datas);
$template->assign('default_licence', $default_licence);
$template->assign('default_licence_img', $default_licence_img);
$template->assign('filter_list_values', $filter_list_values);
$template->assign('filter_list_labels', $filter_list_labels);
$template->assign('filter_list_selected', $filter_list_selected);
$template->assign_var_from_handle('LMT_BODY_PAGE', 'body_page');
}
/*
*/
protected function display_manage_page()
{
global $template, $conf, $user;
/*
apply licence
*/
if(isset($_POST['submit_apply_licence']))
{
$results=array("", "");
$lst=array();
foreach($_POST as $key => $val)
{
if((substr($key,0,2)=="fn")&&($val=="1")) $lst[]=substr($key,2);
}
if(count($lst)>0)
{
if($_POST['manage_caddie']!="napp_clear_selected")
{
if($_POST['licence']=='DEFAULT')
{
$sql="DELETE FROM ".$this->tables['images']."
WHERE image_id IN (".implode(",", $lst).")";
}
else
{
$sql="REPLACE INTO ".$this->tables['images']."
SELECT id, '".$_POST['licence']."', '".$_POST['author']."'
FROM ".IMAGES_TABLE."
WHERE id IN (".implode(",", $lst).")";
}
$result=pwg_query($sql);
($result)?$results[0].=l10n("lmt_add_licence_ok")."
":$results[1].=l10n("lmt_add_licence_ko")."
";
}
switch($_POST['manage_caddie'])
{
case 'app_clear':
$sql="DELETE FROM ".CADDIE_TABLE." WHERE user_id = '".$user['id']."'";
$result=pwg_query($sql);
($result)?$results[0].=l10n("lmt_clear_caddie_ok")."
":$results[1].=l10n("lmt_clear_caddie_ko")."
";
break;
case 'app_clear_selected':
case 'napp_clear_selected':
$sql="DELETE FROM ".CADDIE_TABLE."
WHERE user_id = '".$user['id']."'
AND element_id IN (".implode(",", $lst).")";
$result=pwg_query($sql);
($result)?$results[0].=l10n("lmt_clear_si_caddie_ok")."
":$results[1].=l10n("lmt_clear_si_caddie_ko")."
";
break;
}
if($results[0]!="")
{
$this->displayResult($results[0], true);
}
if($results[1]!="")
{
$this->displayResult($results[1], false);
}
}
else
{
$this->displayResult(l10n("lmt_no_element_selected"), false);
}
}
$template->set_filename('body_page',
dirname($this->getFileLocation()).'/admin/plugin_admin_manage.tpl');
$datas=array(
"LMT_AJAX_URL_LIST" => $this->getAdminLink().'&ajaxfct=manage_list&numpage='
);
if(!isset($_REQUEST['select']))
{
$_REQUEST['select']="caddie";
}
$sql="SELECT count(element_id) FROM ".CADDIE_TABLE." WHERE user_id = '".$user['id']."'";
$result=pwg_query($sql);
$nbphotos=pwg_db_fetch_row($result);
$author_list_values = array(0);
$author_list_labels = array(l10n("lmt_no_author"));
$sql="SELECT * FROM ".$this->tables["licence_author"]." ORDER BY id";
$result=pwg_query($sql);
if($result)
{
while($row=pwg_db_fetch_assoc($result))
{
$author_list_values[]=$row['id'];
$author_list_labels[]=$row['text1']." ".$row['text2'];
}
}
$licences_list_values = array();
$licences_list_values = $this->licences;
$licences_list_labels = array();
foreach($licences_list_values as $key=>$val)
{
$licences_list_labels[] = "[".l10n("lmt_lbl_cc_s-".strtolower($val))."] ".l10n("lmt_lbl_cc-".strtolower($val));
}
/* $licences_list_values = array_merge(array('DEFAULT'), $licences_list_values);
$licences_list_labels = array_merge(array(l10n('lmt_bydefault')), $licences_list_labels);*/
$selectlist_list_values=array("-", "all", "none", "invert");
$selectlist_list_values=array_merge($selectlist_list_values, $licences_list_values);
$selectlist_list_labels=array(
l10n("lmt_choose_select"),
l10n("lmt_select_all"),
l10n("lmt_select_none"),
l10n("lmt_select_invert")
);
$selectlist_list_labels=array_merge($selectlist_list_labels, $licences_list_labels);
$template->assign('datas', $datas);
$template->assign('nbphotos', $nbphotos[0]);
$template->assign('selectlist_list_values', $selectlist_list_values);
$template->assign('selectlist_list_labels', $selectlist_list_labels);
$template->assign('filter_list_selected', "");
$template->assign('licences_list_values', $licences_list_values);
$template->assign('licences_list_labels', $licences_list_labels);
$template->assign('licences_list_selected', "");
$template->assign('author_list_values', $author_list_values);
$template->assign('author_list_labels', $author_list_labels);
$template->assign_var_from_handle('LMT_BODY_PAGE', 'body_page');
}
/*
display config page
*/
protected function display_config()
{
global $template, $lang;
$template->set_filename('body_page',
dirname($this->getFileLocation()).'/admin/plugin_admin_config.tpl');
$datas=array(
"img_directory" => LMT_PATH."img/"
);
foreach($this->config as $key => $val)
{
if(!is_array($val))
{
$datas[$key]=$val;
}
}
$lmt_yesno_values=array("y", "n");
$lmt_yesno_labels=array(l10n("lmt_yesno_y"), l10n("lmt_yesno_n"));
$lmt_licence_logo_values=array("80x15", "88x31", "text");
$lmt_licence_logo_labels=array(l10n("lmt_icon_80x15"), l10n("lmt_icon_88x31"), l10n("lmt_icon_text"));
$datas['lmt_redirect_urls']=array();
$lmt_licence_default_values = array_slice($this->licences,0,count($this->licences)-1);
$lmt_licence_default_labels = array();
$tmp=array();
foreach($lmt_licence_default_values as $key=>$val)
{
$lmt_licence_default_labels[] = "[".l10n("lmt_lbl_cc_s-".strtolower($val))."] ".l10n("lmt_lbl_cc-".strtolower($val));
$tmp[]="'".str2url("ilmt_redirect_url-".strToLower($val))."'";
$datas['lmt_redirect_urls'][str2url('lmt_redirect_url-'.strToLower($val))]=array(
'text' => l10n("lmt_lbl_cc_s-".strToLower($val)),
'langs' => array()
);
}
$datas['objnames2'] = implode(",", $tmp);
//langs list & texts
$datas['lmt_warning_texts']=array();
$lmt_language_list=array();
$lmt_language_list_values=array();
$lmt_language_list_labels=array();
$lmt_language_selected=str2url(get_default_language());
$languages=get_languages();
foreach($languages as $key => $val)
{
$lmt_language_list_values[]=str2url($key);
$lmt_language_list_labels[]=$val;
$datas['lmt_warning_texts'][]=array(
'lang' => str2url($key),
'text' => $this->config['lmt_warning_texts'][$key]
);
foreach($lmt_licence_default_values as $key2 => $val2)
{
$datas['lmt_redirect_urls'][str2url('lmt_redirect_url-'.strToLower($val2))]['langs'][str2url($key)]=
$this->config['lmt_redirect_url-'.strToLower($val2)][$key];
}
}
$datas['help']=array();
foreach($lang["lmt_help_config"] as $key => $val)
{
$datas['help']['hlp'.$key]=addslashes($val);
}
$lmt_licence_default_author_values=array(0);
$lmt_licence_default_author_labels=array(l10n("lmt_no_author"));
$sql="SELECT * FROM ".$this->tables['licence_author']." ORDER BY id";
$result=pwg_query($sql);
if($result)
{
while($row=pwg_db_fetch_assoc($result))
{
$lmt_licence_default_author_values[]=$row['id'];
$lmt_licence_default_author_labels[]=$row['text1']." ".$row['text2'];
}
}
$template->assign('datas', $datas);
$template->assign('extended_code', $this->generate_js_licence_author());
$template->assign('lmt_yesno_values', $lmt_yesno_values);
$template->assign('lmt_yesno_labels', $lmt_yesno_labels);
$template->assign('lmt_licence_logo_values', $lmt_licence_logo_values);
$template->assign('lmt_licence_logo_labels', $lmt_licence_logo_labels);
$template->assign('lmt_licence_default_values', $lmt_licence_default_values);
$template->assign('lmt_licence_default_labels', $lmt_licence_default_labels);
$template->assign('lmt_licence_default_author_values', $lmt_licence_default_author_values);
$template->assign('lmt_licence_default_author_labels', $lmt_licence_default_author_labels);
$template->assign('lmt_language_list_values', $lmt_language_list_values);
$template->assign('lmt_language_list_labels', $lmt_language_list_labels);
$template->assign('lmt_language_selected', $lmt_language_selected);
$template->assign_var_from_handle('LMT_BODY_PAGE', 'body_page');
} //display_config
/*
*/
protected function display_manageaut_page()
{
global $template, $conf, $user;
if(!isset($_REQUEST['action']))
{
$_REQUEST['action']="list";
}
if(!isset($_REQUEST['id']))
{
$_REQUEST['id']="";
}
/* ------------------------------------------------------------------------
* Add an author
* ---------------------------------------------------------------------- */
if(isset($_POST['submit_add_author']))
{
if($_POST["text1"]!="")
{
$sql="INSERT INTO ".$this->tables["licence_author"]." VALUES('', '". addslashes($_POST["text1"])."', '".addslashes($_POST["text2"])."')";
$result=pwg_query($sql);
if($result)
{
$this->displayResult(l10n("lmt_author_added"), true);
$_REQUEST['action']="list";
}
else
{
$this->displayResult(l10n("lmt_cannot_add_author"), false);
}
}
else
{
$this->displayResult(l10n("lmt_no_text"), false);
}
}
/* ------------------------------------------------------------------------
* Modify an author
* ---------------------------------------------------------------------- */
if(isset($_POST['submit_modify_author']))
{
if($_POST["text1"]!="")
{
$sql="UPDATE ".$this->tables["licence_author"]."
SET text1 = '". addslashes($_POST["text1"])."',
text2 = '".addslashes($_POST["text2"])."'
WHERE id = '".$_POST["id"]."'";
$result=pwg_query($sql);
if($result)
{
$this->displayResult(l10n("lmt_author_modified"), true);
$_REQUEST['action']="list";
}
else
{
$this->displayResult(l10n("lmt_cannot_modify_author"), false);
}
}
else
{
$this->displayResult(l10n("lmt_no_text"), false);
}
}
/* ------------------------------------------------------------------------
* delete an author
* ---------------------------------------------------------------------- */
if($_REQUEST['action']=="delete")
{
$sql="DELETE FROM ".$this->tables['licence_author']." WHERE id = '".$_REQUEST['id']."'";
$result=pwg_query($sql);
if($result)
{
if(pwg_db_changes()==1)
{
$this->displayResult(l10n("lmt_author_deleted"), true);
$sql="UPDATE ".$this->tables["images"]." SET author_id = NULL
WHERE author_id = '".$_REQUEST['id']."'";
$result=pwg_query($sql);
if($result)
{
$nbimages=pwg_db_changes();
if($nbimages>0)
{
$this->displayResult($nbimages." ".l10n("lmt_author_nb_images_updated"), true);
}
}
else
{
$this->displayResult(l10n("lmt_cannot_delete_author"), false);
}
}
else
{
$this->displayResult(l10n("lmt_cannot_delete_author"), false);
}
}
else
{
$this->displayResult(l10n("lmt_cannot_delete_author"), false);
}
$this->display_manageaut_page_list();
}
elseif($_REQUEST['action']=="add")
{
$this->display_manageaut_page_add_modify("add");
}
elseif($_REQUEST['action']=="edit")
{
$this->display_manageaut_page_add_modify("edit");
}
else
{
// list
$this->display_manageaut_page_list();
}
} //display_manageaut
protected function display_manageaut_page_list()
{
global $template;
$template->set_filename('body_page',
dirname($this->getFileLocation()).'/admin/plugin_admin_manageaut.tpl');
$datas=array(
"author_list" => array(),
"img_directory" => LMT_PATH."img/",
"default_licencepublished" => l10n("lmt_lbl_under-".strToLower($this->config['lmt_licence_default'])),
"default_licenceL" => strToLower($this->config['lmt_licence_default']),
"default_licenceU" => l10n("lmt_lbl_cc_s-".strToLower($this->config['lmt_licence_default'])),
"lmt_licence_logo" => $this->config['lmt_licence_logo'],
"nbauthor" => 0,
"add_link" => $this->getAdminLink().'&f_tabsheet=manageaut&action=add'
);
$sql="SELECT * FROM ".$this->tables['licence_author']." ORDER BY id";
$result=pwg_query($sql);
if($result)
{
while($row=pwg_db_fetch_assoc($result))
{
$datas["author_list"][]=array(
"id" => $row['id'],
"text1" => $row['text1'],
"text2" => $row['text2'],
"lnk_delete" => $this->getAdminLink().'&f_tabsheet=manageaut&action=delete&id='.$row['id'],
"lnk_edit" => $this->getAdminLink().'&f_tabsheet=manageaut&action=edit&id='.$row['id']
);
}
$datas["nbauthor"] = count($datas["author_list"]);
}
$template->assign('datas', $datas);
//$template->assign('extended_code', $this->generate_js_licence_author());
$template->assign_var_from_handle('LMT_BODY_PAGE', 'body_page');
}
protected function display_manageaut_page_add_modify()
{
global $template;
$template->set_filename('body_page',
dirname($this->getFileLocation()).'/admin/plugin_admin_manageaut_edit.tpl');
if($_REQUEST["action"]=="edit")
{
$sql="SELECT * FROM ".$this->tables['licence_author']." WHERE id = '".$_REQUEST['id']."'";
$result = pwg_query($sql);
if($result)
{
while($row=pwg_db_fecth_assoc($result))
{
$datas=array(
"action" => "modify",
"id" => $_REQUEST['id'],
"text1" => $row["text1"],
"text2" => $row["text2"]
);
}
}
else
{
$datas=array(
"action" => "add",
"id" => "",
"text1" => "",
"text2" => "",
);
}
}
else
{
$datas=array(
"action" => "add",
"id" => "",
"text1" => "",
"text2" => "",
);
}
$datas["urllist"] = $this->getAdminLink().'&f_tabsheet=manageaut';
$template->assign('datas', $datas);
//$template->assign('extended_code', $this->generate_js_licence_author());
$template->assign_var_from_handle('LMT_BODY_PAGE', 'body_page');
}
/*
manage adviser profile
return true if user is adviser
*/
protected function adviser_abort()
{
if(is_adviser())
{
$this->displayResult(l10n("lmt_adviser_not_allowed"), false);
return(true);
}
return(false);
}
/*
this function return a js to manage licence text
*/
protected function generate_js_licence_author()
{
$local_tpl = new Template(LMT_PATH."admin/", "");
$local_tpl->set_filename('body_page',
dirname($this->getFileLocation()).'/admin/lmt_js.tpl');
$lmt_licence_default_values=array_slice($this->licences,0,count($this->licences)-1);
$datas['shortlicencetext']=array();
foreach($lmt_licence_default_values as $key=>$val)
{
$datas['shortlicencetext'][$val] = array(
"txt" => l10n("lmt_lbl_cc_s-".strtolower($val)),
"published" => l10n("lmt_lbl_under-".strtolower($val))
);
}
$local_tpl->assign("datas",$datas);
return($local_tpl->parse('body_page', true));
}
protected function make_image_data($tmp)
{
$tmp2=array();
for($i=0;$i $tmp['id'][$i],
'name' => $tmp['name'][$i],
'type' => $tmp['type'][$i],
'plinks' => $tmp['plinks'][$i],
'link'=> make_index_url(
array(
'category' => array(
'id' => $tmp['id'][$i],
'name' => $tmp['name'][$i],
'permalink' => $tmp['plinks'][$i])
)
)
);
}
return($tmp2);
}
/* ---------------------------------------------------------------------------
function to manage database manipulation
--------------------------------------------------------------------------- */
/* ---------------------------------------------------------------------------
ajax functions
--------------------------------------------------------------------------- */
protected function ajax_img_list($pagenum)
{
global $conf;
$local_tpl = new Template(LMT_PATH."admin/", "");
$local_tpl->set_filename('body_page',
dirname($this->getFileLocation()).'/admin/plugin_admin_listitems.tpl');
if(!isset($_REQUEST['filter']) ||
!($_REQUEST['filter']=="BY" ||
$_REQUEST['filter']=="BY-SA" ||
$_REQUEST['filter']=="BY-ND" ||
$_REQUEST['filter']=="BY-NC-ND" ||
$_REQUEST['filter']=="BY-NC-SA" ||
$_REQUEST['filter']=="BY-NC" ||
$_REQUEST['filter']=="CRIGHT" ||
$_REQUEST['filter']=="CLEFT"
))
{
$_REQUEST['filter']='';
}
$img_ids=array();
$img_liste = array();
$sql="SELECT SQL_CALC_FOUND_ROWS lmti.*, img.file, img.path, img.tn_ext,
GROUP_CONCAT(cat.id) AS catid,
GROUP_CONCAT(CASE WHEN cat.name IS NULL THEN '' ELSE cat.name END SEPARATOR '@sep@') AS catname,
GROUP_CONCAT(CASE WHEN cat.permalink IS NULL THEN '' ELSE cat.permalink END SEPARATOR '@sep@') AS catpermalink,
GROUP_CONCAT(CASE WHEN cat.dir IS NULL THEN 'V' ELSE 'P' END) AS cattype,
lmtla.text1, lmtla.text2
FROM ".$this->tables["images"]." lmti
LEFT OUTER JOIN ".$this->tables["licence_author"]." lmtla ON lmtla.id = lmti.author_id,
".IMAGES_TABLE." img
LEFT OUTER JOIN ".IMAGE_CATEGORY_TABLE." imgcat ON img.id = imgcat.image_id
LEFT OUTER JOIN ".CATEGORIES_TABLE." cat ON imgcat.category_id = cat.id
WHERE lmti.image_id = img.id ";
if($_REQUEST['filter']!="")
{
$sql.=" AND lmti.licence_type='".$_REQUEST['filter']."'";
}
$sql.=" GROUP BY lmti.image_id ORDER BY cat.id, img.id ";
if($this->config['lmt_list_maxitems']>0)
{
$refdbt = ($pagenum-1)*$this->config['lmt_list_maxitems'];
$sql.=" LIMIT ".$refdbt.", ".$this->config['lmt_list_maxitems'];
}
$result=pwg_query($sql);
if($result)
{
while($row = pwg_db_fetch_assoc($result))
{
$filenfo = pathinfo($row['path']);
preg_match("/(.*)\./i", $filenfo["basename"], $tmp);
$filenfo['filename'] = $tmp[1];
$tmp=array(
'id'=>explode(',',$row['catid']),
'name'=>explode('@sep@',$row['catname']),
'type'=>explode(',',$row['cattype']),
'plinks'=>explode('@sep@',$row['catpermalink']),
'link'=>array()
);
$tmpcat=$this->make_image_data($tmp);
$img_ids[]=$row['image_id'];
$img_liste[]=array(
'id' => $row['image_id'],
'licence' => ($row['licence_type']=="CRIGHT")?l10n("lmt_lbl_cc_s-".strtolower($row['licence_type'])):"",
'licencei' => LMT_PATH."img/".strtolower($row['licence_type'])."_80x15.png",
'aut_text1' => $row['text1'],
'aut_text2' => $row['text2'],
'file' => $row['file'],
'cat' => $tmpcat,
'imglink' => make_picture_url(
array(
'image_id' => $row['image_id'],
'category' => array(
'id' => $tmp['id'][0],
'name' => $tmp['name'][0],
'permalink' => $tmp['plinks'][0])
)
),
'thumb' => $filenfo["dirname"]."/thumbnail/".$conf["prefix_thumbnail"].$filenfo["filename"].".".$row["tn_ext"]
);
}
}
$sql="select FOUND_ROWS()";
$result=pwg_query($sql);
$nb=pwg_db_fetch_row($result);
$GPCPagesNavigation = new GPCPagesNavigation();
$GPCPagesNavigation->setNbItems($nb[0]);
$GPCPagesNavigation->setNbItemsPerPage($this->config['lmt_list_maxitems']);
$GPCPagesNavigation->setCurrentPage($pagenum);
$GPCPagesNavigation->setOptions(array(
"text_prev" => l10n("lmt_nav_prev"),
"text_next" => l10n("lmt_nav_next"),
"text_first" => l10n("lmt_nav_first"),
"text_last" => l10n("lmt_nav_last")
));
$navbar=$GPCPagesNavigation->makeNavigation("loadpage");
if($navbar!="")
{
$navbar=", ".$navbar;
}
$local_tpl->assign('imgliste', $img_liste);
return($nb[0]." ".l10n("lmt_lst_nb_photos").$navbar."#".$local_tpl->parse('body_page', true));
}
protected function ajax_manage_list($pagenum)
{
global $conf, $user;
$local_tpl = new Template(LMT_PATH."admin/", "");
$local_tpl->set_filename('body_page',
dirname($this->getFileLocation()).'/admin/plugin_admin_manageitems.tpl');
if(!isset($_REQUEST['select']))
{
$_REQUEST['select']="caddie";
}
$img_liste = array();
$sql="SELECT SQL_CALC_FOUND_ROWS img.id as image_id, img.file, img.path, img.tn_ext,
GROUP_CONCAT(cat.id) AS catid,
GROUP_CONCAT(CASE WHEN cat.name IS NULL THEN '' ELSE cat.name END SEPARATOR '@sep@') AS catname,
GROUP_CONCAT(CASE WHEN cat.permalink IS NULL THEN '' ELSE cat.permalink END SEPARATOR '@sep@') AS catpermalink,
GROUP_CONCAT(CASE WHEN cat.dir IS NULL THEN 'V' ELSE 'P' END) AS cattype,
lmti.licence_type, lmtla.text1, lmtla.text2
FROM ".CADDIE_TABLE." caddie,
(".IMAGES_TABLE." img
LEFT OUTER JOIN ".IMAGE_CATEGORY_TABLE." imgcat ON img.id = imgcat.image_id
LEFT OUTER JOIN ".CATEGORIES_TABLE." cat ON imgcat.category_id = cat.id)
LEFT OUTER JOIN ".$this->tables["images"]." AS lmti ON img.id = lmti.image_id
LEFT OUTER JOIN ".$this->tables["licence_author"]." lmtla ON lmtla.id = lmti.author_id
WHERE img.id = caddie.element_id
AND caddie.user_id = '".$user['id']."'
GROUP BY img.id
ORDER BY cat.id, img.id ";
if($this->config['lmt_list_maxitems']>0)
{
$refdbt = ($pagenum-1)*$this->config['lmt_list_maxitems'];
$sql.=" LIMIT ".$refdbt.", ".$this->config['lmt_list_maxitems'];
}
$result=pwg_query($sql);
if($result)
{
while($row = pwg_db_fetch_assoc($result))
{
$filenfo = pathinfo($row['path']);
preg_match("/(.*)\./i", $filenfo["basename"], $tmp);
$filenfo['filename'] = $tmp[1];
$tmp=array(
'id'=>explode(',',$row['catid']),
'name'=>explode('@sep@',$row['catname']),
'type'=>explode(',',$row['cattype']),
'plinks'=>explode('@sep@',$row['catpermalink']),
'link'=>array()
);
$tmpcat=$this->make_image_data($tmp);
$img_liste[]=array(
'id' => $row['image_id'],
'licence' => ($row['licence_type']=="")?"DEFAULT":$row['licence_type'],
'licencei' => ($row['licence_type']=="")?"":LMT_PATH."img/".strtolower($row['licence_type'])."_80x15.png",
'aut_text1' => $row['text1'],
'aut_text2' => $row['text2'],
'file' => $row['file'],
'cat' => $tmpcat,
'imglink' => make_picture_url(
array(
'image_id' => $row['image_id'],
'category' => array(
'id' => $tmp['id'][0],
'name' => $tmp['name'][0],
'permalink' => $tmp['plinks'][0])
)
),
'thumb' => $filenfo["dirname"]."/thumbnail/".$conf["prefix_thumbnail"].$filenfo["filename"].".".$row["tn_ext"]
);
}
}
$sql="select FOUND_ROWS()";
$result=pwg_query($sql);
$nb=pwg_db_fetch_row($result);
$GPCPagesNavigation = new GPCPagesNavigation();
$GPCPagesNavigation->setNbItems($nb[0]);
$GPCPagesNavigation->setNbItemsPerPage($this->config['lmt_list_maxitems']);
$GPCPagesNavigation->setCurrentPage($pagenum);
$GPCPagesNavigation->setOptions(array(
"text_prev" => l10n("lmt_nav_prev"),
"text_next" => l10n("lmt_nav_next"),
"text_first" => l10n("lmt_nav_first"),
"text_last" => l10n("lmt_nav_last")
));
$navbar=$GPCPagesNavigation->makeNavigation("loadpage");
if($navbar!="")
{
$navbar=", ".$navbar;
}
$local_tpl->assign('imgliste', $img_liste);
return($nb[0]." ".l10n("lmt_lst_nb_photos").$navbar."#".$local_tpl->parse('body_page', true));
}
} //class
?>