Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Помогите исправить ошибки php в плагине jautometa
Espey  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пользователь
**

Профиль
Группа: Пользователь
Сообщений: 57
Пользователь №: 39050
На форуме: 2 года, 8 месяцев, 29 дней
Карма:




Помогите исправить ошибки php в плагине jautometa для joomla:

Strict Standards: Only variables should be assigned by reference in /kunden/112919_55497/kuehn/plugins/content/jautometa/jautometa.php on line 25:

$app =& JFactory::getApplication();


Strict Standards: Only variables should be assigned by reference in /kunden/112919_55497/kuehn/plugins/content/jautometa/jautometa.php on line 71

$document =& JFactory::getDocument();


Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /kunden/112919_55497/kuehn/plugins/content/jautometa/jautometa.php on line 101

content = preg_replace($regex, '', $content);


Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /kunden/112919_55497/kuehn/plugins/content/jautometa/jautometa.php on line 141

$keyw = preg_replace($regex, '', $keyw);



Вот весь файл jautometa.php:

<?php
/**
*
@version 2.2 jAutoMeta.php 2013-08-01
*
@package Joomla
*
@subpackage jAutoMeta
*
@author VMLab
*
@link http://www.vmlab.it/
* @copyright Copyright © 2012 - 2013 VMLab. All rights reserved.
*
@license GNU/GPL
* This plugin will automatically generate Meta Tags from your articles content.
*/


// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );

jimport( 'joomla.plugin.plugin' );

class plgContentJautometa extends JPlugin {

public function __construct(&$subject, $config){
parent::__construct($subject, $config);
}

public function onContentPrepare($context, &$article, &$params, $page=0 ){
$app =& JFactory::getApplication();
/* @var $app JApplication */

if($app->isAdmin()) {
return;
}

$doc = JFactory::getDocument();
/* @var $doc JDocumentHtml */
$docType = $doc->getType();

// Check document type
if(strcmp("html", $docType) != 0){
return;
}

$currentOption = JRequest::getCmd("option");
$currentView = JRequest::getCmd("view");

if( $currentOption != "com_content" || $currentView != "article" || !isset($this->params)) {
return;
}

if($article->id==""){return;}

if ($context = 'com_content.article') {
$catsID = $this->params->get("category");
if($catsID){
$catsID = '@,'.str_replace(' ','',$catsID).',';
$artcatID = ','.$article->catid.',';
$selectedcategory = strpos($catsID,$artcatID);
if($selectedcategory > 0){
$replacemeta = true;
}else{
$replacemeta = false;
}
}
else{
$replacemeta = true;
}

if($replacemeta){

$charset = $this->params->get("charset");
$length = $this->params->get("length");
$minlength = $this->params->get("minlength");
$count = $this->params->get("count");
$document =& JFactory::getDocument();

$description = $this->generateDescription($article->text,$charset);

$toKey = $description;

$description = rtrim(substr($description,0,$length));

$document->setMetaData('description', $description);

if($this->params->get("keywords") == "title")$generateKey = $article->title;
if($this->params->get("keywords") == "content")$generateKey = $toKey;
if($this->params->get("keywords") == "both")$generateKey = $article->title.' '.$toKey;

$keywords = $this->generateKeywords($generateKey,$minlength,$count,$charset);
$document->setMetaData('keywords', $keywords);
}
}
}


public function generateDescription($content,$charset){
$content = preg_replace( "'<script[^>]*>.*?</script>'si", '', $content );
$content = preg_replace( '/<!--.+?-->/', '', $content );
$content = preg_replace( '/{.+?}/', '', $content );
$content = strip_tags( $content );
$content = preg_replace( '/<a\s+.*?href="([^"]+)"[^>]*>([^<]+)<\/a>/is', '\2 (\1)', $content );
$content = preg_replace('/<[^>]*>/', ' ', $content);

// Remove any email addresses
$regex = '/(([_A-Za-z0-9-]+)(\\.[_A-Za-z0-9-]+)*@([A-Za-z0-9-]+)(\\.[A-Za-z0-9-]+)*)/iex';
$content = preg_replace($regex, '', $content);

// convert html entities to chars
$content = html_entity_decode($content,ENT_QUOTES,$charset);


$content = str_replace('"', '\'', $content); //Make sure all quotes play nice with meta.
$content = str_replace(array("\r\n", "\r", "\n", "\t"), " ", $content); //Change spaces to spaces

// remove any extra spaces

while (strchr($content," ")) {
$content = str_replace(" ", " ",$content);
}

// general sentence tidyup
for ($cnt = 1; $cnt < JString::strlen($content)-1; $cnt++) {
// add a space after any full stops or comma's for readability
// added as strip_tags was often leaving no spaces

if ( ($content{$cnt} == '.') || (($content{$cnt} == ',') && !(is_numeric($content{$cnt+1})))) {
if ($content{$cnt+1} != ' ') {
$content = JString::substr_replace($content, ' ', $cnt + 1, 0);
}
}
}


return trim($content);

}

public function generateKeywords($keyw,$minlength,$count,$charset){
$keyw = str_replace(array(",",".",";",":","!","(",")","?")," ",$keyw);
$keyw = preg_replace( "'<script[^>]*>.*?</script>'si", '', $keyw );
$keyw = preg_replace( '/<!--.+?-->/', '', $keyw );
$keyw = preg_replace( '/{.+?}/', '', $keyw );
//$keyw = strip_tags( $keyw );
$keyw = preg_replace( '/<a\s+.*?href="([^"]+)"[^>]*>([^<]+)<\/a>/is', '\2 (\1)', $keyw );
$keyw = preg_replace('/<[^>]*>/', ' ', $keyw);

// Remove any email addresses
$regex = '/(([_A-Za-z0-9-]+)(\\.[_A-Za-z0-9-]+)*@([A-Za-z0-9-]+)(\\.[A-Za-z0-9-]+)*)/iex';
$keyw = preg_replace($regex, '', $keyw);

// convert html entities to chars
$keyw = html_entity_decode($keyw,ENT_QUOTES,$charset);


$keyw = str_replace('"', '\'', $keyw); //Make sure all quotes play nice with meta.
$keyw = str_replace(array("\r\n", "\r", "\n", "\t"), " ", $keyw); //Change spaces to spaces

// remove any extra spaces

while (strchr($keyw," ")) {
$keyw = str_replace(" ", " ",$keyw);
}

// general sentence tidyup
for ($cnt = 1; $cnt < JString::strlen($keyw)-1; $cnt++) {
// add a space after any full stops or comma's for readability
// added as strip_tags was often leaving no spaces

if ( ($keyw{$cnt} == '.') || (($keyw{$cnt} == ',') && !(is_numeric($keyw{$cnt+1})))) {
if ($keyw{$cnt+1} != ' ') {
$keyw = JString::substr_replace($keyw, ' ', $cnt + 1, 0);
}
}
}


$keyw = str_replace(" ", ",", trim($keyw));

$stickArray = explode(",", $keyw);

$keysArray = array_count_values($stickArray);

arsort($keysArray);
$i = 1;
$keywords = "";
$gkeywords = "";

if (JString::strlen($keyw)>0) {
foreach($keysArray as $word => $instances){
if(JString::strlen(trim($word)) >= $minlength && is_string($word)){
if($i > $count)
break;
if(in_array($word,$stickArray)) {
$gkeywords .= $word . ",";
$i++;
}
}
}
}

$keywords = $gkeywords;
$keywords = JString::rtrim($keywords, ",");
return $keywords;
}
}

?>


Заранее благодарен за помощь.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
jetistyum  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 2605
Пользователь №: 5568
На форуме: 8 лет, 4 месяца, 24 дня
Карма: 30




1. Убери & перед вызовом метода;
2. модификаторы /e тут можно убрать скорее всего. Не вижу смысла в них. Он попытается выполнить строку как php код. Предусмотрен ли в этом смысл?

А вообще код достаточно старый, заточен под старую версию php, если таких модулей много, чистить придется долго.
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Espey  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пользователь
**

Профиль
Группа: Пользователь
Сообщений: 57
Пользователь №: 39050
На форуме: 2 года, 8 месяцев, 29 дней
Карма:




Капец какой то, сейчас попробую убрать.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Espey  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пользователь
**

Профиль
Группа: Пользователь
Сообщений: 57
Пользователь №: 39050
На форуме: 2 года, 8 месяцев, 29 дней
Карма:




Убрал, работает. Ура. Спасибо вам.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса