Новости Joomla

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

Natasha

  • Захожу иногда
  • 93
  • 16 / 0
1. Открываем файл ..../components/com_facileforms/facileforms.process.php
2. Находим там функцию function saveUpload()
3. ищем упоминание про timestamp, практически в самом начале
4. не знаю что там было раньше :( (я переписала под себя) у меня теперь  там
Код
		if (!is_writable($baseDir)) {
$this->status = _FF_STATUS_UPLOAD_FAILED;
$this->message = _FACILEFORMS_PROCESS_DIRNOTWRTBLE;
return '';
} // if
$path = $baseDir;// видимо эта строка поменялась
if ($timestamp) $path .= date('YmdHis').'_';// видимо эта строка поменялась
$path .= $userfile_name;// видимо эта строка поменялась
if (file_exists($path)) {
$this->status = _FF_STATUS_UPLOAD_FAILED;
$this->message = _FACILEFORMS_PROCESS_FILEEXISTS;
return '';
} // if

*

revil

  • Захожу иногда
  • 103
  • 5 / 0
2 Natasha

Спасибо :)

2 Олег

Сам тожде парился, добавил код, но файл не прикреплялся хоть ты тресни, в итоге сделал запрос к БД по другому и заработало:

$result = mysql_query("SELECT value FROM jos_facileforms_subrecords WHERE record=$this->record_id and type='File Upload' ");
$result = mysql_fetch_row($result);
$attachment = $result[0];

Вставить нужно в том же месте, ну и по аналогии можно сделать чтобы несколько файлов прикреплять
*

Natasha

  • Захожу иногда
  • 93
  • 16 / 0
незачто :)
все получилось?
*

revil

  • Захожу иногда
  • 103
  • 5 / 0
да, всё отлично :)

Спасибо, за столь нужную вещь ...

Подскажите как поставить ограничение на размер файла, с выводом предупреждения?
Где поставить само ограничение я вижу, но вот если к форме добавлен файл с превышением ограничения ... мой скоипт выполняется ... но письма нет.
Я так понимаю, что это каким то образом должно быть изображено в скрипте php - подскажите?
*

Natasha

  • Захожу иногда
  • 93
  • 16 / 0
а тебе надо что бы оно присылалось? с к-либо пометкой?

а тебе надо что бы оно присылалось? с к-либо пометкой?
Нет. Видимо не правильно написал. Что-то как-то странно оно работает. Начнем по порядку:
1. В саму форму добавил возможность прикрепления файла к письму, работает только с маленькими файлами, еще не вычислил размер, но файлы 400кб не пересылаются!
2. Что такое "Максимальный размер файла: 2000000", в настройках формы - это сколько?
3. Как мне сделать проверку объема прикрепленного файла? Т.е. человек показал путь к файлу, нажал кнопку "отправить", но форма выдала окошко, что файл для отправки велик? Такие проверки у меня стоят на заполнение других полей и e-mail.
*

Natasha

  • Захожу иногда
  • 93
  • 16 / 0
я так поняла что тебе "на лету" надо размер файла узнать?
здесь есть JS в котором как-то узнают размер файла, но который доступен по ссылке - посмотри может что полезное найдешь

вообще - поищи скрипты, должно что-то быть...
обычно, правда, PHP ф-ей делают
« Последнее редактирование: 07.12.2007, 14:54:01 от Natasha »
*

Git

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Цитировать
Сам тожде парился, добавил код, но файл не прикреплялся хоть ты тресни, в итоге сделал запрос к БД по другому и заработало:

$result = mysql_query("SELECT value FROM jos_facileforms_subrecords WHERE record=$this->record_id and type='File Upload' ");
$result = mysql_fetch_row($result);
$attachment = $result[0];

Подскажите, пожалуйста, что с этим делать? Это надо в пхп-админ заходить или где это это надо вставить?

В файле /components/com_facileforms/facileforms.process.php , где идет упоминание про timestamp e меня следующий код:

Код
		$path = $baseDir.$userfile_name;
if ($timestamp) $path .= '.'.date('YmdHis');
if (file_exists($path)) {
$this->status = _FF_STATUS_UPLOAD_FAILED;
$this->message = _FACILEFORMS_PROCESS_FILEEXISTS;
return '';
} // if
*

revil

  • Захожу иногда
  • 103
  • 5 / 0
