mirror of
https://github.com/e107inc/e107.git
synced 2025-01-17 12:48:24 +01:00
Linkwords first cut of upgrade
This commit is contained in:
parent
dd282efc69
commit
3362a349c5
@ -11,32 +11,53 @@
|
||||
| GNU General Public License (http://gnu.org).
|
||||
|
|
||||
| $Source: /cvs_backup/e107_0.8/e107_plugins/linkwords/admin_config.php,v $
|
||||
| $Revision: 1.6 $
|
||||
| $Date: 2008-01-11 22:13:43 $
|
||||
| $Revision: 1.7 $
|
||||
|
|
||||
| ***** START OF VERSION WHICH ALLOWS TOOLTIPS (also order of forms changed )
|
||||
|
|
||||
| $Date: 2008-12-07 21:55:01 $
|
||||
| $Author: e107steved $
|
||||
+----------------------------------------------------------------------------+
|
||||
*/
|
||||
require_once("../../class2.php");
|
||||
if (!getperms("P")) {
|
||||
if (!plugInstalled('linkwords')) header("Location: ".e_BASE."index.php");
|
||||
if (!getperms("P"))
|
||||
{
|
||||
header("location:".e_BASE."index.php");
|
||||
exit ;
|
||||
}
|
||||
require_once(e_ADMIN."auth.php");
|
||||
@include_once(e_PLUGIN."linkwords/languages/".e_LANGUAGE.".php");
|
||||
@include_once(e_PLUGIN."linkwords/languages/English.php");
|
||||
@include_lan(e_PLUGIN."linkwords/languages/".e_LANGUAGE."_admin_linkwords.php");
|
||||
|
||||
$lw_context_areas = array(
|
||||
'title' => LWLAN_33,
|
||||
'summary' => LWLAN_34,
|
||||
'body' => LWLAN_35,
|
||||
'description' => LWLAN_36,
|
||||
'user_title' => LWLAN_40,
|
||||
'user_body' => LWLAN_41
|
||||
'TITLE' => LWLAN_33,
|
||||
'SUMMARY' => LWLAN_34,
|
||||
'BODY' => LWLAN_35,
|
||||
'DESCRIPTION' => LWLAN_36,
|
||||
'USER_TITLE' => LWLAN_40,
|
||||
'USER_BODY' => LWLAN_41
|
||||
// Don't do the next three - linkwords are meaningless on them
|
||||
// 'olddefault' => LWLAN_37,
|
||||
// 'linktext' => LWLAN_38,
|
||||
// 'rawtext' => LWLAN_39'
|
||||
);
|
||||
|
||||
// Yes, I know its a silly order - but that's history!
|
||||
$lwaction_vals = array(1=>LWLAN_51, 0=>LWLAN_52, 2=>LWLAN_53, 3=>LWLAN_54);
|
||||
|
||||
// Generate dropdown for possible actions on finding a linkword
|
||||
function lw_act_opts($curval)
|
||||
{
|
||||
global $lwaction_vals;
|
||||
$ret = '';
|
||||
foreach ($lwaction_vals as $opt => $val)
|
||||
{
|
||||
$selected = ($curval == $opt ? "selected='selected'" : "");
|
||||
$ret .= "<option value='{$opt}' {$selected}>{$val}</option>\n";
|
||||
}
|
||||
return $ret;
|
||||
}
|
||||
|
||||
|
||||
$deltest = array_flip($_POST);
|
||||
|
||||
@ -47,6 +68,7 @@ if(isset($deltest[LWLAN_17]))
|
||||
if ($sql->db_Count("linkwords", "(*)", "WHERE linkword_id = ".$delete_id))
|
||||
{
|
||||
$sql->db_Delete("linkwords", "linkword_id=".$delete_id);
|
||||
$admin_log->log_event('LINKWD_03','ID: '.$delete_id,'');
|
||||
$message = LWLAN_19;
|
||||
}
|
||||
}
|
||||
@ -57,7 +79,7 @@ if(e_QUERY)
|
||||
if (!isset($lw_qs[0])) $lw_qs[0] = 'words';
|
||||
if (!isset($lw_qs[1])) $lw_qs[1] = -1;
|
||||
$action = $lw_qs[0];
|
||||
$id = $lw_qs[1];
|
||||
$id = intval($lw_qs[1]);
|
||||
}
|
||||
if (!isset($action)) $action = 'words';
|
||||
|
||||
@ -65,13 +87,15 @@ if (isset($_POST['saveopts_linkword']))
|
||||
{ // Save options page
|
||||
// Array of context flags
|
||||
$pref['lw_context_visibility'] = array(
|
||||
'olddefault' => FALSE,
|
||||
'title' => FALSE,
|
||||
'summary' => FALSE,
|
||||
'body' => FALSE,
|
||||
'description' => FALSE,
|
||||
'linktext' => FALSE,
|
||||
'rawtext' => FALSE
|
||||
'OLDDEFAULT' => FALSE,
|
||||
'TITLE' => FALSE,
|
||||
'USER_TITLE' => FALSE,
|
||||
'SUMMARY' => FALSE,
|
||||
'BODY' => FALSE,
|
||||
'USER_BODY' => FALSE,
|
||||
'DESCRIPTION' => FALSE,
|
||||
'LINKTEXT' => FALSE,
|
||||
'RAWTEXT' => FALSE
|
||||
);
|
||||
foreach ($_POST['lw_visibility_area'] as $can_see)
|
||||
{
|
||||
@ -87,40 +111,55 @@ if (isset($_POST['saveopts_linkword']))
|
||||
$pagelist[$i] = trim($pagelist[$i]);
|
||||
}
|
||||
$pref['lw_page_visibility'] = '2-'.implode("|", $pagelist); // '2' for 'hide on specified pages'
|
||||
$pref['lw_ajax_enable'] = isset($_POST['lw_ajax_enable']);
|
||||
save_prefs();
|
||||
$logString = implode(', ',$pref['lw_context_visibility']).'[!br!]'.$pref['lw_page_visibility'].'[!br!]'.$pref['lw_ajax_enable'];
|
||||
$admin_log->log_event('LINKWD_04',$logString,'');
|
||||
}
|
||||
|
||||
|
||||
if (isset($_POST['submit_linkword']))
|
||||
if (isset($_POST['submit_linkword']) || isset($_POST['update_linkword']))
|
||||
{
|
||||
if(!$_POST['linkwords_word'] && $_POST['linkwords_url'])
|
||||
{
|
||||
{ // Key fields empty
|
||||
$message = LWLAN_1;
|
||||
}
|
||||
else
|
||||
{
|
||||
$word = $tp -> toDB($_POST['linkword_word']);
|
||||
$link = $tp -> toDB($_POST['linkword_link']);
|
||||
$active = intval($_POST['linkword_active']);
|
||||
$sql -> db_Insert("linkwords", "0, {$active}, '{$word}', '{$link}' ");
|
||||
$message = LWLAN_2;
|
||||
}
|
||||
}
|
||||
$data['linkword_word'] = $tp -> toDB($_POST['linkword_word']);
|
||||
$data['linkword_link'] = $tp -> toDB($_POST['linkword_link']);
|
||||
$data['linkword_tooltip'] = $tp -> toDB($_POST['linkword_tooltip']);
|
||||
$data['linkword_tip_id'] = intval($_POST['linkword_tip_id']);
|
||||
$data['linkword_active'] = intval($_POST['linkword_active']);
|
||||
$data['linkword_newwindow'] = isset($_POST['linkword_newwindow']) ? 1 : 0;
|
||||
|
||||
if (isset($_POST['update_linkword']))
|
||||
{
|
||||
if(!$_POST['linkwords_word'] && $_POST['linkwords_url'])
|
||||
{
|
||||
$message = LWLAN_1;
|
||||
}
|
||||
else
|
||||
{
|
||||
$id = $_POST['id'];
|
||||
$word = $tp -> toDB($_POST['linkword_word']);
|
||||
$link = $tp -> toDB($_POST['linkword_link']);
|
||||
$active = $_POST['linkword_active'];
|
||||
$sql -> db_Update("linkwords", "linkword_active=$active, linkword_word='$word', linkword_link='$link' WHERE linkword_id=".$id);
|
||||
$message = LWLAN_3;
|
||||
$logString = implode('[!br!]',$data);
|
||||
if (isset($_POST['submit_linkword']))
|
||||
{
|
||||
if ($sql -> db_Insert('linkwords', $data))
|
||||
{
|
||||
$message = LWLAN_2;
|
||||
$admin_log->log_event('LINKWD_01',$logString,'');
|
||||
}
|
||||
else
|
||||
{
|
||||
$message = LWLAN_57;
|
||||
}
|
||||
}
|
||||
elseif (isset($_POST['update_linkword']))
|
||||
{
|
||||
$id = intval(varset($_POST['lw_edit_id'],0));
|
||||
if (($id > 0) && $sql -> db_UpdateArray('linkwords', $data, ' WHERE `linkword_id`='.$id))
|
||||
{
|
||||
$message = LWLAN_3;
|
||||
$logString = 'ID: '.$id.'[!br!]'.$logString;
|
||||
$admin_log->log_event('LINKWD_02',$logString,'');
|
||||
}
|
||||
else
|
||||
{
|
||||
$message = LWLAN_57;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -131,13 +170,14 @@ if (isset($message))
|
||||
}
|
||||
|
||||
|
||||
|
||||
$chkNewWindow = " checked='checked'"; // Open links in new window by default
|
||||
if($action == "edit")
|
||||
{
|
||||
if($sql -> db_Select("linkwords", "*", "linkword_id=".$id))
|
||||
{
|
||||
$row = $sql -> db_Fetch();
|
||||
extract($row);
|
||||
$chkNewWindow = $row['linkword_newwindow'] ? " checked='checked'" : ''; // Open links in new window by default
|
||||
define("LW_EDIT", TRUE);
|
||||
}
|
||||
}
|
||||
@ -154,45 +194,64 @@ $text = "
|
||||
<div class='center'>
|
||||
<form method='post' action='".e_SELF."?words'>
|
||||
<table style='".ADMIN_WIDTH."' class='fborder'>
|
||||
<colgroup>
|
||||
<col style='width: 35%; vertical-align:top;' />
|
||||
<col style='width: 65%; vertical-align:top;' />
|
||||
</colgroup>
|
||||
|
||||
<tr>
|
||||
<td style='width:50%' class='forumheader3'>".LWLAN_21."</td>
|
||||
<td style='width:50%' class='forumheader3'>
|
||||
<td class='forumheader3'>".LWLAN_21."</td>
|
||||
<td class='forumheader3'>
|
||||
<input class='tbox' type='text' name='linkword_word' size='40' value='".$linkword_word."' maxlength='100' />
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style='width:50%' class='forumheader3'>".LWLAN_6."</td>
|
||||
<td style='width:50%' class='forumheader3'>
|
||||
<input class='tbox' type='text' name='linkword_link' size='60' value='".$linkword_link."' maxlength='200' />
|
||||
<td class='forumheader3'>".LWLAN_6."</td>
|
||||
<td class='forumheader3'>
|
||||
<input class='tbox' type='text' name='linkword_link' size='60' value='".$linkword_link."' maxlength='250' /><br />
|
||||
<input type='checkbox' name='linkword_newwindow' value='1'{$chkNewWindow} />".LWLAN_55."
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style='width:50%' class='forumheader3'>".LWLAN_22."</td>
|
||||
<td style='width:50%; text-align:right' class='forumheader3'>
|
||||
<input type='radio' name='linkword_active' value='0'".(!$linkword_active ? " checked='checked'" : "")." /> ".LWLAN_9."
|
||||
<input type='radio' name='linkword_active' value='1'".($linkword_active ? " checked='checked'" : "")." /> ".LWLAN_10."
|
||||
<td class='forumheader3'>".LWLAN_50."</td>
|
||||
<td class='forumheader3'>
|
||||
<textarea rows='3' cols='80' class='tbox' name='linkword_tooltip'>".$linkword_tooltip."</textarea>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class='forumheader3'>".LWLAN_62."</td>
|
||||
<td class='forumheader3'>
|
||||
<input class='tbox' type='text' name='linkword_tip_id' size='10' value='".$linkword_tip_id."' maxlength='10' /> ".LWLAN_63."
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class='forumheader3'>".LWLAN_22."</td>
|
||||
<td style='text-align:left' class='forumheader3'><select class='tbox' name='linkword_active'>".lw_act_opts($linkword_active).
|
||||
"</select>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan='2' style='text-align:center' class='forumheader'>".
|
||||
(defined("LW_EDIT") ? "<input class='button' type='submit' name='update_linkword' value='".LWLAN_15."' /><input type='hidden' name='id' value='$id' />" : "<input class='button' type='submit' name='submit_linkword' value='".LWLAN_14."' />")."
|
||||
(defined("LW_EDIT") ? "<input class='button' type='submit' name='update_linkword' value='".LWLAN_15."' /><input type='hidden' name='lw_edit_id' value='{$id}' />" : "<input class='button' type='submit' name='submit_linkword' value='".LWLAN_14."' />")."
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
</div>\n";
|
||||
|
||||
|
||||
$ns -> tablerender(LWLAN_31, $text);
|
||||
}
|
||||
|
||||
|
||||
// Now display existing linkwords
|
||||
if (($action == 'words') || ($action == 'edit'))
|
||||
{
|
||||
|
||||
|
||||
$text = "<div class='center'>\n";
|
||||
if(!$sql -> db_Select("linkwords"))
|
||||
{
|
||||
@ -201,30 +260,49 @@ if (($action == 'words') || ($action == 'edit'))
|
||||
else
|
||||
{
|
||||
$text = "
|
||||
<div class='center'>
|
||||
<table style='".ADMIN_WIDTH."' class='fborder'>
|
||||
<tr>
|
||||
<td class='forumheader' style='width: 20%;'>".LWLAN_5."</td>
|
||||
<td class='forumheader' style='width: 40%;'>".LWLAN_6."</td>
|
||||
<td class='forumheader' style='width: 10%; text-align: center;'>".LWLAN_7."</td>
|
||||
<td class='forumheader' style='width: 30%; text-align: center;'>".LWLAN_8."</td>
|
||||
<colgroup>
|
||||
<col style='width: 5%; vertical-align:top;' />
|
||||
<col style='width: 15%; vertical-align:top;' />
|
||||
<col style='width: 20%; vertical-align:top;' />
|
||||
<col style='width: 5%; vertical-align:top;' />
|
||||
<col style='width: 25%; vertical-align:top;' />
|
||||
<col style='width: 5%; vertical-align:top;' />
|
||||
<col style='width: 10%; vertical-align:top; text-align: center;' />
|
||||
<col style='width: 15%; vertical-align:top; text-align: center;' />
|
||||
</colgroup> <tr>
|
||||
<td class='forumheader'>".LWLAN_61."</td>
|
||||
<td class='forumheader'>".LWLAN_5."</td>
|
||||
<td class='forumheader'>".LWLAN_6."</td>
|
||||
<td class='forumheader'>".LWLAN_56."</td>
|
||||
<td class='forumheader'>".LWLAN_50."</td>
|
||||
<td class='forumheader'>".LWLAN_60."</td>
|
||||
<td class='forumheader'>".LWLAN_7."</td>
|
||||
<td class='forumheader'>".LWLAN_8."</td>
|
||||
</tr>\n";
|
||||
|
||||
while($row = $sql -> db_Fetch())
|
||||
{
|
||||
extract($row);
|
||||
$text .= "
|
||||
|
||||
<form action='".e_SELF."' method='post' id='myform_$linkword_id' onsubmit=\"return jsconfirm('".LWLAN_18." [ID: $linkword_id ]')\">
|
||||
<tr>
|
||||
<td class='forumheader' style='width: 20%;'>$linkword_word</td>
|
||||
<td class='forumheader' style='width: 40%;'>$linkword_link</td>
|
||||
<td class='forumheader' style='width: 10%; text-align: center;'>".(!$linkword_active ? LWLAN_12 : LWLAN_13)."</td>
|
||||
<td class='forumheader' style='width: 30%; text-align: center;'>
|
||||
<input class='button' type='button' onclick=\"document.location='".e_SELF."?edit.$linkword_id'\" value='".LWLAN_16."' id='edit_$linkword_id' name='edit_linkword_id' />
|
||||
<input class='button' type='submit' value='".LWLAN_17."' id='delete_$linkword_id' name='delete_$linkword_id' />
|
||||
<td class='forumheader'>{$row['linkword_id']}</td>
|
||||
<td class='forumheader'>{$row['linkword_word']}</td>
|
||||
<td class='forumheader'>{$row['linkword_link']}</td>
|
||||
<td class='forumheader'>".($row['linkword_newwindow'] ? LAN_YES : LAN_NO)."</td>
|
||||
<td class='forumheader'>{$row['linkword_tooltip']}</td>
|
||||
<td class='forumheader'>".($row['linkword_tip_id'] > 0 ? $row['linkword_tip_id'] : '')."</td>
|
||||
<td class='forumheader' >".$lwaction_vals[$row['linkword_active']]."</td>
|
||||
<td class='forumheader' >
|
||||
<form action='".e_SELF."' method='post' id='myform_{$row['linkword_id']}' onsubmit=\"return jsconfirm('".LWLAN_18." [ID: {$row['linkword_id']} ]')\">
|
||||
<div>
|
||||
<input class='button' type='button' onclick=\"document.location='".e_SELF."?edit.{$row['linkword_id']}'\" value='".LWLAN_16."' id='edit_{$row['linkword_id']}' name='edit_linkword_id' />
|
||||
<input class='button' type='submit' value='".LWLAN_17."' id='delete_{$row['linkword_id']}' name='delete_{$row['linkword_id']}' />
|
||||
</div>
|
||||
</form>\n
|
||||
</td>
|
||||
</tr>
|
||||
</form>\n";
|
||||
";
|
||||
}
|
||||
$text .= "</table>";
|
||||
}
|
||||
@ -239,6 +317,7 @@ if ($action=='options')
|
||||
{
|
||||
$menu_pages = substr($pref['lw_page_visibility'],2); // Knock off the 'show/hide' flag
|
||||
$menu_pages = str_replace("|", "\n", $menu_pages);
|
||||
$AjaxEnable = varset($pref['lw_ajax_enable'],0);
|
||||
$text = "
|
||||
<div class='center'>
|
||||
<form method='post' action='".e_SELF."?options'>
|
||||
@ -265,6 +344,15 @@ if ($action=='options')
|
||||
<td class='forumheader3'><textarea rows='5' cols='60' class='tbox' name='linkword_omit_pages' >".$menu_pages."</textarea>
|
||||
</td>
|
||||
<td class='forumheader3'>".LWLAN_29."
|
||||
</tr>";
|
||||
|
||||
$checked = varset($pref['lw_ajax_enable'],0) ? 'checked=checked' : '';
|
||||
$text .= "
|
||||
<tr>
|
||||
<td class='forumheader3'>".LWLAN_59."</td>
|
||||
<td class='forumheader3'><input type='checkbox' name='lw_ajax_enable' {$checked}>
|
||||
</td>
|
||||
<td class='forumheader3'>".""."
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
|
38
e107_plugins/linkwords/e_help.php
Normal file
38
e107_plugins/linkwords/e_help.php
Normal file
@ -0,0 +1,38 @@
|
||||
<?php
|
||||
/*
|
||||
+ ----------------------------------------------------------------------------+
|
||||
| e107 website system
|
||||
|
|
||||
| ©Steve Dunstan 2001-2002
|
||||
| http://e107.org
|
||||
| jalist@e107.org
|
||||
|
|
||||
| Released under the terms and conditions of the
|
||||
| GNU General Public License (http://gnu.org).
|
||||
|
|
||||
| $Source: /cvs_backup/e107_0.8/e107_plugins/linkwords/e_help.php,v $
|
||||
| $Revision: 1.1 $
|
||||
| $Date: 2008-12-07 21:55:01 $
|
||||
| $Author: e107steved $
|
||||
+----------------------------------------------------------------------------+
|
||||
*/
|
||||
|
||||
if (!defined('e107_INIT')) { exit; }
|
||||
|
||||
include_lan(e_PLUGIN."linkwords/languages/".e_LANGUAGE."_admin_linkwords.php");
|
||||
|
||||
if (e_QUERY) list($action,$junk) = explode('.',e_QUERY); else $action = 'words';
|
||||
|
||||
switch ($action)
|
||||
{
|
||||
case 'options' :
|
||||
$text = LAN_LW_HELP_01;
|
||||
break;
|
||||
case 'words' :
|
||||
case 'edit' :
|
||||
default :
|
||||
$text = LAN_LW_HELP_02;
|
||||
}
|
||||
$ns -> tablerender(LAN_LW_HELP_00, $text);
|
||||
unset($text);
|
||||
?>
|
@ -3,7 +3,7 @@
|
||||
+ ----------------------------------------------------------------------------+
|
||||
| e107 website system
|
||||
|
|
||||
| Steve Dunstan 2001-2002
|
||||
| ©Steve Dunstan 2001-2002
|
||||
| http://e107.org
|
||||
| jalist@e107.org
|
||||
|
|
||||
@ -11,149 +11,213 @@
|
||||
| GNU General Public License (http://gnu.org).
|
||||
|
|
||||
| $Source: /cvs_backup/e107_0.8/e107_plugins/linkwords/e_tohtml.php,v $
|
||||
| $Revision: 1.2 $
|
||||
| $Date: 2008-02-08 20:09:43 $
|
||||
| $Author: mcfly_e107 $
|
||||
| $Revision: 1.3 $
|
||||
| $Date: 2008-12-07 21:55:01 $
|
||||
| $Author: e107steved $
|
||||
|
|
||||
| *utf - flags functions which need utf-8-aware code
|
||||
TODO:
|
||||
1. Add utf-8 aware routines - done, test a bit more
|
||||
2. Add special effects for tooltips
|
||||
3. Caching?
|
||||
|
|
||||
+----------------------------------------------------------------------------+
|
||||
*/
|
||||
|
||||
if (!defined('e107_INIT')) { exit; }
|
||||
if (!plugInstalled('linkwords')) exit;
|
||||
|
||||
|
||||
class e_tohtml_linkwords
|
||||
{
|
||||
var $lw_enabled = FALSE; // Default to disabled to start
|
||||
var $word_list = array(); // List of link words/phrases
|
||||
var $link_list = array(); // Corresponding list of links to apply
|
||||
var $tip_list = array();
|
||||
var $area_opts = array(); // Process flags for the various contexts
|
||||
var $lwAjaxEnabled = FALSE; // Adds in Ajax-compatible links
|
||||
var $utfMode = ''; // Flag to enable utf-8 on regex
|
||||
var $word_list = array(); // List of link words/phrases
|
||||
var $link_list = array(); // Corresponding list of links to apply
|
||||
var $ext_list = array(); // Flags to determine 'open in new window' for link
|
||||
var $tip_list = array(); // Store for tooltips
|
||||
var $area_opts = array(); // Process flags for the various contexts
|
||||
var $block_list = array(); // Array of 'blocked' pages
|
||||
var $LinkID = array(); // Unique ID for each linkword
|
||||
|
||||
|
||||
function to_html()
|
||||
/* constructor */
|
||||
function e_tohtml_linkwords()
|
||||
{
|
||||
global $pref;
|
||||
/* constructor */
|
||||
global $pref, $tp;
|
||||
// See whether they should be active on this page - if not, no point doing anything!
|
||||
if ((strpos(e_SELF, ADMINDIR) !== FALSE) || (strpos(e_PAGE, "admin_") !== FALSE)) return; // No linkwords on admin directories
|
||||
|
||||
// Now see if disabled on specific pages
|
||||
$check_url = e_SELF.(e_QUERY ? "?".e_QUERY : '');
|
||||
$this->block_list = explode("|",substr($pref['lw_page_visibility'],2)); // Knock off the 'show/hide' flag
|
||||
$this->block_list = explode("|",substr(varset($pref['lw_page_visibility'],''),2)); // Knock off the 'show/hide' flag
|
||||
foreach ($this->block_list as $p)
|
||||
{
|
||||
if ($p=trim($p))
|
||||
{
|
||||
if(substr($p, -1) == '!')
|
||||
{
|
||||
$p = substr($p, 0, -1);
|
||||
if(substr($check_url, strlen($p)*-1) == $p) return;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(strpos($check_url, $p) !== FALSE) return;
|
||||
if(substr($p, -1) == '!')
|
||||
{
|
||||
$p = substr($p, 0, -1);
|
||||
if(substr($check_url, strlen($p)*-1) == $p) return;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(strpos($check_url, $p) !== FALSE) return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Will probably need linkwords on this page - so get the info
|
||||
$this->lw_enabled = TRUE;
|
||||
$link_sql = new db;
|
||||
if($link_sql -> db_Select("linkwords", "*", "linkword_active=0"))
|
||||
if($link_sql -> db_Select("linkwords", "*", "linkword_active!=1"))
|
||||
{
|
||||
$this->lw_enabled = TRUE;
|
||||
while ($row = $link_sql->db_Fetch())
|
||||
{
|
||||
$lw = trim(strtolower($row['linkword_word']));
|
||||
extract($row);
|
||||
// $lw = strtolower($linkword_word); // It was trimmed when saved *utf
|
||||
$lw = $tp->uStrToLower($linkword_word); // It was trimmed when saved *utf
|
||||
if ($linkword_active == 2) $linkword_link = ''; // Make sure linkword disabled
|
||||
if ($linkword_active < 2) $linkword_tooltip = ''; // Make sure tooltip disabled
|
||||
$lwID = max($row['linkword_tip_id'], $row['linkword_id']); // If no specific ID defined, use the DB record ID
|
||||
if (strpos($lw,','))
|
||||
{ // Several words to same link
|
||||
$lwlist = explode(',',$lw);
|
||||
foreach ($lwlist as $lw)
|
||||
{
|
||||
$this->word_list[] = trim($lw);
|
||||
$this->link_list[] = $row['linkword_link'];
|
||||
$this->link_list[] = $linkword_link;
|
||||
$this->tip_list[] = $linkword_tooltip;
|
||||
$this->ext_list[] = $linkword_newwindow;
|
||||
$this->LinkID[] = $lwID;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->word_list[] = $lw;
|
||||
$this->link_list[] = $row['linkword_link'];
|
||||
$this->word_list[] = $lw;
|
||||
$this->link_list[] = $linkword_link;
|
||||
$this->tip_list[] = $linkword_tooltip;
|
||||
$this->ext_list[] = $linkword_newwindow;
|
||||
$this->LinkID[] = $lwID;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (is_array($pref['lw_context_visibility']))
|
||||
{
|
||||
$this->area_opts = $pref['lw_context_visibility'];
|
||||
}
|
||||
$this->area_opts = $pref['lw_context_visibility'];
|
||||
$this->utfMode = (strtolower(CHARSET) == 'utf-8') ? 'u' : ''; // Flag to enable utf-8 on regex
|
||||
$this->lwAjaxEnabled = varset($pref['lw_ajax_enable'],0);
|
||||
}
|
||||
|
||||
|
||||
function linkwords($text,$area = 'olddefault')
|
||||
function to_html($text,$area = 'olddefault')
|
||||
{
|
||||
if (!$this->lw_enabled || !array_key_exists($area,$this->area_opts) || !$this->area_opts[$area]) return $text; // No linkwords in disabled areas
|
||||
|
||||
if (!$this->lw_enabled || !array_key_exists($area,$this->area_opts) || !$this->area_opts[$area]) return $text; // No linkwords in disabled areas
|
||||
|
||||
// Split up by HTML tags and process the odd bits here
|
||||
$ptext = "";
|
||||
$lflag = FALSE;
|
||||
$ptext = "";
|
||||
$lflag = FALSE;
|
||||
|
||||
$content = preg_split('#(<.*?>)#mis', $text, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE );
|
||||
foreach($content as $cont)
|
||||
{
|
||||
if (strpos($cont, "<") !== FALSE)
|
||||
{ // Its some HTML
|
||||
$ptext .= $cont;
|
||||
if (strpos($cont,"<a") !== FALSE) $lflag = TRUE;
|
||||
if (strpos($cont,"</a") !== FALSE) $lflag = FALSE;
|
||||
}
|
||||
else
|
||||
{ // Its the text in between
|
||||
if ($lflag)
|
||||
{ // Its probably within a link - leave unchanged
|
||||
$ptext .= $cont;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (trim($cont))
|
||||
{ // Some non-white space - worth word matching
|
||||
$ptext .= $this->linksproc($cont,0,count($this->word_list));
|
||||
// Shouldn't need utf-8 on next line - just looking for HTML tags
|
||||
$content = preg_split('#(<.*?>)#mis', $text, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE );
|
||||
foreach($content as $cont)
|
||||
{
|
||||
if ($cont[0] == "<")
|
||||
{ // Its some HTML
|
||||
$ptext .= $cont;
|
||||
if (substr($cont,0,2) == "<a") $lflag = TRUE;
|
||||
if (substr($cont,0,3) == "</a") $lflag = FALSE;
|
||||
}
|
||||
else
|
||||
{ // Its the text in between
|
||||
if ($lflag)
|
||||
{ // Its probably within a link - leave unchanged
|
||||
$ptext .= $cont;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (trim($cont))
|
||||
{ // Some non-white space - worth word matching
|
||||
$ptext .= $this->linksproc($cont,0,count($this->word_list));
|
||||
// echo "Check linkwords: ".count($this->word_list).'<br />';
|
||||
}
|
||||
else
|
||||
{
|
||||
$ptext .= $cont;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$ptext .= $cont;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return $ptext;
|
||||
return $ptext;
|
||||
}
|
||||
|
||||
function linksproc($text,$first,$limit)
|
||||
{ // This function is called recursively - it splits the text up into blocks - some containing a particular linkword
|
||||
while (($first < $limit) && (stripos($text,$this->word_list[$first]) === FALSE)) { $first++; };
|
||||
if ($first == $limit) return $text; // Return if no linkword found
|
||||
|
||||
// There's at least one occurrence of the linkword in the text
|
||||
$ret = '';
|
||||
$lw = $this->word_list[$first];
|
||||
// This splits the text into blocks, some of which will precisely contain a linkword
|
||||
$split_line = preg_split('#\b('.$lw.')\b#i', $text, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE );
|
||||
foreach ($split_line AS $sl)
|
||||
{
|
||||
if (strcasecmp($sl,$lw) == 0)
|
||||
{ // Do linkword replace
|
||||
$ret .= " <a href='".$this->link_list[$first]."' rel='external'>{$sl}</a>";
|
||||
global $tp;
|
||||
|
||||
// Consider next line - stripos is PHP5, and mb_stripos is PHP >= 5.2 - so may well often require handling
|
||||
// while (($first < $limit) && (stripos($text,$this->word_list[$first]) === FALSE)) { $first++; }; // *utf (stripos is PHP5 - compatibility handler implements)
|
||||
while (($first < $limit) && (strpos($tp->uStrToLower($text),$this->word_list[$first]) === FALSE)) { $first++; }; // *utf
|
||||
if ($first == $limit) return $text; // Return if no linkword found
|
||||
|
||||
// There's at least one occurrence of the linkword in the text
|
||||
// Prepare all info once only
|
||||
// If supporting Ajax, use the following:
|
||||
// <a href='link url' rel='external linkwordId::122' class='linkword-ajax'>
|
||||
// linkwordId::122 is a unique ID
|
||||
$ret = '';
|
||||
$linkwd = '';
|
||||
$linkrel = array();
|
||||
// $linkwd = "href='#' "; // Not relevant for Prototype, but needed with 'pure' JS to make tooltip stuff work - doesn't find link elements without href
|
||||
$lwClass = array();
|
||||
$lw = $this->word_list[$first]; // This is the word we're matching - in lower case in our 'master' list
|
||||
$tooltip = '';
|
||||
if ($this->tip_list[$first])
|
||||
{ // Got tooltip
|
||||
if ($this->lwAjaxEnabled)
|
||||
{
|
||||
$linkrel[] = 'linkwordID::'.$this->LinkID[$first];
|
||||
$lwClass[] = 'lw_ajax';
|
||||
}
|
||||
else
|
||||
{
|
||||
$tooltip = " title='{$this->tip_list[$first]}' ";
|
||||
$lwClass[] = 'lw_tip';
|
||||
}
|
||||
}
|
||||
elseif (trim($sl))
|
||||
{ // Something worthwhile left - look for more linkwords in it
|
||||
$ret .= $this->linksproc($sl,$first+1,$limit);
|
||||
if ($this->link_list[$first])
|
||||
{ // Got link
|
||||
$linkwd = " href='".$tp->replaceConstants($this->link_list[$first])."' ";
|
||||
if ($this->ext_list[$first]) { $linkrel[] = 'external'; } // Determine external links
|
||||
$lwClass[] = 'lw_link';
|
||||
}
|
||||
else
|
||||
if (!count($lwClass))
|
||||
{
|
||||
$ret .= $sl; // Probably just some white space
|
||||
return $this->linksproc($sl,$first+1,$limit); // Nothing to do - move on to next word (shouldn't really get here)
|
||||
}
|
||||
}
|
||||
return $ret;
|
||||
}
|
||||
if (count($linkrel))
|
||||
{
|
||||
$linkwd .= " rel='".implode(' ',$linkrel)."'";
|
||||
}
|
||||
// This splits the text into blocks, some of which will precisely contain a linkword
|
||||
$split_line = preg_split('#\b('.$lw.')\b#i'.$this->utfMode, $text, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE ); // *utf (selected)
|
||||
$class = "class='".implode(' ',$lwClass)."' ";
|
||||
foreach ($split_line as $sl)
|
||||
{
|
||||
if ($tp->uStrToLower($sl) == $lw) // We know the linkword is already lower case // *utf
|
||||
{ // Do linkword replace
|
||||
$ret .= ' <a '.$class.$linkwd.$tooltip.'>'.$sl.'</a>';
|
||||
}
|
||||
elseif (trim($sl))
|
||||
{ // Something worthwhile left - look for more linkwords in it
|
||||
$ret .= $this->linksproc($sl,$first+1,$limit);
|
||||
}
|
||||
else
|
||||
{
|
||||
$ret .= $sl; // Probably just some white space
|
||||
}
|
||||
}
|
||||
return $ret;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
@ -1,68 +0,0 @@
|
||||
<?php
|
||||
/*
|
||||
+ ----------------------------------------------------------------------------+
|
||||
| e107 website system
|
||||
|
|
||||
| ©Steve Dunstan 2001-2002
|
||||
| http://e107.org
|
||||
| jalist@e107.org
|
||||
|
|
||||
| Released under the terms and conditions of the
|
||||
| GNU General Public License (http://gnu.org).
|
||||
|
|
||||
| $Source: /cvs_backup/e107_0.8/e107_plugins/linkwords/languages/English.php,v $
|
||||
| $Revision: 1.4 $
|
||||
| $Date: 2007-07-23 21:02:35 $
|
||||
| $Author: e107steved $
|
||||
+----------------------------------------------------------------------------+
|
||||
*/
|
||||
|
||||
define("LWLAN_1", "Field(s) left blank.");
|
||||
define("LWLAN_2", "Link word saved.");
|
||||
define("LWLAN_3", "Link word updated.");
|
||||
define("LWLAN_4", "No link words defined yet.");
|
||||
define("LWLAN_5", "Words");
|
||||
define("LWLAN_6", "Link");
|
||||
define("LWLAN_7", "Active?");
|
||||
define("LWLAN_8", "Options");
|
||||
define("LWLAN_9", "yes");
|
||||
define("LWLAN_10", "no");
|
||||
define("LWLAN_11", "Existing Linkwords");
|
||||
define("LWLAN_12", "Yes");
|
||||
define("LWLAN_13", "No");
|
||||
define("LWLAN_14", "Submit LinkWord");
|
||||
define("LWLAN_15", "Update LinkWord");
|
||||
define("LWLAN_16", "Edit");
|
||||
define("LWLAN_17", "Delete");
|
||||
define("LWLAN_18", "Are you sure you want to delete this linkword?");
|
||||
define("LWLAN_19", "Linkword deleted.");
|
||||
define("LWLAN_20", "Unable to find that linkword entry.");
|
||||
define("LWLAN_21", "Word to autolink (or comma-separated list of words)");
|
||||
define("LWLAN_22", "Activate?");
|
||||
define("LWLAN_23", "Linkwords Administration");
|
||||
define("LWLAN_24", "Manage Words");
|
||||
define("LWLAN_25", "Options");
|
||||
define("LWLAN_26", "Areas in which to enable linkwords");
|
||||
define("LWLAN_27", "This is the 'context' of the displayed text");
|
||||
define("LWLAN_28", "Pages on which to disable linkwords");
|
||||
define("LWLAN_29", "Same format as menu visibility control. One match per line. Specify a partial or complete URL. End with '!' for exact match of the end part of the link");
|
||||
define("LWLAN_30", "Save options");
|
||||
define("LWLAN_31", "Add/edit linkword");
|
||||
define("LWLAN_32", "Linkword Options");
|
||||
define("LWLAN_33", 'Title areas');
|
||||
define("LWLAN_34", 'Item summaries');
|
||||
define("LWLAN_35", 'Body text');
|
||||
define("LWLAN_36", 'Descriptions (links etc)');
|
||||
define("LWLAN_37", 'Legacy areas');
|
||||
define("LWLAN_38", 'Clickable links');
|
||||
define("LWLAN_39", 'Unprocessed text');
|
||||
define("LWLAN_40", 'User-entered titles (e.g. forum)');
|
||||
define("LWLAN_41", 'User-entered body text (e.g. forum)');
|
||||
|
||||
|
||||
define("LWLANINS_1", "Linkwords");
|
||||
define("LWLANINS_2", "This plugin will link specified words with a defined link");
|
||||
define("LWLANINS_3", "Configure LinkWords");
|
||||
define("LWLANINS_4", "To configure please click on the link in the plugins section of the admin front page");
|
||||
|
||||
?>
|
114
e107_plugins/linkwords/languages/English_admin_linkwords.php
Normal file
114
e107_plugins/linkwords/languages/English_admin_linkwords.php
Normal file
@ -0,0 +1,114 @@
|
||||
<?php
|
||||
|
||||
define("LWLAN_1", "Field(s) left blank.");
|
||||
define("LWLAN_2", "Link word saved.");
|
||||
define("LWLAN_3", "Link word updated.");
|
||||
define("LWLAN_4", "No link words defined yet.");
|
||||
define("LWLAN_5", "Words");
|
||||
define("LWLAN_6", "Link");
|
||||
define("LWLAN_7", "Active?");
|
||||
define("LWLAN_8", "Options");
|
||||
define("LWLAN_9", "yes");
|
||||
define("LWLAN_10", "no");
|
||||
define("LWLAN_11", "Existing Linkwords");
|
||||
define("LWLAN_12", "Yes");
|
||||
define("LWLAN_13", "No");
|
||||
define("LWLAN_14", "Submit LinkWord");
|
||||
define("LWLAN_15", "Update LinkWord");
|
||||
define("LWLAN_16", "Edit");
|
||||
define("LWLAN_17", "Delete");
|
||||
define("LWLAN_18", "Are you sure you want to delete this linkword?");
|
||||
define("LWLAN_19", "Linkword deleted.");
|
||||
define("LWLAN_20", "Unable to find that linkword entry.");
|
||||
define("LWLAN_21", "Word to autolink (or comma-separated list of words)");
|
||||
define("LWLAN_22", "Activate?");
|
||||
define("LWLAN_23", "Linkwords Administration");
|
||||
define("LWLAN_24", "Manage Words");
|
||||
define("LWLAN_25", "Options");
|
||||
define("LWLAN_26", "Areas in which to enable linkwords");
|
||||
define("LWLAN_27", "This is the 'context' of the displayed text");
|
||||
define("LWLAN_28", "Pages on which to disable linkwords");
|
||||
define("LWLAN_29", "Same format as menu visibility control. One match per line. Specify a partial or complete URL. End with '!' for exact match of the end part of the link");
|
||||
define("LWLAN_30", "Save options");
|
||||
define("LWLAN_31", "Add/edit linkword");
|
||||
define("LWLAN_32", "Linkword Options");
|
||||
define("LWLAN_33", 'Title areas');
|
||||
define("LWLAN_34", 'Item summaries');
|
||||
define("LWLAN_35", 'Body text');
|
||||
define("LWLAN_36", 'Descriptions (links etc)');
|
||||
define("LWLAN_37", 'Legacy areas');
|
||||
define("LWLAN_38", 'Clickable links');
|
||||
define("LWLAN_39", 'Unprocessed text');
|
||||
define("LWLAN_40", 'User-entered titles (e.g. forum)');
|
||||
define("LWLAN_41", 'User-entered body text (e.g. forum)');
|
||||
// Reserve numbers for further context strings
|
||||
define('LWLAN_42', '');
|
||||
define('LWLAN_43', '');
|
||||
define('LWLAN_44', '');
|
||||
define('LWLAN_45', '');
|
||||
define('LWLAN_46', '');
|
||||
define('LWLAN_47', '');
|
||||
define('LWLAN_48', '');
|
||||
define('LWLAN_49', '');
|
||||
|
||||
|
||||
define('LWLAN_50', 'Tooltip');
|
||||
define('LWLAN_51', 'Inactive');
|
||||
define('LWLAN_52', 'Linkword only');
|
||||
define('LWLAN_53', 'Tooltip only');
|
||||
define('LWLAN_54', 'Linkword and Tooltip');
|
||||
define('LWLAN_55', 'Open link in new window');
|
||||
define('LWLAN_56', 'Open in new page');
|
||||
define('LWLAN_57', 'Error writing new values');
|
||||
define('LWLAN_58', 'Pref hook converted to 0.8 format'); // Used in 0.7-compatible stub only
|
||||
define('LWLAN_59', 'Enable Ajax functionality');
|
||||
define('LWLAN_60', 'LW ID');
|
||||
define('LWLAN_61', 'ID');
|
||||
define('LWLAN_62', 'Tooltip ID (LW ID)');
|
||||
define('LWLAN_63', '(Positive integers only)');
|
||||
|
||||
// Installation-related
|
||||
define("LWLANINS_1", "Linkwords");
|
||||
define("LWLANINS_2", "This plugin links specified words with a defined link and/or tooltip");
|
||||
define("LWLANINS_3", "Configure LinkWords");
|
||||
define("LWLANINS_4", "To configure please click on the link in the plugins section of the admin front page");
|
||||
define("LWLANINS_5", 'Upgrade complete');
|
||||
|
||||
|
||||
// Help text
|
||||
define('LAN_LW_HELP_00','Linkwords Help');
|
||||
define('LAN_LW_HELP_01','
|
||||
<b><u>Areas to enable</u></b><br />
|
||||
many areas of text have an associated \'context\', and linkwords will only be displayed in areas matching that context.<br /><br />
|
||||
<b><u>Linkwords Disable</u></b><br />
|
||||
Linkwords may be disabled on specific pages, or pages matching a pattern. Enter these here (same syntax as for menus), one pattern per line.
|
||||
If the pattern ends in \'!\', this corresponds to \'end of query\', and is usually an exact match. Otherwise any URL containing the specified string will match.<br />
|
||||
Note that linkwords are <i>never</i> displayed on admin pages.
|
||||
<b><u>Enable Ajax Functionality</u></b><br />
|
||||
The tooltips can use Ajax to get information for display. This usually requires some custom coding.
|
||||
');
|
||||
define('LAN_LW_HELP_02','Define the words which become clickable links, or which display text on mouseover, here<br /><br />
|
||||
<b><u>Word to Link</u></b><br />
|
||||
This is case-insensitive. For multiple words mapping to the same links and tooltips, separate them with commas (no spaces)<br /><br />
|
||||
<b><u>Link</u></b><br />
|
||||
Define a clickable link here. If its an external link, it [i]must[/i] begin \'http://\'. If its a link within this site, the normal {e_XXX} constants may be used.<br /><br />
|
||||
<b><u>Tooltip</u></b><br />
|
||||
This defines the text to be displayed when the user\'s mouse passes over the word.<br /><br />
|
||||
<b><u>LW ID (Tooltip ID)</u></b><br /><br />
|
||||
This defines an optional numeric ID to be used with Ajax processing. If blank, the database record number is used.<br /><br />
|
||||
<b><u>Activate?</u></b><br />
|
||||
Defines which options are active.
|
||||
');
|
||||
|
||||
// Admin log related
|
||||
define('LAN_AL_LINKWD_00', 'Linkword-related message');
|
||||
define('LAN_AL_LINKWD_01', 'Linkword Added');
|
||||
define('LAN_AL_LINKWD_02', 'Linkword Edited');
|
||||
define('LAN_AL_LINKWD_03', 'Linkword deleted');
|
||||
define('LAN_AL_LINKWD_04', 'Linkword options updated');
|
||||
define('LAN_AL_LINKWD_05', 'Linkwords version update'); // Used in 0.7-compatible stub only
|
||||
define('LAN_AL_LINKWD_06', '');
|
||||
|
||||
|
||||
|
||||
?>
|
@ -3,7 +3,7 @@
|
||||
+ ----------------------------------------------------------------------------+
|
||||
| e107 website system
|
||||
|
|
||||
| Steve Dunstan 2001-2002
|
||||
| ©Steve Dunstan 2001-2002
|
||||
| http://e107.org
|
||||
| jalist@e107.org
|
||||
|
|
||||
@ -11,149 +11,71 @@
|
||||
| GNU General Public License (http://gnu.org).
|
||||
|
|
||||
| $Source: /cvs_backup/e107_0.8/e107_plugins/linkwords/linkwords.php,v $
|
||||
| $Revision: 1.9 $
|
||||
| $Date: 2007-06-21 19:40:38 $
|
||||
| $Revision: 1.10 $
|
||||
| $Date: 2008-12-07 21:55:01 $
|
||||
| $Author: e107steved $
|
||||
|
|
||||
| This is just a stub so that systems migrated from 0.7 don't crash
|
||||
| It auto-updates the prefs so that the newer routine is called in future.
|
||||
|
|
||||
+----------------------------------------------------------------------------+
|
||||
*/
|
||||
|
||||
if (!defined('e107_INIT')) { exit; }
|
||||
if (!plugInstalled('linkwords')) exit;
|
||||
|
||||
|
||||
class e_linkwords
|
||||
{
|
||||
var $lw_enabled = FALSE; // Default to disabled to start
|
||||
var $word_list = array(); // List of link words/phrases
|
||||
var $link_list = array(); // Corresponding list of links to apply
|
||||
var $tip_list = array();
|
||||
var $area_opts = array(); // Process flags for the various contexts
|
||||
var $block_list = array(); // Array of 'blocked' pages
|
||||
|
||||
function e_linkwords()
|
||||
{
|
||||
global $pref;
|
||||
global $pref, $admin_log;
|
||||
/* constructor */
|
||||
// See whether they should be active on this page - if not, no point doing anything!
|
||||
if ((strpos(e_SELF, ADMINDIR) !== FALSE) || (strpos(e_PAGE, "admin_") !== FALSE)) return; // No linkwords on admin directories
|
||||
|
||||
// Now see if disabled on specific pages
|
||||
$check_url = e_SELF.(e_QUERY ? "?".e_QUERY : '');
|
||||
$this->block_list = explode("|",substr($pref['lw_page_visibility'],2)); // Knock off the 'show/hide' flag
|
||||
foreach ($this->block_list as $p)
|
||||
{
|
||||
if ($p=trim($p))
|
||||
// Do an auto-update on the variable used to hook parsers - so we should only be called once
|
||||
@include_lan(e_PLUGIN."linkwords/languages/".e_LANGUAGE.".php");
|
||||
$hooks = explode(",",$pref['tohtml_hook']);
|
||||
if (($key=array_search('linkwords',$hooks)) !== FALSE)
|
||||
{
|
||||
if(substr($p, -1) == '!')
|
||||
{
|
||||
$p = substr($p, 0, -1);
|
||||
if(substr($check_url, strlen($p)*-1) == $p) return;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(strpos($check_url, $p) !== FALSE) return;
|
||||
}
|
||||
unset($hooks[$key]);
|
||||
}
|
||||
}
|
||||
if (count($hooks) == 0)
|
||||
{
|
||||
unset($pref['tohtml_hook']);
|
||||
}
|
||||
else
|
||||
{
|
||||
$pref['tohtml_hook'] = implode(',',$hooks);
|
||||
}
|
||||
if (!isset($pref['e_tohtml_list']))
|
||||
{
|
||||
$pref['e_tohtml_list'] = array();
|
||||
}
|
||||
if (!in_array('linkwords',$pref['e_tohtml_list']))
|
||||
{
|
||||
$pref['e_tohtml_list'][] = 'linkwords';
|
||||
}
|
||||
save_prefs();
|
||||
$admin_log->log_event('LINKWD_05',LWLAN_58.'[!br!]'.$pref['tohtml_hook'],''); // Log that the update was done
|
||||
return;
|
||||
}
|
||||
|
||||
// Will probably need linkwords on this page - so get the info
|
||||
$this->lw_enabled = TRUE;
|
||||
$link_sql = new db;
|
||||
if($link_sql -> db_Select("linkwords", "*", "linkword_active=0"))
|
||||
{
|
||||
while ($row = $link_sql->db_Fetch())
|
||||
{
|
||||
$lw = trim(strtolower($row['linkword_word']));
|
||||
if (strpos($lw,','))
|
||||
{ // Several words to same link
|
||||
$lwlist = explode(',',$lw);
|
||||
foreach ($lwlist as $lw)
|
||||
{
|
||||
$this->word_list[] = trim($lw);
|
||||
$this->link_list[] = $row['linkword_link'];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->word_list[] = $lw;
|
||||
$this->link_list[] = $row['linkword_link'];
|
||||
}
|
||||
}
|
||||
}
|
||||
if (is_array($pref['lw_context_visibility']))
|
||||
{
|
||||
$this->area_opts = $pref['lw_context_visibility'];
|
||||
}
|
||||
|
||||
// This avoids confusing the parser!
|
||||
function to_html($text,$area = 'olddefault')
|
||||
{
|
||||
return $text;
|
||||
}
|
||||
|
||||
|
||||
function linkwords($text,$area = 'olddefault')
|
||||
{
|
||||
if (!$this->lw_enabled || !array_key_exists($area,$this->area_opts) || !$this->area_opts[$area]) return $text; // No linkwords in disabled areas
|
||||
|
||||
|
||||
// Split up by HTML tags and process the odd bits here
|
||||
$ptext = "";
|
||||
$lflag = FALSE;
|
||||
|
||||
$content = preg_split('#(<.*?>)#mis', $text, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE );
|
||||
foreach($content as $cont)
|
||||
{
|
||||
if (strpos($cont, "<") !== FALSE)
|
||||
{ // Its some HTML
|
||||
$ptext .= $cont;
|
||||
if (strpos($cont,"<a") !== FALSE) $lflag = TRUE;
|
||||
if (strpos($cont,"</a") !== FALSE) $lflag = FALSE;
|
||||
}
|
||||
else
|
||||
{ // Its the text in between
|
||||
if ($lflag)
|
||||
{ // Its probably within a link - leave unchanged
|
||||
$ptext .= $cont;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (trim($cont))
|
||||
{ // Some non-white space - worth word matching
|
||||
$ptext .= $this->linksproc($cont,0,count($this->word_list));
|
||||
}
|
||||
else
|
||||
{
|
||||
$ptext .= $cont;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return $ptext;
|
||||
return $text;
|
||||
}
|
||||
|
||||
function linksproc($text,$first,$limit)
|
||||
{ // This function is called recursively - it splits the text up into blocks - some containing a particular linkword
|
||||
while (($first < $limit) && (stripos($text,$this->word_list[$first]) === FALSE)) { $first++; };
|
||||
if ($first == $limit) return $text; // Return if no linkword found
|
||||
|
||||
// There's at least one occurrence of the linkword in the text
|
||||
$ret = '';
|
||||
$lw = $this->word_list[$first];
|
||||
// This splits the text into blocks, some of which will precisely contain a linkword
|
||||
$split_line = preg_split('#\b('.$lw.')\b#i', $text, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE );
|
||||
foreach ($split_line AS $sl)
|
||||
{
|
||||
if (strcasecmp($sl,$lw) == 0)
|
||||
{ // Do linkword replace
|
||||
$ret .= " <a href='".$this->link_list[$first]."' rel='external'>{$sl}</a>";
|
||||
}
|
||||
elseif (trim($sl))
|
||||
{ // Something worthwhile left - look for more linkwords in it
|
||||
$ret .= $this->linksproc($sl,$first+1,$limit);
|
||||
}
|
||||
else
|
||||
{
|
||||
$ret .= $sl; // Probably just some white space
|
||||
}
|
||||
}
|
||||
return $ret;
|
||||
}
|
||||
{
|
||||
return $text; // Shouldn't get called - but just in case
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
@ -1,7 +1,10 @@
|
||||
CREATE TABLE linkwords (
|
||||
linkword_id INT(10) UNSIGNED NOT NULL auto_increment,
|
||||
linkword_id int(10) UNSIGNED NOT NULL auto_increment,
|
||||
linkword_active tinyint(1) unsigned NOT NULL default '0',
|
||||
linkword_word varchar(100) NOT NULL default '',
|
||||
linkword_link varchar(200) NOT NULL default '',
|
||||
linkword_link varchar(250) NOT NULL default '',
|
||||
linkword_tooltip text NOT NULL,
|
||||
linkword_tip_id int(10) UNSIGNED NOT NULL Default '0',
|
||||
linkword_newwindow tinyint(1) unsigned NOT NULL default '1',
|
||||
PRIMARY KEY (linkword_id)
|
||||
) TYPE=MyISAM AUTO_INCREMENT=1;
|
@ -1,119 +0,0 @@
|
||||
<?php
|
||||
/*
|
||||
+ ----------------------------------------------------------------------------+
|
||||
| e107 website system
|
||||
|
|
||||
| ©Steve Dunstan 2001-2002
|
||||
| http://e107.org
|
||||
| jalist@e107.org
|
||||
|
|
||||
| Released under the terms and conditions of the
|
||||
| GNU General Public License (http://gnu.org).
|
||||
|
|
||||
| $Source: /cvs_backup/e107_0.8/e107_plugins/linkwords/plugin.php,v $
|
||||
| $Revision: 1.4 $
|
||||
| $Date: 2008-02-01 18:09:02 $
|
||||
| $Author: mcfly_e107 $
|
||||
+----------------------------------------------------------------------------+
|
||||
*/
|
||||
|
||||
if (!defined('e107_INIT')) { exit; }
|
||||
|
||||
@include_once(e_PLUGIN."linkwords/languages/".e_LANGUAGE.".php");
|
||||
@include_once(e_PLUGIN."linkwords/languages/English.php");
|
||||
|
||||
// Plugin info -------------------------------------------------------------------------------------------------------
|
||||
$eplug_name = "LWLANINS_1";
|
||||
$eplug_version = "1.2";
|
||||
$eplug_author = "jalist";
|
||||
$eplug_url = "http://e107.org";
|
||||
$eplug_email = "jalist@e107.org";
|
||||
$eplug_description = LWLANINS_2;
|
||||
$eplug_compatible = "e107v7+";
|
||||
$eplug_readme = "";
|
||||
// leave blank if no readme file
|
||||
|
||||
// Name of the plugin's folder -------------------------------------------------------------------------------------
|
||||
$eplug_folder = "linkwords";
|
||||
|
||||
// Mane of menu item for plugin ----------------------------------------------------------------------------------
|
||||
$eplug_menu_name = "";
|
||||
|
||||
// Name of the admin configuration file --------------------------------------------------------------------------
|
||||
$eplug_conffile = "admin_config.php";
|
||||
|
||||
// Icon image and caption text ------------------------------------------------------------------------------------
|
||||
$eplug_icon = $eplug_folder."/images/linkwords_32.png";
|
||||
$eplug_icon_small = $eplug_folder."/images/linkwords_16.png";
|
||||
$eplug_caption = LWLANINS_3;
|
||||
|
||||
// List of preferences -----------------------------------------------------------------------------------------------
|
||||
|
||||
$eplug_array_pref = array(
|
||||
'tohtml_hook' => 'linkwords'
|
||||
);
|
||||
$eplug_prefs = array(
|
||||
'lw_page_visibility'=>'',
|
||||
'lw_context_visibility'=>array(
|
||||
'olddefault' => FALSE,
|
||||
'title' => FALSE,
|
||||
'summary' => TRUE,
|
||||
'body' => TRUE,
|
||||
'description' => TRUE,
|
||||
'user_title' => FALSE,
|
||||
'user_body' => TRUE,
|
||||
'linktext' => FALSE,
|
||||
'rawtext' => FALSE
|
||||
)
|
||||
);
|
||||
|
||||
// List of table names -----------------------------------------------------------------------------------------------
|
||||
$eplug_table_names = array(
|
||||
"linkwords"
|
||||
);
|
||||
|
||||
// List of sql requests to create tables -----------------------------------------------------------------------------
|
||||
$eplug_tables = array(
|
||||
"CREATE TABLE ".MPREFIX."linkwords (
|
||||
linkword_id INT UNSIGNED NOT NULL auto_increment,
|
||||
linkword_active tinyint(1) unsigned NOT NULL default '0',
|
||||
linkword_word varchar(100) NOT NULL default '',
|
||||
linkword_link varchar(150) NOT NULL default '',
|
||||
PRIMARY KEY ( linkword_id )
|
||||
) TYPE=MyISAM AUTO_INCREMENT=1;"
|
||||
);
|
||||
|
||||
|
||||
// Create a link in main menu (yes=TRUE, no=FALSE) -------------------------------------------------------------
|
||||
$eplug_link = FALSE;
|
||||
$eplug_link_name = "";
|
||||
$ec_dir = e_PLUGIN."";
|
||||
$eplug_link_url = "";
|
||||
|
||||
|
||||
// Text to display after plugin successfully installed ------------------------------------------------------------------
|
||||
$eplug_done = LWLANINS_4;
|
||||
|
||||
|
||||
// upgrading ... //
|
||||
|
||||
$upgrade_add_prefs = array(
|
||||
'lw_page_visibility'=>'',
|
||||
'lw_context_visibility'=>array(
|
||||
'olddefault' => FALSE,
|
||||
'title' => FALSE,
|
||||
'summary' => TRUE,
|
||||
'body' => TRUE,
|
||||
'description' => TRUE,
|
||||
'linktext' => FALSE,
|
||||
'rawtext' => FALSE
|
||||
)
|
||||
);
|
||||
|
||||
$upgrade_remove_prefs = "";
|
||||
|
||||
$upgrade_alter_tables = "";
|
||||
|
||||
$eplug_upgrade_done = "";
|
||||
|
||||
?>
|
31
e107_plugins/linkwords/plugin.xml
Normal file
31
e107_plugins/linkwords/plugin.xml
Normal file
@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- $Id: plugin.xml,v 1.1 2008-12-07 21:55:02 e107steved Exp $ -->
|
||||
<e107Plugin name="LWLANINS_1" version="1.1" compatibility="0.8" installRequired="true" >
|
||||
<author name="jalist, steved" url="http://e107.org" />
|
||||
<description>This plugin will link specified words with a defined link and/or tooltip</description>
|
||||
<folder>linkwords</folder>
|
||||
<logLanguageFile filename="languages/--LAN--.php" />
|
||||
<administration>
|
||||
<configFile>admin_config.php</configFile>
|
||||
<icon>images/linkwords_32.png</icon>
|
||||
<iconSmall>images/linkwords_16.png</iconSmall>
|
||||
<caption>Configure LinkWords</caption>
|
||||
<installDone>To configure please click on the link in the plugins section of the admin front page</installDone>
|
||||
</administration>
|
||||
<mainPrefs>
|
||||
<pref name="lw_page_visibility" value="" />
|
||||
<pref name="lw_context_visibility" type="array">
|
||||
<key name="OLDDEFAULT" value="" />
|
||||
<key name="TITLE" value="" />
|
||||
<key name="SUMMARY" value="1" />
|
||||
<key name="BODY" value="1" />
|
||||
<key name="DESCRIPTION" value="1" />
|
||||
<key name="USER_TITLE" value="" />
|
||||
<key name="USER_BODY" value="1" />
|
||||
<key name="LINKTEXT" value="" />
|
||||
<key name="RAWTEXT" value="" />
|
||||
</pref>
|
||||
<pref name="lw_ajax_enable" value="0" />
|
||||
<arrayPref name="e_tohtml_list" value="linkwords" />
|
||||
</mainPrefs>
|
||||
</e107Plugin>
|
Loading…
x
Reference in New Issue
Block a user