0 Пользователей и 1 Гость просматривают эту тему.
  • 15 Ответов
  • 2049 Просмотров
*

max_1985

  • Давно я тут
  • 611
  • 56 / 0
Хочу реализовать удаление всех телефонов из описания и заголовка при добавлении объявления, но не знаю к какой функции это прекрипить
Подскажите пожалуйста и подравте если что не так.
Код
if ($key=='ad_text' or $key=='ad_headline') {
$_POST[$key]=preg_replace("/(?<!\w)(?:(?:(?:(?:\+?3)?8\W{0,3})?0\W{0,3})?[34569]\s?\d[^\w,;(\+]{0,3})?\d\W{0,3}\d\W{0,3}\d\W{0,3}\d\W{0,3}\d\W{0,3}\d\W{0,3}\d(?!(\W?\d))/x",'', $_POST[$key]);
}
« Последнее редактирование: 23.10.2013, 18:00:47 от max_1985 »
*

grinat

  • Захожу иногда
  • 356
  • 34 / 2
Хочу реализовать удаление все телефоны из описания и заголовка при добавлении объявления, но не знаю к какой функции это прекрипить
Подскажите пожалуйста и подравте если что не так.
Код
if ($key=='ad_text' or $key=='ad_headline') {
$_POST[$key]=preg_replace("/(?<!\w)(?:(?:(?:(?:\+?3)?8\W{0,3})?0\W{0,3})?[34569]\s?\d[^\w,;(\+]{0,3})?\d\W{0,3}\d\W{0,3}\d\W{0,3}\d\W{0,3}\d\W{0,3}\d\W{0,3}\d(?!(\W?\d))/x",'', $_POST[$key]);
}
В controller.php функция save, в самое начало
*

max_1985

  • Давно я тут
  • 611
  • 56 / 0
В controller.php функция save, в самое начало
Что-то не так, не удаляет, может что еще дописать надо?
*

grinat

  • Захожу иногда
  • 356
  • 34 / 2
Что-то не так, не удаляет, может что еще дописать надо?
Как выглядит полный код, так?
foreach($_POST as $key=>$value){
<...>$key=='ad_text' or $key=='ad_h<...>
}
Если да, то в регулярке могут быть огрехи
*

max_1985

  • Давно я тут
  • 611
  • 56 / 0
Как выглядит полный код, так?
foreach($_POST as $key=>$value){
<...>$key=='ad_text' or $key=='ad_h<...>
}
Если да, то в регулярке могут быть огрехи

Код
foreach ( $_POST as $key => $value )
{
$_POST[$key]=ereg_replace('<', '<', $_POST[$key]);
$_POST[$key]=ereg_replace('>', '>', $_POST[$key]);

if ($key=='ad_text' or $key=='ad_headline') {

$_POST[$key]=preg_replace("/(?<!\w)(?:(?:(?:(?:\+?3)?8\W{0,3})?0\W{0,3})?[34569]\s?\d[^\w,;(\+]{0,3})?\d\W{0,3}\d\W{0,3}\d\W{0,3}\d\W{0,3}\d\W{0,3}\d\W{0,3}\d(?!(\W?\d))/x",'', $_POST[$key]);

}
}
так

а регулярка вроде правильная, взял здесь http://habrahabr.ru/post/110731/
на другом сайте работает.
« Последнее редактирование: 13.05.2013, 18:06:58 от max_1985 »
*

max_1985

  • Давно я тут
  • 611
  • 56 / 0
В controller.php функция save, в самое начало
а может лучше в components/com_adsmanager/views/edit/tmpl/default.php?
там где foreach($this->fields as $field)
*

max_1985

  • Давно я тут
  • 611
  • 56 / 0
За помощь подкину немного WMR  ^-^
Пишите в личку!
*

Alex89

  • Давно я тут
  • 555
  • 198 / 1
  • Joomlaman :)
Код
$_POST[$key]=ereg_replace('<', '<', $_POST[$key]);
$_POST[$key]=ereg_replace('>', '>', $_POST[$key]);
"или я тупой, или лыжи не едут", но не понял сути этих строк
Код
if ($key=='ad_text' or $key=='ad_headline') {

$_POST[$key]=preg_replace("/(?<!\w)(?:(?:(?:(?:\+?3)?8\W{0,3})?0\W{0,3})?[34569]\s?\d[^\w,;(\+]{0,3})?\d\W{0,3}\d\W{0,3}\d\W{0,3}\d\W{0,3}\d\W{0,3}\d\W{0,3}\d(?!(\W?\d))/x",'', $_POST[$key]);

}
а не проще было изменять переменные вне цикла?
Код
$_POST['ad_text']=preg_replace("/(?<!\w)(?:(?:(?:(?:\+?3)?8\W{0,3})?0\W{0,3})?[34569]\s?\d[^\w,;(\+]{0,3})?\d\W{0,3}\d\W{0,3}\d\W{0,3}\d\W{0,3}\d\W{0,3}\d\W{0,3}\d(?!(\W?\d))/x",'', $_POST['ad_text']);
$_POST['ad_headline']=preg_replace("/(?<!\w)(?:(?:(?:(?:\+?3)?8\W{0,3})?0\W{0,3})?[34569]\s?\d[^\w,;(\+]{0,3})?\d\W{0,3}\d\W{0,3}\d\W{0,3}\d\W{0,3}\d\W{0,3}\d\W{0,3}\d(?!(\W?\d))/x",'', $_POST['ad_headline']);
В Joomla для безопасности используется свой класс (JRequest) для работы с глобальными массивами ($_GET, $_POST, $_FILES, $_COOKIE и т.д.)

Ну а теперь по делу:
Изменение значений переменных в массиве $_POST ни к чему не приведёт, как ни старайтесь (достаточно глянуть код функции сохранения объявления, чтобы стало всё понятно)
В общем как и говорил ув. grinat, открываете controller.php и в функции save ищете строки
Код
		$content->bindContent(JRequest::get( 'post' ),JRequest::get( 'files' ),
  $conf,$this->getModel("adsmanager"),$plugins);

if (function_exists('bindPaidSystemContent')) {
bindPaidSystemContent($content,
  JRequest::get( 'post' ),JRequest::get( 'files' ),
  $conf,$this->getModel("adsmanager"));
}
после них вставляете
Код
$content->data['fields']['ad_text']=preg_replace("/(?<!\w)(?:(?:(?:(?:\+?3)?8\W{0,3})?0\W{0,3})?[34569]\s?\d[^\w,;(\+]{0,3})?\d\W{0,3}\d\W{0,3}\d\W{0,3}\d\W{0,3}\d\W{0,3}\d\W{0,3}\d(?!(\W?\d))/x",'', $content->data['fields']['ad_text']);
$content->data['fields']['ad_headline']=preg_replace("/(?<!\w)(?:(?:(?:(?:\+?3)?8\W{0,3})?0\W{0,3})?[34569]\s?\d[^\w,;(\+]{0,3})?\d\W{0,3}\d\W{0,3}\d\W{0,3}\d\W{0,3}\d\W{0,3}\d\W{0,3}\d(?!(\W?\d))/x",'', $content->data['fields']['ad_headline']);
теперь работоспособность будет зависеть только от правильности регулярки
Увеличить посещаемость сайта помогут здесь - http://tinyurl.com/kpaprwy
Если помог, ткните "крестик" в репу!
*

max_1985

  • Давно я тут
  • 611
  • 56 / 0
Все четко работает!
Огромное спасибо!

Номер кошелька скиньте, как обещал с меня магар. Или могу поделиться AJAX Search Module или Report This Ad Plugin ^-^

Еще все таки а если с условием, как правильно, я просто еще хочу пару регулярок запихнуть?
« Последнее редактирование: 17.05.2013, 09:22:02 от max_1985 »
*

max_1985

  • Давно я тут
  • 611
  • 56 / 0
« Последнее редактирование: 17.05.2013, 10:19:06 от max_1985 »
*

Alex89

  • Давно я тут
  • 555
  • 198 / 1
  • Joomlaman :)
Цитировать
Номер кошелька скиньте, как обещал с меня магар. Или могу поделиться AJAX Search Module или Report This Ad Plugin
скиньте модуль поиска да и хватит
Цитировать
Еще все таки а если с условием, как правильно, я просто еще хочу пару регулярок запихнуть?
Поподробней объясните, "недопетрю" зачем какие-то условия вставлять
Увеличить посещаемость сайта помогут здесь - http://tinyurl.com/kpaprwy
Если помог, ткните "крестик" в репу!
*

max_1985

  • Давно я тут
  • 611
  • 56 / 0
скиньте модуль поиска да и хватитПоподробней объясните, "недопетрю" зачем какие-то условия вставлять
чтоб по несколько раз не писать одно и тоже
например
if ($content=='ad_text' or $content=='ad_headline') {
$content->data['fields']=preg_replace("регулярка телефона",'', $content->data['fields']);
$content->data['fields']=preg_replace("регулярка e-mail",'', $content->data['fields']);
$content->data['fields']=preg_replace("регулярка веб-сайт",'', $content->data['fields']);
}
поправьте пожалуйста!
Куда кидать модуль?
*

Alex89

  • Давно я тут
  • 555
  • 198 / 1
  • Joomlaman :)
скорость выполнения будет самой высокой как раз если прописывать регулярку для каждого поля, если же всё-таки лень писать, то можно пройтись по массиву также как и Вы хотели сделать с масивом $_POST
Код
foreach($content->data['fields'] as $key=>$value)
if ($key=='ad_text' or $key=='ad_headline')
$content->data['fields'][$key]=...
...
Увеличить посещаемость сайта помогут здесь - http://tinyurl.com/kpaprwy
Если помог, ткните "крестик" в репу!
*

max_1985

  • Давно я тут
  • 611
  • 56 / 0
скорость выполнения будет самой высокой как раз если прописывать регулярку для каждого поля, если же всё-таки лень писать, то можно пройтись по массиву также как и Вы хотели сделать с масивом $_POST
спасибо за совет!
*

max_1985

  • Давно я тут
  • 611
  • 56 / 0
эх не нарадуюсь 50% проблем с администрированием объявлений решено!  :D
*

max_1985

  • Давно я тут
  • 611
  • 56 / 0
Хочу еще реализовать такую штуку, чтоб при загрузке маленьких картинок (например 150Х150) выводилось сообщение (В выбранных Вами файлах присутствовали картинки маленького размера) и чтоб они не попали в список загружаемых.
На php представляю как это сделать, но в данном случае это не прокатит.
А на java не очень, хотя куда примерно вставить код понимаю:
/components/com_adsmanager/views/edit/tmpl/default.php
где-то здесь
Код
 FilesAdded: function(up, files) {



maxnewimages = max_total_file_count - current_uploaded_files_count;
// Check if the size of the queue is bigger than max_file_count
   if(up.files.length > maxnewimages)
   {
       // Removing the extra files
       while(up.files.length > maxnewimages)
       {
           if(up.files.length > maxnewimages)
            up.removeFile(up.files[maxnewimages]);
       }
       alert('<?php echo JText::_(sprintf("Max %s Files",$this->conf->nb_images))?>');
   }

   if (typeof updatePaidCurrentFileCount != "undefined") {
    updatePaidCurrentFileCount(current_uploaded_files_count+nb_files_in_queue,
      current_uploaded_files_count+up.files.length);
   }
   nb_files_in_queue = up.files.length;
       setCurrentFileCount();
},
Помогите пожалуйста разобраться!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Редактировать все объявления

Автор den_ko

Ответов: 32
Просмотров: 10306
Последний ответ 25.11.2021, 10:43:38
от FlexNL
Заглушки с http://placehold.it вместо картинок в списке объявлений

Автор efimov777

Ответов: 6
Просмотров: 3311
Последний ответ 12.04.2020, 07:25:59
от Pavel
Слетают категории объявления

Автор guardnext

Ответов: 1
Просмотров: 1867
Последний ответ 09.07.2019, 10:10:59
от guardnext
AdsManger не удаляет объявления

Автор kozhenevsky

Ответов: 0
Просмотров: 1063
Последний ответ 15.02.2018, 12:08:29
от kozhenevsky
Лечим кнопку "Delete from favorites" на странице объявления. AdsManager 3.1.11

Автор Mick_20

Ответов: 1
Просмотров: 1384
Последний ответ 24.12.2017, 22:28:14
от vadim73