Здесь была инструкция, где написано что и где менять:
http://joomlaforum.ru/index.php/topic,8532.msg74809.html#msg74809

Соответственно, я этот код
Цитировать
$database->setQuery(
      "select value  from #__facileforms_subrecords ".
      "where record=".$this->record_id." and type='File Upload'"
      );
      $rows = $database->loadObjectList();
      $cnt = count($rows);
      if ($cnt) {
      for ($i = 0; $i < $cnt; $i++) {
         $row = $rows[$i];
         $attachment = array_merge($attachment, $row->value);
         };
      } // if


заменил на свой, иначе лично у меня не работало
*

Git

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Цитировать
Здесь была инструкция, где написано что и где менять:
http://joomlaforum.ru/index.php/topic,8532.msg74809.html#msg74809

Я так пробовал еще с самого начала, по мере прочтения данного топика. Результат - ничего не изменилось совершенно. В письме также приходили пути для скачки.

Цитировать
заменил на свой, иначе лично у меня не работало
А на какой СВОЙ код пришлось менять, не подскажите?

Может дело в версии. У  меня стоит com_facileforms_147_ru на Joomla_1.0.13_RE-Stable-Full
*

revil

  • Захожу иногда
  • 103
  • 5 / 0
Версия у меня аналогичная,
собственно я сделал как в инструкции, но вложения на почту все равно не приходили, тогда я этот код

Цитировать
$database->setQuery(
      "select value  from #__facileforms_subrecords ".
      "where record=".$this->record_id." and type='File Upload'"
      );
      $rows = $database->loadObjectList();
      $cnt = count($rows);
      if ($cnt) {
      for ($i = 0; $i < $cnt; $i++) {
         $row = $rows[$i];
         $attachment = array_merge($attachment, $row->value);
         };
      } // if

заменил на свой (просто сам запрос к БД немного поменял)

Цитировать
$result = mysql_query("SELECT value FROM jos_facileforms_subrecords WHERE record=$this->record_id and type='File Upload' ");
$result = mysql_fetch_row($result);
$attachment = $result[0];

после этого вложения стали приходить на почту
*

Git

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Сделал как и описано выше, но результат "0". Письма как приходили с физическим путем, так и приходят.
Может у меня в самом компоненте не те настройки стоят:

Использовать живой сайт в configuration.php : нет
Заменить путь к {ff_images} : {mossite}/components/com_facileforms/images
Заменить путь к {ff_uploads} : {mospath}/components/com_facileforms/uploads

Настройки элемента загрузки файлов:
Папка загрузки: {ff_uploads}
Mime Types allowed: text/*,application/zip

Хотя все они у меня идут по умолчанию. Я их не менял. Даже странно.
*

xbah1

  • Осваиваюсь на форуме
  • 27
  • 0 / 1
Ну пришли в личку мне, чтоли пяток этих семизнаков. Больше не надо, может тебе пригодятся. А можешь и вообще не присылать.

Я сам это сделал на 1.4.7, но подробнее опишу, чтобы и на ранних смогли сделать, если там по другому:
1. Открываем файл ..../components/com_facileforms/facileforms.process.php
2. Находим там функцию sendEmailNotification() (строчка 2913). В строку (2915)
Код
		global $ff_config, $mosConfig_mailfrom, $mosConfig_fromname;
Дописываем перед точкой с запятой
Код
, $database
3. Далее находим (в этой же функции)  строки (2940-2946):
Код
		$attachment = NULL;
if ($this->formrow->emailxml>0) {
$attachment = $this->expxml();
if ($this->status != _FF_STATUS_OK) return;
} // if

$this->sendMail($from, $fromname, $recipient, $subject, $body, $attachment);

4. Перед последней строчкой из приведенного отрывка вставляем кусок:
Код
		$database->setQuery(
"select value  from #__facileforms_subrecords ".
"where record=".$this->record_id." and type='File Upload'"
);
$rows = $database->loadObjectList();
$cnt = count($rows);
if ($cnt) {
for ($i = 0; $i < $cnt; $i++) {
$row = $rows[$i];
$attachment = array_merge($attachment, $row->value);
};
} // if
5. Сохраняем и радуемся :)
П.с. Хак должен работать под любое кол-во элементов загрузки

у меня стоит BreezingForms 1.5.1 RC1  но в файле facileforms.process.php нет такой строки( куда вставить код???

[вложение удалено Администратором]
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться