Форумы / National / Russian / Модули и плагины / [test] module FileAPI

<<<123>>>

Dr2005alex
#16 29.03.2016 17:21

Ага. Я правильно понял что используешь Pagelist  ?

Добавлено 1 минута спустя:

тут добавил.. можешь упустить https://www.cotonti.com/forums/41561?m=posts

WebKaa.ru - Cotonti Relax
Roffun
#17 29.03.2016 17:33

Правильно, pagelist пользуюсь

Добавлено 5 минут спустя:

#41561 Dr2005alex:
 

С форумом глюк возпроизвести не смог.

Возможно за глюк ты принял то, что если ты хотел написть пост и загрузил к нему картинку, НО пост не отправил, то картинки закрепляются за пользователем. И он или сам удалит или создаст пост и они к нему прилепятся. Это скорее фишка а не глюк. такая же картина и со страницами. Даже если пользователь уйдет с сайта и потом вернется, то при создании новой страницы к ней уже будут висеть старые загруженные и не определеннные файлы. В дальнейшем сделаем механизм отслеживания давно залежавшихся зависших файлов..

 

Нет, я пробовал не один раз, загружает нормально всё для форума, и выводит нормально, проблема наблюдается если редактировать пост, там просто не появляются загруженные файлы, пустая форма, может это на поддомене так ?  я специально закинул чистую версию, никаких сторонних модулей и плагинов, чисто сборка с гитхаба и на ней тестил, даже чпу не включал. Нужно будет еще попробовать на домене а не на поддомене.

Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts
Отредактировано: Roffun (29.03.2016 17:38, 8 лет назад)
Dr2005alex
#18 29.03.2016 17:40

По pagelist там есть сложности. Так как нету хука после получения данных из базы  и перед циклом вывода данных. Это приведет к одному лишнему запросу с каждого вызова виджета pagelist. В модуле page есть такой хук page.list.before_loop , он позволяет получить id страниц участвующих в списке... чем и пользуется fileAPI. Посмотрю что можно сделать с минимальными ресурсозатратами... может немного механизм поменяю...

По форуму не могу повторить.. будет хорошо если у тебя получится выяснить..

И еще если не трудно покажи код который вставляешь в forums.editpost.tpl

P/S на rc версии еще не тестил.. надо попробовать...

WebKaa.ru - Cotonti Relax
Roffun
#19 29.03.2016 17:54
#41565 Dr2005alex:

По pagelist там есть сложности. Так как нету хука после получения данных из базы  и перед циклом вывода данных. Это приведет к одному лишнему запросу с каждого вызова виджета pagelist. В модуле page есть такой хук page.list.before_loop , он позволяет получить id страниц участвующих в списке... чем и пользуется fileAPI. Посмотрю что можно сделать с минимальными ресурсозатратами... может немного механизм поменяю...

А как же новый API начиная с ветки 0.9.19 ?  функция похожа на замену плагина pagelist, может к ней прицепиться?  возможность вывода картинки для самых просматриваемых, комментируемых и тд полюбому нужно придумать это важно для многих сайтов.

  • new cot_page_enum() [page API] — Generates page list widget

А насчет кода по форуму, использовал этот:

<!-- IF {PHP|cot_module_active('fileAPI')} -->  
{PHP|fileAPI_form('area:forum,cat:$s,indf:$p')}  
<!-- ENDIF -->  

 

 

Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts
Отредактировано: Roffun (29.03.2016 18:00, 8 лет назад)
Dr2005alex
#20 29.03.2016 18:20

Протестировал на RC версии. Выявил один баг. Но не похоже что не он тому виной, что ты описывал ранее. Хотя кто его знает... так как я повторить это и на rc версии не смог. Может действительно надо затестить на поддомене. В остальном все работает в штатном режиме. (На gitHub залил) Проверь может это решит проблему на твоем поддомене. 

Если речь идет о выводе только одной картинки - аватар для страницы, то выход есть простой. Прописывать картинку в экстраполе страницы. Так работает аватар для пользователя.

cot_page_enum() еще не тестировал и не пробовал на зуб... может это то что надо.

WebKaa.ru - Cotonti Relax
Roffun
#21 29.03.2016 18:48

Теперь на поддомене в постах не показываются файлы, а все загруженные находятся под формой добавления нового поста. При редактировании их так и не видно. Завтра попробую не на поддомене, а на домене.

Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts
Dr2005alex
#22 30.03.2016 13:48

Отпишись плиз что показал тест на домене. Надо знать в какой стороне копать...

WebKaa.ru - Cotonti Relax
Roffun
#23 31.03.2016 15:07

Попробовал только что на домене аватары страниц, не отображается в page.list.tpl

Добавлено 7 минут спустя:

Прикрепление файлов к странице, тоже, работает в редактировании, добавлении, на странице статьи, но не отображается  в page.list.tpl

Добавлено 4 минуты спустя:

На форуме всё работает

Добавлено 3 минуты спустя:

Получается что из тех проблем что были при тесте в прошлый раз, не осталось ничего, но исчезли картинки в page.list.tpl.

Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts
Отредактировано: Roffun (31.03.2016 15:22, 8 лет назад)
Dr2005alex
#24 31.03.2016 19:25

Как-то это странно все...

Добавлено 1 час спустя:

Ага.. нашел почему не выводит в списке. Забыл в теге параметр cat указать... Поправил описание для page.list.tpl файла в Wiki

Добавлено 27 секунд спустя:

С поддоменом надо разобраться...

Добавлено 19 часов спустя:

Обновил код.

Новое: 

  • Пока полностью еще не протестированный редактор пресетов. (Описание будет в Wiki)
  • Модернизирован код для аватар к страницам. Теперь вызов аватара обычный тег и работает во всех нужных местах.. так-как генерируется в функции генерации тегов для страниц.
  • Появилась возможность при загрузке аватара (пользователя, страницы), нарезать еще дополнителные превью. 

Добавлено 3 часа спустя:

Проверил у себя на поддомене...проблем не обнаружено!

WebKaa.ru - Cotonti Relax
Отредактировано: Dr2005alex (01.04.2016 19:19, 8 лет назад)
Salador
#25 01.07.2016 10:08

1) Не прочитал закинул в plugins при установке на всех страницах показывал ошибку. Закинул в modules ошибка исчезла. Удалил в plugins.

2) Формы загрузки файлов файл page.edit.tpl

<!-- IF {PHP|cot_module_active('fileAPI')} -->
{PHP|fileAPI_form('area:page,cat:$pag.page_cat,indf:$id')} 
<!-- ENDIF -->

выдает ошибку 

Fatal error: Uncaught exception 'Exception' with message 'Warning: Missing required parameter (indf or area)' in *****/modules/fileAPI/inc/fileAPI.functions.php:98

 

Added 1 minute later:

3) Мне нужно загрузить текстовый файл и обработать его на сервере. С маху не могу сообразить как его на сервере обрабатывать?

 

Dr2005alex
#26 01.07.2016 13:34

Что означает обработать на сервере?

К понедельнику выложу обновленную версию... по этому не скажу что не так... Возможно все решится заменой версии...

Релиза пока небыло.. пока тестирование и обкатка - которая в свою очередь подбивает на модернизацию кода..

WebKaa.ru - Cotonti Relax
Salador
#27 08.07.2016 14:28
#41889 Dr2005alex:

Что означает обработать на сервере?

С fileAPI не получилось - сделал по старинке, хотя есть желание сделать на fileAPI чтобы можно было просто перетаскивать файл.

Нужно загрузить csv файл с данными клиента - сделал так:

if($_FILES["loadfile"]["size"] > $max_file_size*1024*1024)
			{
				$t_sz->assign(array(
					'FSIZE' => $max_file_size,
				));
				$plugin_body .= $t_sz->parse('STEP_ERR_FSIZE')->text('STEP_ERR_FSIZE');
			  //echo 'The SIZE of File is more than '.$max_file_size.' Mb!';
			} 
			elseif (move_uploaded_file($_FILES["loadfile"]["tmp_name"],$uploaddir.basename($_FILES["loadfile"]["tmp_name"])))	
			{
				//echo("The file "."<b>".$_FILES["loadfile"]["name"]."</b>"." was downloaded successfully!");
				$t_sz->assign(array(
					'FNAME' => $_FILES["loadfile"]["name"],
				));
				$plugin_body .= $t_sz->parse('STEP_SUC_FILELOAD')->text('STEP_SUC_FILELOAD');  //Успешно загружен файл
				
				if(!setlocale(LC_ALL, 'ru_RU.utf8')) setlocale(LC_ALL, 'en_US.utf8'); // Определяем параметры нужно чтобы кирилица нормально отображалась
				if(setlocale(LC_ALL, 0) == 'C') die('Your server does not suport LOCALS');
				
				
				$file = fopen('php://memory', 'w+');
				fwrite($file, iconv('CP1251', 'UTF-8', file_get_contents($uploaddir.basename($_FILES["loadfile"]["tmp_name"]))));
				rewind($file);

				$r = 0; // это строки в файле
				while (($row = fgetcsv($file, 1500, ";")) != FALSE) // $file - имя файла; 1500 - длина; (точка с запятой) - это разделитель полей в файле
				{
					$r++;
					if($r == 1) {continue;} // Не дает записать в БД первую строку (бывает так, что первая строка используется для заголовков)
					$arr_client=array(
						'pol'=>$row[0],
						'name'=>$row[1],
						'fam'=>$row[2],
						'otch'=>$row[3],
						'email'=>$row[4],
						'tel'=>$row[5],
						'city'=>$row[6],
						'adress'=>$row[7],
						'comm'=>$row[8]
					);
					$db->insert($table_klient, $arr_client); //Записывает клиентов в базу
				  
				}
				fclose($file);
			}

 

Dr2005alex
#28 09.07.2016 19:10

Данный модуль вам не подойдет. Он создан для загрзки файлов и привязки к неким сущностям.... страницам... сообщениям и т.д. Сами файлы он не обрабатывает а только сохраняет на сайте и делает запись в базу о новом файле. А вам нужен еще и парсер csv..

WebKaa.ru - Cotonti Relax
myklementyev
#29 12.07.2016 07:31

Привет, обновлённая версия уже где-то выложена? А то на гитхабе последние коммиты от апреля...

Macik
#30 12.07.2016 08:23

Меня тоже интересует прогресс...

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F

<<<123>>>