mirror of
https://github.com/e107inc/e107.git
synced 2025-01-17 04:38:27 +01:00
1089 lines
30 KiB
PHP
1089 lines
30 KiB
PHP
<?php
|
|
/*
|
|
* e107 website system
|
|
*
|
|
* Copyright (C) 2008-2013 e107 Inc (e107.org)
|
|
* Released under the terms and conditions of the
|
|
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
|
*
|
|
* Plugin Administration - gsitemap
|
|
*
|
|
*/
|
|
require_once(__DIR__.'/../../class2.php');
|
|
if(!getperms("P") || !e107::isInstalled('gsitemap'))
|
|
{
|
|
e107::redirect('admin');
|
|
exit();
|
|
}
|
|
//require_once(e_ADMIN."auth.php");
|
|
//require_once(e_HANDLER."userclass_class.php");
|
|
|
|
e107::lan('gsitemap',true);
|
|
e107::css('inline', '#admin-gsitemap-main-instructions .block-text ol > li { padding:1rem }');
|
|
|
|
|
|
class gsitemap_adminArea extends e_admin_dispatcher
|
|
{
|
|
|
|
protected $modes = array(
|
|
|
|
'main' => array(
|
|
'controller' => 'gsitemap_ui',
|
|
'path' => null,
|
|
'ui' => 'gsitemap_form_ui',
|
|
'uipath' => null
|
|
),
|
|
|
|
|
|
);
|
|
|
|
|
|
protected $adminMenu = array(
|
|
|
|
'main/list' => array('caption'=> LAN_MANAGE, 'perm' => 'P'),
|
|
'main/create' => array('caption'=> GSLAN_22, 'perm' => 'P'),
|
|
|
|
'main/div0' => array('divider'=> true),
|
|
'main/import' => array('caption'=> 'Import', 'perm' => 'P'),
|
|
'main/instructions' => array('caption'=> 'Instructions', 'perm' => 'P'),
|
|
|
|
);
|
|
|
|
protected $adminMenuAliases = array(
|
|
'main/edit' => 'main/list'
|
|
);
|
|
|
|
protected $menuTitle = LAN_PLUGIN_GSITEMAP_NAME;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
class gsitemap_ui extends e_admin_ui
|
|
{
|
|
|
|
protected $pluginTitle = LAN_PLUGIN_GSITEMAP_NAME;
|
|
protected $pluginName = 'gsitemap';
|
|
// protected $eventName = 'gsitemap-gsitemap'; // remove comment to enable event triggers in admin.
|
|
protected $table = 'gsitemap';
|
|
protected $pid = 'gsitemap_id';
|
|
protected $perPage = 10;
|
|
protected $batchDelete = true;
|
|
protected $batchExport = true;
|
|
protected $batchCopy = true;
|
|
|
|
// protected $sortField = 'somefield_order';
|
|
// protected $sortParent = 'somefield_parent';
|
|
// protected $treePrefix = 'somefield_title';
|
|
|
|
protected $tabs = array(LAN_GENERAL,LAN_ADVANCED); // Use 'tab'=>0 OR 'tab'=>1 in the $fields below to enable.
|
|
|
|
// protected $listQry = "SELECT * FROM `#tableName` WHERE field != '' "; // Example Custom Query. LEFT JOINS allowed. Should be without any Order or Limit.
|
|
|
|
protected $listOrder = 'gsitemap_id DESC';
|
|
|
|
protected $fields = array (
|
|
'checkboxes' => array ( 'title' => '', 'type' => null, 'data' => null, 'width' => '5%', 'thclass' => 'center', 'forced' => true, 'class' => 'center', 'toggle' => 'e-multiselect', 'readParms' => array (), 'writeParms' => array (),),
|
|
'gsitemap_id' => array ( 'title' => LAN_ID, 'type'=>'number', 'data' => 'int', 'width' => '5%', 'help' => '', 'readParms' => array (), 'writeParms' => array (), 'class' => 'left', 'thclass' => 'left',),
|
|
'gsitemap_name' => array ( 'title' => LAN_TITLE, 'type' => 'text', 'data' => 'safestr', 'width' => 'auto', 'inline' => true, 'help' => '', 'readParms' => array (), 'writeParms' => array ('size'=>'xxlarge'), 'class' => 'left', 'thclass' => 'left',),
|
|
'gsitemap_url' => array ( 'title' => LAN_URL, 'type' => 'url', 'data' => 'safestr', 'width' => 'auto', 'inline' => true, 'help' => '', 'readParms' => array (), 'writeParms' => array ('size'=>'xxlarge'), 'class' => 'left', 'thclass' => 'left',),
|
|
'gsitemap_table' => array ( 'title' => 'Table', 'tab'=>1, 'type' => 'text', 'data' => 'safestr', 'width' => 'auto', 'filter' => true, 'help' => '', 'readParms' => array (), 'writeParms' => array (), 'class' => 'left', 'thclass' => 'left', 'batch' => false,),
|
|
'gsitemap_table_id' => array ( 'title' => LAN_ID, 'tab'=>1,'type' => 'number', 'data' => 'int', 'width' => '5%', 'readonly' => false, 'help' => '', 'readParms' => array (), 'writeParms' => array (), 'class' => 'left', 'thclass' => 'left',),
|
|
'gsitemap_lastmod' => array ( 'title' => GSLAN_27, 'tab'=>1, 'type' => 'datestamp', 'readonly'=>2, 'data' => 'int', 'width' => 'auto', 'help' => '', 'readParms' => array (), 'writeParms' => array (), 'class' => 'left', 'thclass' => 'left', 'filter' => false, 'batch' => true,),
|
|
'gsitemap_freq' => array ( 'title' => GSLAN_28, 'type' => 'dropdown', 'data' => 'safestr', 'width' => 'auto', 'help' => '', 'readParms' => array (), 'writeParms' => array (), 'class' => 'left', 'thclass' => 'left', 'filter' => true, 'batch' => true,),
|
|
'gsitemap_priority' => array ( 'title' => 'Priority', 'type' => 'method', 'data' => 'safestr', 'width' => 'auto', 'help' => '', 'readParms' => array (), 'writeParms' => array (), 'class' => 'left', 'thclass' => 'left', 'filter' => true, 'batch' => true,),
|
|
'gsitemap_cat' => array ( 'title' => LAN_CATEGORY, 'tab'=>1, 'type' => 'text', 'data' => 'safestr', 'width' => 'auto', 'batch' => true, 'filter' => true, 'help' => '', 'readParms' => array (), 'writeParms' => array (), 'class' => 'left', 'thclass' => 'left',),
|
|
'gsitemap_order' => array ( 'title' => LAN_ORDER, 'type' => 'number', 'data' => 'int', 'width' => 'auto', 'help' => '', 'readParms' => array (), 'writeParms' => array (), 'class' => 'left', 'thclass' => 'left',),
|
|
'gsitemap_img' => array ( 'title' => LAN_IMAGE, 'type' => 'image', 'data' => 'safestr', 'width' => 'auto', 'help' => '', 'readParms' => 'thumb=80x80', 'writeParms' => array (), 'class' => 'left', 'thclass' => 'left',),
|
|
'gsitemap_active' => array ( 'title' => LAN_VISIBILITY, 'type' => 'userclass', 'data' => 'int', 'width' => 'auto', 'filter' => true, 'help' => '', 'readParms' => array (), 'writeParms' => array (), 'class' => 'left', 'thclass' => 'left',),
|
|
'options' => array ( 'title' => LAN_OPTIONS, 'type' => null, 'data' => null, 'width' => '10%', 'thclass' => 'center last', 'class' => 'center last', 'forced' => true, 'readParms' => array (), 'writeParms' => array (),),
|
|
);
|
|
|
|
protected $fieldpref = array('gsitemap_name','gsitemap_url','gsitemap_lastmod','gsitemap_freq','gsitemap_priority');
|
|
|
|
|
|
// protected $preftabs = array('General', 'Other' );
|
|
protected $prefs = array(
|
|
);
|
|
|
|
protected $freqList = array
|
|
(
|
|
"always" => GSLAN_11,
|
|
"hourly" => GSLAN_12,
|
|
"daily" => GSLAN_13,
|
|
"weekly" => GSLAN_14,
|
|
"monthly" => GSLAN_15,
|
|
"yearly" => GSLAN_16,
|
|
"never" => LAN_NEVER
|
|
);
|
|
|
|
|
|
public function init()
|
|
{
|
|
// This code may be removed once plugin development is complete.
|
|
if(!e107::isInstalled('gsitemap'))
|
|
{
|
|
e107::getMessage()->addWarning("This plugin is not yet installed. Saving and loading of preference or table data will fail.");
|
|
}
|
|
|
|
// Set drop-down values (if any).
|
|
$this->fields['gsitemap_table']['writeParms']['optArray'] = array('gsitemap_table_0','gsitemap_table_1', 'gsitemap_table_2'); // Example Drop-down array.
|
|
$this->fields['gsitemap_cat']['writeParms']['optArray'] = array('gsitemap_cat_0','gsitemap_cat_1', 'gsitemap_cat_2'); // Example Drop-down array.
|
|
$this->fields['gsitemap_freq']['writeParms']['optArray'] = $this->freqList;
|
|
|
|
|
|
if(!empty($_POST['import_links']))
|
|
{
|
|
$this->importLink();
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* @return array
|
|
*/
|
|
|
|
// ------- Customize Create --------
|
|
|
|
public function beforeCreate($new_data,$old_data)
|
|
{
|
|
return $new_data;
|
|
}
|
|
|
|
public function afterCreate($new_data, $old_data, $id)
|
|
{
|
|
// do something
|
|
}
|
|
|
|
public function onCreateError($new_data, $old_data)
|
|
{
|
|
// do something
|
|
}
|
|
|
|
|
|
// ------- Customize Update --------
|
|
|
|
public function beforeUpdate($new_data, $old_data, $id)
|
|
{
|
|
return $new_data;
|
|
}
|
|
|
|
public function afterUpdate($new_data, $old_data, $id)
|
|
{
|
|
// do something
|
|
}
|
|
|
|
public function onUpdateError($new_data, $old_data, $id)
|
|
{
|
|
// do something
|
|
}
|
|
|
|
// left-panel help menu area. (replaces e_help.php used in old plugins)
|
|
public function renderHelp()
|
|
{
|
|
|
|
}
|
|
|
|
public function importPage()
|
|
{
|
|
|
|
|
|
|
|
global $PLUGINS_DIRECTORY;
|
|
|
|
$ns = e107::getRender();
|
|
$sql = e107::getDb();
|
|
//$sql2 = e107::getDb('sql2'); not used?
|
|
$frm = e107::getForm();
|
|
$mes = e107::getMessage();
|
|
|
|
$existing = array();
|
|
$sql->select("gsitemap");
|
|
while($row = $sql->fetch())
|
|
{
|
|
$existing[] = $row['gsitemap_name'];
|
|
}
|
|
|
|
|
|
$importArray = array();
|
|
|
|
/* sitelinks ... */
|
|
$sql->select("links", "*", "ORDER BY link_order ASC", "no-where");
|
|
$nfArray = $sql->db_getList();
|
|
foreach($nfArray as $row)
|
|
{
|
|
if(!in_array($row['link_name'], $existing))
|
|
{
|
|
$importArray[] = array(
|
|
'table' => 'links',
|
|
'id' => $row['link_id'],
|
|
'name' => $row['link_name'],
|
|
'url' => !empty($row['link_owner']) && !empty($row['link_sefurl']) ? e107::url($row['link_owner'], $row['link_sefurl']) : $row['link_url'],
|
|
'type' => GSLAN_1,
|
|
'class' => (int) $row['link_class']);
|
|
}
|
|
}
|
|
|
|
/* custom pages ... */
|
|
$query = "SELECT p.page_id, p.page_title, p.page_sef, p.page_class, p.page_chapter, ch.chapter_sef as chapter_sef, b.chapter_sef as book_sef FROM #page as p
|
|
LEFT JOIN #page_chapters as ch ON p.page_chapter = ch.chapter_id
|
|
LEFT JOIN #page_chapters as b ON ch.chapter_parent = b.chapter_id
|
|
WHERE page_title !='' ORDER BY page_datestamp ASC";
|
|
|
|
$data = $sql->retrieve($query,true);
|
|
|
|
foreach($data as $row)
|
|
{
|
|
if(!in_array($row['page_title'], $existing))
|
|
{
|
|
$route = ($row['page_chapter'] == 0) ? "page/view/other" : "page/view/index";
|
|
|
|
$importArray[] = array(
|
|
'table' => 'page',
|
|
'id' => $row['page_id'],
|
|
'name' => $row['page_title'],
|
|
'url' => e107::getUrl()->create($route, $row, array('full'=>1, 'allow' => 'page_sef,page_title,page_id, chapter_sef, book_sef')),
|
|
'type' => "Page",
|
|
'class' => $row['page_class']
|
|
);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/* Plugins.. - currently: forums ... */
|
|
$addons = e107::getAddonConfig('e_gsitemap', null, 'import');
|
|
|
|
foreach($addons as $plug => $config)
|
|
{
|
|
|
|
foreach($config as $row)
|
|
{
|
|
if(!in_array($row['name'], $existing))
|
|
{
|
|
$row['plugin'] = $plug;
|
|
$importArray[] = $row;
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
$editArray = $_POST;
|
|
|
|
$text = "
|
|
<form action='".e_SELF."' id='form' method='post'>
|
|
<table class='table adminlist table-striped table-condensed'>
|
|
<colgroup>
|
|
<col class='center' style='width:5%;' />
|
|
<col style='width:15%' />
|
|
<col style='width:30%' />
|
|
<col style='width:auto' />
|
|
<col style='width:115px' />
|
|
</colgroup>
|
|
<thead>
|
|
<tr>
|
|
<th class='center'><input type='checkbox' name='e-column-toggle' value='jstarget:importid' id='e-column-toggle-jstarget-e-multiselect' class='checkbox checkbox-inline toggle-all form-check-input ui-state-valid' /></th>
|
|
<th>".LAN_TYPE."</th>
|
|
<th>".LAN_NAME."</th>
|
|
<th>".LAN_URL."</th>
|
|
<th class='center'>".defset('GSLAN_50', 'Publicly visible')."</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
";
|
|
|
|
|
|
$uc = e107::getUserClass();
|
|
|
|
foreach($importArray as $k=>$ia)
|
|
{
|
|
$id = 'gs-'.$k;
|
|
|
|
$class = '';
|
|
$classLabel = ADMIN_FALSE_ICON;
|
|
|
|
if(isset($ia['class']) && ((int) $ia['class'] === e_UC_PUBLIC))
|
|
{
|
|
$class = 'label-success';
|
|
$classLabel = ADMIN_TRUE_ICON;
|
|
}
|
|
|
|
|
|
$text .= "
|
|
<tr>
|
|
<td class='center'><input id='".$id."' type='checkbox' name='importid[]'
|
|
value='".$ia['name']."^".$ia['url']."^".$ia['type']."^".$ia['plugin']."^".$ia['table']."^".$ia['id']."' /></td>
|
|
<td><label for='".$id."' style='cursor:pointer' >".$ia['type']."</label></td>
|
|
<td><label for='".$id."' style='cursor:pointer'>".defset($ia['name'],$ia['name'])."</label></td>
|
|
<td><span class='smalltext'>".str_replace(SITEURL,"",$ia['url'])."</span></td>
|
|
<td class='center'>". $classLabel."</td>
|
|
</tr>
|
|
";
|
|
}
|
|
|
|
$text .= "
|
|
<tr>
|
|
<td colspan='4' class='center'>
|
|
<div class='buttons-bar'> ".GSLAN_8." ".GSLAN_9." : <select class='tbox' name='import_priority' >\n";
|
|
|
|
for ($i=0.1; $i<1.0; $i=$i+0.1)
|
|
{
|
|
$sel = (vartrue($editArray['gsitemap_priority']) == number_format($i,1))? "selected='selected'" : "";
|
|
$text .= "<option value='".number_format($i,1)."' $sel>".number_format($i,1)."</option>\n";
|
|
}
|
|
|
|
$text.="</select> ".GSLAN_10."
|
|
|
|
|
|
|
|
<select class='tbox' name='import_freq' >\n";
|
|
foreach($this->freqList as $k=>$fq)
|
|
{
|
|
$sel = (vartrue($editArray['gsitemap_freq']) == $k)? "selected='selected'" : "";
|
|
$text .= "<option value='{$k}' {$sel}>{$fq}</option>\n";
|
|
}
|
|
|
|
$text .= "</select> <br /><br />
|
|
|
|
</div>
|
|
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<div class='buttons-bar center'>
|
|
".
|
|
$frm->admin_button('import_links',GSLAN_18)."
|
|
</div>
|
|
</form>
|
|
";
|
|
|
|
return $text;
|
|
// return $ns->tablerender(GSLAN_7, $mes->render(). $text, 'default', true);
|
|
|
|
unset($PLUGINS_DIRECTORY);
|
|
|
|
}
|
|
|
|
|
|
public function instructionsPage()
|
|
{
|
|
$mes = e107::getMessage();
|
|
$ns = e107::getRender();
|
|
|
|
|
|
$LINK_1 = "https://search.google.com/search-console/";
|
|
$LINK_2 = "http://www.google.com/support/webmasters/?hl=en";
|
|
|
|
$srch[0] = "[URL]";
|
|
$repl[0] = "<a href='".$LINK_1."' target='_blank'>".$LINK_1."</a>";
|
|
|
|
|
|
$addons = e107::getAddonConfig('e_gsitemap', 'gsitemap');
|
|
|
|
$extraUrls = '';
|
|
foreach($addons as $plug => $item)
|
|
{
|
|
foreach($item as $data )
|
|
{
|
|
$lan = defset("GSLAN_51", "Auto-generated from [x]");
|
|
|
|
$key = $plug.'-'.$data['sef'];
|
|
$url = e107::url('gsitemap', $key, [], ['mode'=>'full']);
|
|
$extraUrls .= '<li><a href="'.$url.'" target="_blank">'.$url.'</a> <small><em>('.str_replace('[x]', $plug, $lan).')</em></small></li>';
|
|
}
|
|
|
|
}
|
|
|
|
|
|
$srch[1] = "[SITEMAP_URLS]";
|
|
$repl[1] = "<ul style='margin:10px'><li><a href='".SITEURL."sitemap.xml' target='_blank'>".SITEURL."sitemap.xml</a></li>".$extraUrls."</ul>";
|
|
|
|
$srch[2] = "[";
|
|
$repl[2] = "<a href='".e_ADMIN."prefs.php'>";
|
|
|
|
$srch[3] = "]";
|
|
$repl[3] = "</a>";
|
|
|
|
$default = "Once you have some entries, go to [URL] and enter one of the following URLs in the Sitemaps section.[SITEMAP_URLS] If any of these urls look incorrect to you, please make sure your site url is correct in [preferences].";
|
|
|
|
// $text = "<b>".GSLAN_33."</b><br /><br />";
|
|
$text = "
|
|
<ol>
|
|
<li>".GSLAN_34."</li>
|
|
<li>".GSLAN_35."</li>
|
|
<li>".GSLAN_36."</li>
|
|
<li>".str_replace($srch,$repl,defset("GSLAN_52", $default))."</li>
|
|
<li>".str_replace("[URL]","<a href='".$LINK_2."' target='_blank'>".$LINK_2."</a>",GSLAN_38)."</li>
|
|
</ol>
|
|
";
|
|
|
|
return $text;
|
|
|
|
}
|
|
|
|
/*
|
|
// optional - a custom page.
|
|
public function customPage()
|
|
{
|
|
$text = 'Hello World!';
|
|
$otherField = $this->getController()->getFieldVar('other_field_name');
|
|
return $text;
|
|
|
|
}
|
|
|
|
|
|
|
|
// Handle batch options as defined in gsitemap_form_ui::gsitemap_lastmod; 'handle' + action + field + 'Batch'
|
|
// @important $fields['gsitemap_lastmod']['batch'] must be true for this method to be detected.
|
|
// @param $selected
|
|
// @param $type
|
|
function handleListGsitemapLastmodBatch($selected, $type)
|
|
{
|
|
|
|
$ids = implode(',', $selected);
|
|
|
|
switch($type)
|
|
{
|
|
case 'custombatch_1':
|
|
// do something
|
|
e107::getMessage()->addSuccess('Executed custombatch_1');
|
|
break;
|
|
|
|
case 'custombatch_2':
|
|
// do something
|
|
e107::getMessage()->addSuccess('Executed custombatch_2');
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
// Handle batch options as defined in gsitemap_form_ui::gsitemap_freq; 'handle' + action + field + 'Batch'
|
|
// @important $fields['gsitemap_freq']['batch'] must be true for this method to be detected.
|
|
// @param $selected
|
|
// @param $type
|
|
function handleListGsitemapFreqBatch($selected, $type)
|
|
{
|
|
|
|
$ids = implode(',', $selected);
|
|
|
|
switch($type)
|
|
{
|
|
case 'custombatch_1':
|
|
// do something
|
|
e107::getMessage()->addSuccess('Executed custombatch_1');
|
|
break;
|
|
|
|
case 'custombatch_2':
|
|
// do something
|
|
e107::getMessage()->addSuccess('Executed custombatch_2');
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
// Handle filter options as defined in gsitemap_form_ui::gsitemap_lastmod; 'handle' + action + field + 'Filter'
|
|
// @important $fields['gsitemap_lastmod']['filter'] must be true for this method to be detected.
|
|
// @param $selected
|
|
// @param $type
|
|
function handleListGsitemapLastmodFilter($type)
|
|
{
|
|
|
|
$this->listOrder = 'gsitemap_lastmod ASC';
|
|
|
|
switch($type)
|
|
{
|
|
case 'customfilter_1':
|
|
// return ' gsitemap_lastmod != 'something' ';
|
|
e107::getMessage()->addSuccess('Executed customfilter_1');
|
|
break;
|
|
|
|
case 'customfilter_2':
|
|
// return ' gsitemap_lastmod != 'something' ';
|
|
e107::getMessage()->addSuccess('Executed customfilter_2');
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
// Handle filter options as defined in gsitemap_form_ui::gsitemap_freq; 'handle' + action + field + 'Filter'
|
|
// @important $fields['gsitemap_freq']['filter'] must be true for this method to be detected.
|
|
// @param $selected
|
|
// @param $type
|
|
function handleListGsitemapFreqFilter($type)
|
|
{
|
|
|
|
$this->listOrder = 'gsitemap_freq ASC';
|
|
|
|
switch($type)
|
|
{
|
|
case 'customfilter_1':
|
|
// return ' gsitemap_freq != 'something' ';
|
|
e107::getMessage()->addSuccess('Executed customfilter_1');
|
|
break;
|
|
|
|
case 'customfilter_2':
|
|
// return ' gsitemap_freq != 'something' ';
|
|
e107::getMessage()->addSuccess('Executed customfilter_2');
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
*/
|
|
function importLink()
|
|
{
|
|
|
|
$sql = e107::getDb();
|
|
$tp = e107::getParser();
|
|
$log = e107::getLog();
|
|
|
|
|
|
foreach ($_POST['importid'] as $import)
|
|
{
|
|
list($name, $url, $type, $plugin, $table, $id) = explode("^", $import);
|
|
|
|
$insert = array(
|
|
'gsitemap_id' => 0,
|
|
'gsitemap_name' => $tp->toDB($name),
|
|
'gsitemap_url' => $tp->toDB($url),
|
|
'gsitemap_plugin' => $tp->toDB($plugin),
|
|
'gsitemap_table' => $tp->toDB($table),
|
|
'gsitemap_table_id' => (int) $id,
|
|
'gsitemap_lastmod' => time(),
|
|
'gsitemap_freq' => $_POST['import_freq'],
|
|
'gsitemap_priority' => $_POST['import_priority'],
|
|
'gsitemap_cat' => $type,
|
|
'gsitemap_order' => '0',
|
|
'gsitemap_img' => '',
|
|
'gsitemap_active' => '0',
|
|
);
|
|
|
|
if ($sql->insert("gsitemap", $insert))
|
|
{
|
|
e107::getMessage()->addSuccess(LAN_CREATED);
|
|
$log->add('GSMAP_01', LAN_CREATED);
|
|
}
|
|
else
|
|
{
|
|
e107::getMessage()->addError(LAN_CREATED_FAILED);
|
|
}
|
|
|
|
// $sql->insert("gsitemap", "0, '$name', '$url', '".time()."', '".$_POST['import_freq']."', '".$_POST['import_priority']."', '$type', '0', '', '0' ");
|
|
}
|
|
|
|
// $this->message = count($_POST['importid'])." link(s) imported.";
|
|
// $log->add('GSMAP_01', $gsitemap->message);
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
class gsitemap_form_ui extends e_admin_form_ui
|
|
{
|
|
|
|
|
|
// Custom Method/Function
|
|
function gsitemap_priority($curVal,$mode)
|
|
{
|
|
|
|
|
|
switch($mode)
|
|
{
|
|
case 'read': // List Page
|
|
return $curVal;
|
|
break;
|
|
|
|
case 'write': // Edit Page
|
|
case 'batch':
|
|
case 'filter':
|
|
$array = [];
|
|
$text = "<select class='tbox' name='gsitemap_priority' >\n";
|
|
|
|
for ($i=0.1; $i<1.0; $i=$i+0.1)
|
|
{
|
|
$num = (string) number_format($i,1);
|
|
$sel = ($curVal == $num) ? "selected='selected'" : "";
|
|
$text .= "<option value='".$num."' $sel>".$num."</option>\n";
|
|
$array[$num] = $num;
|
|
}
|
|
|
|
$text.="</select>";
|
|
|
|
return ($mode === 'write') ? $text : $array;
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
|
|
// Custom Method/Function
|
|
function gsitemap_freq($curVal,$mode)
|
|
{
|
|
|
|
|
|
switch($mode)
|
|
{
|
|
case 'read': // List Page
|
|
return $curVal;
|
|
break;
|
|
|
|
case 'write': // Edit Page
|
|
return $this->text('gsitemap_freq',$curVal, 255, 'size=large');
|
|
break;
|
|
|
|
case 'filter':
|
|
return array('customfilter_1' => 'Custom Filter 1', 'customfilter_2' => 'Custom Filter 2');
|
|
break;
|
|
|
|
case 'batch':
|
|
return array('custombatch_1' => 'Custom Batch 1', 'custombatch_2' => 'Custom Batch 2');
|
|
break;
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
new gsitemap_adminArea();
|
|
|
|
require_once(e_ADMIN."auth.php");
|
|
e107::getAdminUI()->runPage();
|
|
|
|
if(deftrue('e_DEBUG_GSITEMAP_ADMIN'))
|
|
{
|
|
echo "Debug Comparison<hr /> ";
|
|
$gsm = new gsitemap;
|
|
}
|
|
|
|
require_once(e_ADMIN."footer.php");
|
|
|
|
|
|
|
|
|
|
class gsitemap
|
|
{
|
|
|
|
protected $message;
|
|
protected $error;
|
|
protected $errortext;
|
|
protected $freq_list = array();
|
|
|
|
//function gsitemap()
|
|
function __construct()
|
|
{
|
|
$mes = e107::getMessage();
|
|
|
|
|
|
|
|
$this->freq_list = array
|
|
(
|
|
"always" => GSLAN_11,
|
|
"hourly" => GSLAN_12,
|
|
"daily" => GSLAN_13,
|
|
"weekly" => GSLAN_14,
|
|
"monthly" => GSLAN_15,
|
|
"yearly" => GSLAN_16,
|
|
"never" => LAN_NEVER
|
|
);
|
|
|
|
|
|
if(isset($_POST['edit']))
|
|
{
|
|
$this->editSme();
|
|
}
|
|
|
|
if(isset($_POST['delete']))
|
|
{
|
|
$this->deleteSme();
|
|
}
|
|
|
|
if(isset($_POST['add_link']))
|
|
{
|
|
$this->addLink();
|
|
}
|
|
|
|
|
|
|
|
|
|
if($this->message)
|
|
{
|
|
$mes->addSuccess($this->message);
|
|
// echo "<br /><div style='text-align:center'><b>".$this->message."</b></div><br />";
|
|
}
|
|
|
|
if($this->error)
|
|
{
|
|
$mes->addError($this->error);
|
|
$mes->addDebug($this->errortext);
|
|
}
|
|
|
|
|
|
if(e_QUERY == "new")
|
|
{
|
|
$this->doForm();
|
|
}
|
|
else if(e_QUERY == "import")
|
|
{
|
|
// $this->importSme();
|
|
}
|
|
else if(e_QUERY == "instructions")
|
|
{
|
|
$this->instructions();
|
|
}
|
|
else if(!vartrue($_POST['edit']))
|
|
{
|
|
$this->showList();
|
|
}
|
|
}
|
|
|
|
|
|
function showList()
|
|
{
|
|
|
|
$mes = e107::getMessage();
|
|
$sql = e107::getDb();
|
|
$ns = e107::getRender();
|
|
$tp = e107::getParser();
|
|
$frm = e107::getForm();
|
|
|
|
$gen = new convert;
|
|
|
|
$count = $sql->select("gsitemap", "*", "gsitemap_id !=0 ORDER BY gsitemap_order ASC");
|
|
|
|
if (!$count)
|
|
{
|
|
$text = "
|
|
<form action='".e_SELF."?import' id='import' method='post'>
|
|
".GSLAN_39."<br /><br />"
|
|
.$frm->admin_button('import',LAN_YES)."
|
|
</form>";
|
|
|
|
$mes->addInfo($text);
|
|
|
|
$ns->tablerender(GSLAN_24, $mes->render());
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
$text = "
|
|
<form action='".e_SELF."' id='display' method='post'>
|
|
<table class='table adminlist'>
|
|
<colgroup span='2'>
|
|
<col style='width:5%' />
|
|
<col style='width:10%' />
|
|
<col style='width:35%' />
|
|
<col style='width:20%' />
|
|
<col style='width:10%' />
|
|
<col style='width:10%' />
|
|
<col style='width:10%' />
|
|
</colgroup>
|
|
<thead>
|
|
<tr class='first last' >
|
|
<th style='text-align: center;'>Id</th>
|
|
<th>".LAN_NAME."</th>
|
|
<th>".LAN_URL."</th>
|
|
<th style='text-align: center'>".GSLAN_27."</th>
|
|
<th style='text-align: center' >".GSLAN_28."</th>
|
|
<th style='text-align: center' >".GSLAN_9."</th>
|
|
<th style='text-align: center'>".LAN_OPTIONS."</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
";
|
|
|
|
$glArray = $sql->db_getList();
|
|
foreach($glArray as $row2)
|
|
{
|
|
$datestamp = $gen->convert_date($row2['gsitemap_lastmod'], "short");
|
|
$rowStyle = (vartrue($rowStyle) == "odd") ? "even" : "odd";
|
|
|
|
$text .= "<tr class='{$rowStyle}'>
|
|
<td style='; text-align: center;'>".$row2['gsitemap_id'] ."</td>
|
|
<td>".$tp->toHTML($row2['gsitemap_name'],"","defs")."</td>
|
|
<td>".$row2['gsitemap_url']."</td>
|
|
<td style='; text-align: center;'>".$datestamp."</td>
|
|
<td style='; text-align: center;'>".$this->freq_list[($row2['gsitemap_freq'])]."</td>
|
|
<td style='; text-align: center;'>".$row2['gsitemap_priority'] ."</td>
|
|
|
|
<td class='center' style='white-space:nowrap'>
|
|
<div>
|
|
<button class='btn btn-default' type='submit' name='edit[{$row2['gsitemap_id']}]' value='edit' alt='".LAN_EDIT."' title='".LAN_EDIT."' style='border:0px' >".ADMIN_EDIT_ICON."</button>
|
|
<button class='btn btn-default btn-secondary action delete' type='submit' name='delete[{$row2['gsitemap_id']}]' value='del' data-confirm='".$tp->toAttribute(LAN_CONFIRMDEL." [".$row2['gsitemap_name']."]")."' title='".LAN_DELETE."' >".ADMIN_DELETE_ICON."</button>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
";
|
|
}
|
|
}
|
|
|
|
$text .= "</tbody></table>\n</form>";
|
|
|
|
$ns->tablerender(GSLAN_24, $mes->render(). $text);
|
|
}
|
|
|
|
|
|
function editSme()
|
|
{
|
|
$sql = e107::getDb();
|
|
$tp = e107::getParser();
|
|
|
|
$e_idt = array_keys($_POST['edit']);
|
|
|
|
if($sql->select("gsitemap", "*", "gsitemap_id='".$e_idt[0]."' "))
|
|
{
|
|
$foo = $sql->fetch();
|
|
$foo['gsitemap_name'] = $tp->toForm($foo['gsitemap_name']);
|
|
$foo['gsitemap_url'] = $tp->toForm($foo['gsitemap_url']);
|
|
|
|
$this->doForm($foo);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
function doForm($editArray=FALSE)
|
|
{
|
|
$frm = e107::getForm();
|
|
$sql = e107::getDb();
|
|
$ns = e107::getRender();
|
|
$mes = e107::getMessage();
|
|
|
|
|
|
$count = $sql->select("gsitemap", "*", "gsitemap_id !=0 ORDER BY gsitemap_id ASC");
|
|
|
|
$text = "
|
|
<form action='".e_SELF."' id='form' method='post'>
|
|
<table class='table adminform'>
|
|
<colgroup span='2'>
|
|
<col class='col-label' />
|
|
<col class='col-control' />
|
|
</colgroup>
|
|
<tr>
|
|
<td>".LAN_NAME."</td>
|
|
<td>".$frm->text('gsitemap_name', $editArray['gsitemap_name'], '100', array('class' => 'tbox input-text span3'))."</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>".LAN_URL."</td>
|
|
<td>".$frm->text('gsitemap_url', $editArray['gsitemap_url'], '100', array('class' => 'tbox input-text span3'))."
|
|
<input class='tbox' type='hidden' name='gsitemap_lastmod' size='40' value='".time()."' maxlength='100' /></td>
|
|
</tr>
|
|
<tr>
|
|
<td>".GSLAN_10."</td>
|
|
<td>
|
|
<select class='tbox' name='gsitemap_freq'>\n";
|
|
foreach($this->freq_list as $k=>$fq)
|
|
{
|
|
$sel = ($editArray['gsitemap_freq'] == $k)? "selected='selected'" : "";
|
|
$text .= "<option value='$k' $sel>".$fq."</option>\n";
|
|
}
|
|
|
|
$text.="</select>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>".GSLAN_9."</td>
|
|
<td>
|
|
<select class='tbox' name='gsitemap_priority' >\n";
|
|
|
|
for ($i=0.1; $i<1.0; $i=$i+0.1)
|
|
{
|
|
$sel = ($editArray['gsitemap_priority'] == number_format($i,1))? "selected='selected'" : "";
|
|
$text .= "<option value='".number_format($i,1)."' $sel>".number_format($i,1)."</option>\n";
|
|
}
|
|
|
|
$text.="</select></td>
|
|
</tr>
|
|
<tr>
|
|
<td>".LAN_ORDER."</td>
|
|
<td><select name='gsitemap_order' class='tbox'>";
|
|
|
|
for($i=0;$i<$count;$i++){
|
|
$text .= $editArray['gsitemap_order'] == $i ? "<option value='".$i."' selected='selected'>".$i."</option>" : "<option value='".$i."'>".$i."</option>";
|
|
}
|
|
$text .= "</select>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>".LAN_VISIBILITY."</td>
|
|
<td>".r_userclass("gsitemap_active", $editArray['gsitemap_active'], 'off', "nobody,public,guest,member,admin,classes,language")." </td>
|
|
</tr>
|
|
</table>
|
|
<div class='buttons-bar center'>";
|
|
if(is_array($editArray))
|
|
{
|
|
$text .= $frm->admin_button('add_link',LAN_UPDATE,'update')."
|
|
<input type='hidden' name='gsitemap_id' value='".$editArray['gsitemap_id']."' />";
|
|
}
|
|
else
|
|
{
|
|
$text .= $frm->admin_button('add_link',LAN_CREATE,'create');
|
|
}
|
|
|
|
$text .= "</div>
|
|
</form>
|
|
";
|
|
|
|
$ns->tablerender(GSLAN_29, $mes->render(). $text);
|
|
}
|
|
|
|
|
|
|
|
function addLink()
|
|
{
|
|
$log = e107::getLog();
|
|
$sql = e107::getDb();
|
|
$tp = e107::getParser();
|
|
|
|
$gmap = array(
|
|
'gsitemap_name' => $tp->toDB($_POST['gsitemap_name']),
|
|
'gsitemap_url' => $tp->toDB($_POST['gsitemap_url']),
|
|
'gsitemap_priority' => $_POST['gsitemap_priority'],
|
|
'gsitemap_lastmod' => $_POST['gsitemap_lastmod'],
|
|
'gsitemap_freq' => $_POST['gsitemap_freq'],
|
|
'gsitemap_order' => $_POST['gsitemap_order'],
|
|
'gsitemap_active' => $_POST['gsitemap_active'],
|
|
);
|
|
|
|
// Check if we are updating an existing record
|
|
if(!empty($_POST['gsitemap_id']))
|
|
{
|
|
// Add where statement to update query
|
|
$gmap['WHERE'] = "gsitemap_id= ".intval($_POST['gsitemap_id']);
|
|
|
|
if($sql->update("gsitemap", $gmap))
|
|
{
|
|
$this->message = LAN_UPDATED;
|
|
|
|
// Log update
|
|
$log->addArray($gmap)->save('GSMAP_04');
|
|
}
|
|
else
|
|
{
|
|
$this->errortext = $sql->getLastErrorText();
|
|
$this->error = LAN_UPDATED_FAILED;
|
|
}
|
|
}
|
|
// Inserting new record
|
|
else
|
|
{
|
|
$gmap['gsitemap_img'] = vartrue($_POST['gsitemap_img']);
|
|
$gmap['gsitemap_cat'] = vartrue($_POST['gsitemap_cat']);
|
|
|
|
if($sql->insert('gsitemap', $gmap))
|
|
{
|
|
$this->message = LAN_CREATED;
|
|
|
|
// Log insert
|
|
$log->addArray($gmap)->save('GSMAP_03');
|
|
}
|
|
else
|
|
{
|
|
$this->errortext = $sql->getLastErrorText();
|
|
$this->error = LAN_CREATED_FAILED;
|
|
}
|
|
}
|
|
}
|
|
|
|
function deleteSme()
|
|
{
|
|
$log = e107::getLog();
|
|
$sql = e107::getDb();
|
|
|
|
$d_idt = array_keys($_POST['delete']);
|
|
|
|
if($sql->delete("gsitemap", "gsitemap_id='".$d_idt[0]."'"))
|
|
{
|
|
$this->message = LAN_DELETED;
|
|
$log->add('GSMAP_02', $this->message.': '.$d_idt[0]);
|
|
}
|
|
else
|
|
{
|
|
$this->errortext = $sql->getLastErrorText();
|
|
$this->error = LAN_DELETED_FAILED;
|
|
}
|
|
}
|
|
|
|
|
|
function instructions()
|
|
{
|
|
$mes = e107::getMessage();
|
|
$ns = e107::getRender();
|
|
|
|
|
|
$LINK_1 = "https://search.google.com/search-console/";
|
|
$LINK_2 = "http://www.google.com/support/webmasters/?hl=en";
|
|
|
|
$srch[0] = "[URL]";
|
|
$repl[0] = "<a href='".$LINK_1."'>".$LINK_1."</a>";
|
|
|
|
$srch[1] = "[URL2]";
|
|
$repl[1] = "<blockquote><b>".SITEURL."sitemap.xml</b></blockquote>";
|
|
|
|
$srch[2] = "[";
|
|
$repl[2] = "<a href='".e_ADMIN."prefs.php'>";
|
|
|
|
$srch[3] = "]";
|
|
$repl[3] = "</a>";
|
|
|
|
$text = "<b>".GSLAN_33."</b><br /><br />
|
|
<ul>
|
|
<li>".GSLAN_34."</li>
|
|
<li>".GSLAN_35."</li>
|
|
<li>".GSLAN_36."</li>
|
|
<li>".str_replace($srch,$repl,GSLAN_37)."</li>
|
|
<li>".str_replace("[URL]","<a href='".$LINK_2."'>".$LINK_2."</a>",GSLAN_38)."</li>
|
|
<ul>
|
|
";
|
|
|
|
$ns->tablerender(GSLAN_32, $mes->render(). $text);
|
|
}
|
|
|
|
}
|
|
|
|
|
|
require_once(e_ADMIN."footer.php");
|
|
|
|
// loaded automatically.
|
|
/*
|
|
function admin_config_adminmenu()
|
|
{
|
|
$action = (e_QUERY) ? e_QUERY : "list";
|
|
$var['list']['text'] = GSLAN_20;
|
|
$var['list']['link'] = e_SELF;
|
|
$var['list']['perm'] = "7";
|
|
$var['instructions']['text'] = GSLAN_21 ;
|
|
$var['instructions']['link'] = e_SELF."?instructions";
|
|
$var['instructions']['perm'] = "7";
|
|
$var['new']['text'] = GSLAN_22 ;
|
|
$var['new']['link'] = e_SELF."?new";
|
|
$var['new']['perm'] = "7";
|
|
$var['import']['text'] = GSLAN_23;
|
|
$var['import']['link'] = e_SELF."?import";
|
|
$var['import']['perm'] = "0";
|
|
|
|
show_admin_menu(LAN_PLUGIN_GSITEMAP_NAME, $action, $var);
|
|
}*/
|
|
|