cotonti.com : [test] module FileAPI https://www.cotonti.com Останні повідомлення в темі Cotonti en Mon, 01 Dec 2025 07:23:14 -0000 Edward Столкнулся с непонятной ошибкой при попытке окрыть админку плагина fileAPI.

Вываливалась ошибка: 950

Один из параметров запроса недействителен или устарел. Вернитесь назад и попробуйте отправить форму заново.

Оказалось проблема в том, что на серваке установлен Nginx и включен rewrite, а имена файлов плагина частично  верхнем регистре.

Для решения проблемы нужно добавить параметр в правила Nginx говорящий о том, чтобы rewrite происходил без учета регистра.

Например так:

rewrite "(?i)^/admin/([a-z0-9]+)" /admin.php?m=$1 last;

 или так

rewrite "^/admin/([a-zA-Z0-9]+)" /admin.php?m=$1 last;

 

]]>
Сб, 12 Сер 2017 18:51:48 -0000
Salador Не могу понять как сделать загрузку изображений в сторонний плагин - например нужно добаваить изображения в модуль market.

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

Так и немогу загружать изображения в свои плагины.

1) как понял в форму вставлять примерно так

fileAPI_form('prepare:1,area:forum, preset:main') 

правда непонятны некоторые параметры 

2) форма вставилась, файлы загружает, но после загрузки выходит ошибка 

Call to undefined function finfo_open() fileAPI.loader.php on line 158

в интернете написано, что нужно подключить fileinfo в версиях < php  5.3 на windows, но у меня php 5.6 на linux. 

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

3) на сервере нашел где включить fileinfo 

4) файлы загружаются в каталог datas/fileAPI/forum/fileapi_prepare/1

мне нужно как-то програмно узнать, путь к только что загруженным файлам 

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

5) поменял параметр area: в fileAPI_form на название модуля - теперь создал в datas/fileAPI/ с названием моего модуля и туда закидывает.

6) меняю значение prepare: ни на что не влияет.

7) добавил в fileAPI_form параметр cat: как в документации - пока не вижу, на что он влияет.

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

8) Информацию по загруженным файлам добавляет в БД в cot_fileAPI  

9) Как понял значение prepare: говорит, что файл надо поместить во временную дирикторию в wiki написано

Указав параметр prepare:1 мы подготавливаем данные для загрузки файлов к еще не существующим объектам. В данном случае к несуществующей странице.

теперь как-то нужно узнать файлы с каким fa_id в таблице cot_fileAPI сейчас я загрузил.

 

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

10) Если я хожу по своему сайту и опять вернулся на ту страницу где загружаю файлы, то он мне показывает уже загруженные, значит он как-то знает - а я нетsad

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

11) в fileAPI есть функция modify_fileAPI_prepare которая переназначает временные файлы, но она недоступна в других плагинах.

чтобы открыть её добавил в fileAPI.global.php следующие строки по аналогии:

if (!function_exists('fileAPI_prepare'))
{
	function fileAPI_prepare($area, $indf, $cat, $pre_indf = false)
	{
		global $L;
		if (!function_exists('modify_fileAPI_prepare'))
		{
			require_once cot_incfile('fileAPI', 'module');
		}
		return modify_fileAPI_prepare($area, $indf, $cat, $pre_indf);
	}
}

 

теперь в свой плагин добавляю функцию обработки данных формы и вставляю строку

fileAPI_prepare('имя плагина', $id, $cat);

где $id - идентификатор документа

$cat - его каталог или аналогичная информация.

теперь он переносит временные файлы из каталога fileapi_prepare в каталог $cat, а также изменяет информацию в таблице cot_fileAPI

 

дальше вроде понятно, что делать...

 

]]>
Thu, 15 Чер 2017 12:56:10 -0000
Edward Тестирую. Полет нормальный.

Пока все внешне очень просто и понятно.

Спасибо!

]]>
Ср, 03 Травень 2017 21:28:15 -0000
Виктор #42015 Dr2005alex:

Не совсем понял про Loginza...

чтоб при регистрации через соц сети подтягивал аватар

#42015 Dr2005alex:

А поддержку комментов сделаю...

Спасибо ждем!

 

Очень нужно описание, как использовать с другими модулями, пробовал с модулем портфолио со сборки биржи на примере как с модулем page, но не совсем получилось(

 

]]>
Сб, 03 Вер 2016 08:48:22 -0000
Dr2005alex Не совсем понял про Loginza...

А поддержку комментов сделаю...

]]>
Сб, 27 Сер 2016 18:00:44 -0000
Виктор Аватар пользователя в комментариях как вывести, пробовал разные теги не получается?

а нашел https://github.com/Dr2005alex/cot_fileAPI/issues/9

еще поддержку бы loginza, но это на ваше усмотрение

]]>
Пт, 26 Сер 2016 11:39:42 -0000
Dr2005alex Да еще в планах добавить описание более подробное + добавить API для взаимодействия с другими плагинами если это будет необходимо. Хотя на данном этапе он уже универсален. Просто надо в подробностях описать еще возможности параметров при вызове форм.

]]>
Пт, 19 Сер 2016 15:13:58 -0000
Виктор да теперь разобрался, не сообразил про аватар страницы, спасибо за расширение!

еще, если чесно пока что не разбирался как адаптировать модуль к другим разширением (если это нужно, на данном этапе делаю блог), может по этому вопросу есть еще материалы?

]]>
Пт, 19 Сер 2016 14:52:37 -0000
Dr2005alex

Добавьте в Wiki как выводить в списке статей миниатюру.

Так есть вроде   или вот все  по аналогии.. Это надо?

]]>
Пт, 19 Сер 2016 13:52:16 -0000
Виктор Добавьте в Wiki как выводить в списке статей миниатюру.

]]>
Пт, 19 Сер 2016 11:22:50 -0000
Dr2005alex Вставка в редактор возможность уже есть в эксперементальном варианте...

Вставитьт в page.add.tpl

{PHP|fileAPI_form('prepare:1, editor:rpagetext, area:page_editor, preset:page_editor')} 

Вставитьт в page.edit.tpl

{PHP|fileAPI_form('editor:rpagetext, area:page_editor, cat:$pag.page_cat, indf:$id, preset:page_editor')} 

И будет счастье. Добавил в Wiki  описания данной реализации.

Настройки в пресете page_editor в админке.

Тестируйте.. перед пререлизом надо все почистить....

]]>
Ср, 17 Сер 2016 10:49:57 -0000
CrazyFreeMan Хочу на сайте заменить все плагины и модули для работы с файлами на один удобный, то что сейчас есть в FileAPI мне подходит но жду когда можно будет отказаться от PFS и других коробочных решений, для вставки изображений в статьи (текст).

 

Спасибо за работу!

]]>
Ср, 17 Сер 2016 08:00:37 -0000
Dr2005alex Прошу помощи в тестировании. Обновил версию модуля. 

Основное описание находится в wiki разделе. https://github.com/Dr2005alex/cot_fileAPI/wiki

Скачать можно тут

В описании нет пока описания работы пресетов. Но пока на стадии теста там все интуитивно понятно. Создание и редактирование пресетов находится в админ панели в разделе Прочее  -> FileAPI

Отписывайтесь по результатам плиз...

Демо загрузки можно увидеть на странице модуля. Нажмите Открыть на странице модуля в админке

]]>
Вт, 16 Сер 2016 20:00:30 -0000
Macik Меня тоже интересует прогресс...

]]>
Вт, 12 Лип 2016 08:23:28 -0000
myklementyev Привет, обновлённая версия уже где-то выложена? А то на гитхабе последние коммиты от апреля...

]]>
Вт, 12 Лип 2016 07:31:06 -0000
Dr2005alex Данный модуль вам не подойдет. Он создан для загрзки файлов и привязки к неким сущностям.... страницам... сообщениям и т.д. Сами файлы он не обрабатывает а только сохраняет на сайте и делает запись в базу о новом файле. А вам нужен еще и парсер csv..

]]>
Сб, 09 Лип 2016 19:10:34 -0000
Salador #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);
			}

 

]]>
Пт, 08 Лип 2016 14:28:09 -0000
Dr2005alex Что означает обработать на сервере?

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

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

]]>
Пт, 01 Лип 2016 13:34:33 -0000
Salador 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) Мне нужно загрузить текстовый файл и обработать его на сервере. С маху не могу сообразить как его на сервере обрабатывать?

 

]]>
Пт, 01 Лип 2016 10:08:08 -0000
Dr2005alex Как-то это странно все...

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

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

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

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

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

Обновил код.

Новое: 

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

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

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

]]>
Thu, 31 Бер 2016 19:25:06 -0000
Roffun Попробовал только что на домене аватары страниц, не отображается в page.list.tpl

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

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

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

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

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

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

]]>
Thu, 31 Бер 2016 15:07:17 -0000
Dr2005alex Отпишись плиз что показал тест на домене. Надо знать в какой стороне копать...

]]>
Ср, 30 Бер 2016 13:48:33 -0000
Roffun Теперь на поддомене в постах не показываются файлы, а все загруженные находятся под формой добавления нового поста. При редактировании их так и не видно. Завтра попробую не на поддомене, а на домене.

]]>
Вт, 29 Бер 2016 18:48:03 -0000
Dr2005alex Протестировал на RC версии. Выявил один баг. Но не похоже что не он тому виной, что ты описывал ранее. Хотя кто его знает... так как я повторить это и на rc версии не смог. Может действительно надо затестить на поддомене. В остальном все работает в штатном режиме. (На gitHub залил) Проверь может это решит проблему на твоем поддомене. 

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

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

]]>
Вт, 29 Бер 2016 18:20:01 -0000
Roffun #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 -->  

 

 

]]>
Вт, 29 Бер 2016 17:54:54 -0000
Dr2005alex По pagelist там есть сложности. Так как нету хука после получения данных из базы  и перед циклом вывода данных. Это приведет к одному лишнему запросу с каждого вызова виджета pagelist. В модуле page есть такой хук page.list.before_loop , он позволяет получить id страниц участвующих в списке... чем и пользуется fileAPI. Посмотрю что можно сделать с минимальными ресурсозатратами... может немного механизм поменяю...

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

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

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

]]>
Вт, 29 Бер 2016 17:40:28 -0000
Roffun Правильно, pagelist пользуюсь

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

#41561 Dr2005alex:
 

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

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

 

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

]]>
Вт, 29 Бер 2016 17:33:14 -0000
Dr2005alex Ага. Я правильно понял что используешь Pagelist  ?

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

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

]]>
Вт, 29 Бер 2016 17:21:02 -0000
Roffun #41561 Dr2005alex:
 

И еще.. если используете pagelist для вывода списка, то там пока поддержки нет...

А будет ?

]]>
Вт, 29 Бер 2016 17:18:28 -0000
Dr2005alex #41559 Roffun:

Ещё нашел, аватары для страниц выводятся не в теле краткой, все аватары вместе внизу, под списком статей, и при создании страницы в форме аватара уже присутствует предыдущая картинка

А точно тег вставлен в секции (блок) LIST_ROW ? Похоже что вставил за его пределами..

И еще.. если используете pagelist для вывода списка, то там пока поддержки нет...

И ещё, при создании нового топика в  forums.newtopic.tpl отображаются файлы которые были загружены в предыдущий топик.

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

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

 

]]>
Вт, 29 Бер 2016 17:10:06 -0000
Roffun Ещё нашел, аватары для страниц выводятся не в теле краткой, все аватары вместе внизу, под списком статей, и при создании страницы в форме аватара уже присутствует предыдущая картинка

]]>
Вт, 29 Бер 2016 15:57:11 -0000
Dr2005alex #41555 Roffun:

Странное было окно, не пропорциональное, но кажется это просто параметры, 620

Да это в настройках пресета...

forums.editpost.tpl - загруженные при добавлении файлы не видит

И ещё, при создании нового топика в  forums.newtopic.tpl отображаются файлы которые были загружены в предыдущий топик.

Гляну..

]]>
Вт, 29 Бер 2016 15:55:46 -0000
Roffun #41554 Dr2005alex:

Да все верно функций много и будет еще много удобностей. 

По поводу вывода одной превью: То что там сейчас описано это вывод всех прикрепленных файлов к странице или к объекту. Для превью к странице сделан отдельный пресет  и он работает как аватарка к странице смотреть тут пример. Вообще даже сейчас можно в пресете указать настройки и картинка будет резаться на кучу разных превьюшек с разными размерами. И в дальнейшем их использовать..

Но лучше дождитесь когда завершу редактор пресетов и напишу описание к нему... тогда не надо  будет лезть в код.

+ опишу варианты использования API  модуля для рабооты в другмих модулях или плагинах.

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

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

Для форума работает forums.newtopic.tpl, и forums.posts.tpl.

forums.editpost.tpl - загруженные при добавлении файлы не видит

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

И ещё, при создании нового топика в  forums.newtopic.tpl отображаются файлы которые были загружены в предыдущий топик.

]]>
Вт, 29 Бер 2016 14:55:25 -0000
Dr2005alex Ах да.. некоторые параметры пресетов можно будет переопределить при вызове формы в шаблоне.. частично уже работает..  Работаю над описанием..

]]>
Вт, 29 Бер 2016 14:53:34 -0000
Roffun Странное было окно, не пропорциональное, но кажется это просто параметры, 620

]]>
Вт, 29 Бер 2016 14:53:04 -0000
Dr2005alex Да все верно функций много и будет еще много удобностей. 

По поводу вывода одной превью: То что там сейчас описано это вывод всех прикрепленных файлов к странице или к объекту. Для превью к странице сделан отдельный пресет  и он работает как аватарка к странице смотреть тут пример. Вообще даже сейчас можно в пресете указать настройки и картинка будет резаться на кучу разных превьюшек с разными размерами. И в дальнейшем их использовать..

Но лучше дождитесь когда завершу редактор пресетов и напишу описание к нему... тогда не надо  будет лезть в код.

+ опишу варианты использования API  модуля для рабооты в другмих модулях или плагинах.

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

Аватарка работает, но как-то странно

Что именно странно?

]]>
Вт, 29 Бер 2016 14:50:37 -0000
Roffun #41552 Dr2005alex:

Огромное спасибо за отзыв. Я в Wiki опечатался и вписал не те теги. Поправил описание в Wiki для вывода в page.list.tpl.  Все должно работать.

Теперь работает, только выводит не одну миниатюру а все, код для проверки взял такой:

 

<!-- IF {PHP|cot_module_active('fileAPI')} -->
{LIST_ROW_ID|fileAPI_files('loop:1, area:page, indf:$this, type:image','thumb')} 
<!-- ENDIF -->

 

 

#41552 Dr2005alex:Скоро будет готов редактор пресетов для модуля. Можно будет иметь разные конфигурации форм.

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

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

Аватарка работает, но как-то странно, форум сейчас проверю.

]]>
Вт, 29 Бер 2016 14:40:53 -0000
Dr2005alex Огромное спасибо за отзыв. Я в Wiki опечатался и вписал не те теги. Поправил описание в Wiki для вывода в page.list.tpl.  Все должно работать.

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

Скоро будет готов редактор пресетов для модуля. Можно будет иметь разные конфигурации форм.

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

Если не трудно протестите все варианты.. аватарки и работа с форумом. плиз..

]]>
Вт, 29 Бер 2016 13:55:59 -0000
Roffun Потестил немного модуль, впечатление положительное, но так и не смог вывести изображения в page.list.tpl, ни один из указанных вариантов не выводит изображение в краткой. А вот в page.add.tpl , page.edit.tpl, page.tpl всё работает. Для тестов создал поддомен, залил туда Siena 0.9.19-rc1 , и установил модуль. 

 

 

]]>
Вт, 29 Бер 2016 13:36:33 -0000
Macik За описание — отдельное спасибо. 

]]>
Пн, 28 Бер 2016 15:17:25 -0000