Чтение RSS каналов

Форум

Открыть Ответить

Возможность загрузки файлов в модуле news

0

0
1
08.11.2008 11:59:0008.11.2008 12:41:35
Пытаюсь прикрутить к модулю news возможность загрузки файлов как в files. Собственно выдираю код из него. Вроде все сделал правильно, но когда отправляю новость он пишет Вы не добавили файл ни в виде ссылки на него ни в виде загрузки на сервер! Хотя файл естетственно добавлен через обзорИ так что я делаю:

1. Начал с админки. Редактирую modules\news\admin\index.php

function news_add()


Добавляю $url (таблица в базе создана)

$result = $db->sql_query("S_elect s.catid, s.name, s.title, s.time, s.hometext, s.bodytext, s.url, s.field, s.ihome, s.acomm, s.associated, u.user_name FROM ".$prefix."_stories AS s LEFT JOIN ".$prefix."_users AS u ON (s.uid=u.user_id) WHERE sid='$sid'");
list($cat, $uname, $subject, $time, $hometext, $bodytext, $url, $field, $ihome, $acomm, $associated, $user_name) = $db->sql_fetchrow($result);



Добавляю:

$hometext = save_text($_POST['hometext']);
		$bodytext = save_text($_POST['bodytext']);
		$url = $_POST['url'];


Добавляю код:

$link_url = ($url) ? &quot;<a href=\&quot;&quot;.$url.&quot;\&quot; target=\&quot;_blank\&quot; title=\&quot;&quot;._TESTLINK.&quot;\&quot;>&quot;._FILELINK.&quot;</a>&quot;: &quot;&quot;._FILELINK.&quot;&quot;;
if (file_exists($url)) {
$handle = opendir($confn['path']);
$directory = &quot;&quot;;
while ($file = readdir($handle)) {
if (!preg_match(&quot;/\./&quot;, $file)) $directory .= &quot;<option value=\&quot;&quot;.$confn['path'].&quot;/&quot;.$file.&quot;\&quot;>&quot;.$confn['path'].&quot;/&quot;.$file.&quot;</option>&quot;;
}
closedir($handle);
}


В $confn все переменные добавлены. В global так же указан.

и добавляю сами поля:

.&quot;<div class=\&quot;left\&quot;>&quot;._FILE_USER.&quot;:</div><div class=\&quot;center\&quot;><input type=\&quot;file\&quot; name=\&quot;userfile\&quot; size=\&quot;65\&quot; class=\&quot;admin\&quot;></div>&quot;
.&quot;<div class=\&quot;left\&quot;>&quot;._FILE_SITE.&quot;:</div><div class=\&quot;center\&quot;><input type=\&quot;text\&quot; name=\&quot;sitefile\&quot; size=\&quot;65\&quot; class=\&quot;admin\&quot;></div>&quot;
.&quot;<div class=\&quot;left\&quot;>&quot;.$link_url.&quot;:</div><div class=\&quot;center\&quot;><input type=\&quot;text\&quot; name=\&quot;url\&quot; value=\&quot;&quot;.$url.&quot;\&quot; size=\&quot;65\&quot; class=\&quot;admin\&quot;></div>&quot;;
if (file_exists($url)) echo &quot;<div class=\&quot;left\&quot;>&quot;._FILE_DIR.&quot;:</div><div class=\&quot;center\&quot;><S_elect name=\&quot;path\&quot; class=\&quot;admin\&quot;><option value=\&quot;\&quot;>&quot;._NO.&quot;</option><option value=\&quot;&quot;.$confn['path'].&quot;\&quot;>&quot;.$confn['path'].&quot;</option>&quot;.$directory.&quot;</S_elect></div>&quot;;


В этой функции все. Теперь
function news_save()

Добавляю:

$hometext = save_text($_POST['hometext']);
	$bodytext = save_text($_POST['bodytext']);
	$url = $_POST['url'];
	$path = text_filter($_POST['path']);


ниже:

$filename = upload($confn['path'], $confn['typefile'], $confn['max_size'], &quot;news&quot;, &quot;&quot;, &quot;&quot;);
	$url = ($filename) ? &quot;&quot;.$confn['path'].&quot;/&quot;.$filename.&quot;&quot; : $url;
	if ($stop) {
		$stop = $stop;
	} elseif (!$url  && $_POST['posttype'] == &quot;save&quot;) {
		$stop = &quot;&quot;._UPLOADEROR2.&quot;&quot;;
	}


ну и самый конец:

if ($sid) {
if ($path) {
$filel = array_reverse(explode(&quot;/&quot;, $url));
if (file_exists($url)) {
$newfile = &quot;&quot;.$path.&quot;/&quot;.$filel[0].&quot;&quot;;
rename($url, $newfile);
$url = &quot;&quot;.$path.&quot;/&quot;.$filel[0].&quot;&quot;;
}
}

$db->sql_query(&quot;UPDATE &quot;.$prefix.&quot;_stories SET catid='$cat', uid='$postid', name='$postname', title='$subject', time='$time', hometext='$hometext', bodytext='$bodytext', url='$url', field='$field', ihome='$ihome', acomm='$acomm', associated='$associated', status='1' WHERE sid='$sid'&quot;);
} else {
$ip = getip();
$db->sql_query(&quot;I_nsert INTO &quot;.$prefix.&quot;_stories (sid, catid, uid, name, title, time, hometext, bodytext, url, field, comments, counter, ihome, acomm, score, ratings, associated, ip_sender, status) VALUES (NULL, '$cat', '$postid', '$postname', '$subject', '$time', '$hometext', '$bodytext', '$url', '$field', '0', '0', '$ihome', '$acomm', '0', '0', '$associated', '$ip', '1')&quot;);
}
Header(&quot;Location: &quot;.$admin_file.&quot;.php?op=news&quot;);
} else {
news_add();
}
}



Вроде все сделано правильно, но почему уже он мне всегда пишет, что файл не добавлен? Разработчики пожалуйста подскажите где ошибка ?


Версия системы: Open SLAED 1.*
3.62

3.62
2
08.11.2008 12:43:16
В форме отправки после: <form name=\&quot;post\&quot;
Добавьте: enctype=\&quot;multipart/form-data\&quot;

О сколько нам открытий чудных,
Готовит просвещенья дух,
И опыт, сын ошибок трудных,
И гений, парадоксов друг...
3.24

3.24
3
08.11.2008 13:07:32
Категорически благодарю! Все заработало!
3.62

3.62
4
08.11.2008 14:04:45
А еще один вопросик: чтобы убрать проверку:

$url = ($filename) ? &quot;&quot;.$confn['path'].&quot;/&quot;.$filename.&quot;&quot; : $url;
	if ($stop) {
		$stop = $stop;
	} elseif (!$url  && $_POST['posttype'] == &quot;save&quot;) {
		$stop = &quot;&quot;._UPLOADEROR2.&quot;&quot;;
	}


достаточно сделать так:

$url = ($filename) ? &quot;&quot;.$confn['path'].&quot;/&quot;.$filename.&quot;&quot; : $url;
	if ($stop) {
		$stop = $stop;
	}


больше ничего не требуется?
3.62

3.62
5
08.11.2008 15:51:37
Весь код функции send покажите.

О сколько нам открытий чудных,
Готовит просвещенья дух,
И опыт, сын ошибок трудных,
И гений, парадоксов друг...
3.24

3.24
6
08.11.2008 16:30:0008.11.2008 18:25:19
У меня все заработало после того как прописал enctype=\&quot;multipart/form-data\&quot;. Мне просто надо убрать проверку вообще. т.е не обязательным сделать добавление файла.
Вот код:
$myears и $links это год и ссылки взятые из модуля media. Их я проверил все работает.

function news_save() {
global $prefix, $db, $admin_file, $stop, $confn;
$sid = intval($_POST['sid']);
$postname = $_POST['postname'];
$subject = save_text($_POST['subject']);
$myears = intval($_POST['myears']);
$associated = (isset($_POST['associated'])) ? implode(&quot;-&quot;, $_POST['associated']) : &quot;&quot;;
$cat = $_POST['cat'];
$hometext = save_text($_POST['hometext']);
$bodytext = save_text($_POST['bodytext']);
$links = text_filter(implode(&quot;,&quot;, $_POST['links']));
$url = $_POST['url'];
$path = text_filter($_POST['path']);
$field = fields_save($_POST['field']);
$ihome = $_POST['ihome'];
$acomm = $_POST['acomm'];
$time = save_datetime();
if (!$subject) $stop = &quot;&quot;._CERROR.&quot;&quot;;
if (!$hometext) $stop = &quot;&quot;._CERROR1.&quot;&quot;;
if (!$postname) $stop = &quot;&quot;._CERROR3.&quot;&quot;;


$filename = upload($confn['path'], $confn['typefile'], $confn['max_size'], &quot;news&quot;, $confn['width'], $confn['height']);
$url = ($filename) ? &quot;&quot;.$confn['path'].&quot;/&quot;.$filename.&quot;&quot; : $url;
if ($stop) {
$stop = $stop;
} elseif (!$url && $_POST['posttype'] == &quot;save&quot;) {
$stop = &quot;Вы не добавили постер ни в виде ссылки на него ни в виде загрузки на сервер!&quot;;
}


if (!$stop && $_POST['posttype'] == &quot;save&quot;) {
$postid = (is_user_id($postname)) ? is_user_id($postname) : &quot;&quot;;
$postname = (!is_user_id($postname)) ? text_filter(substr($postname, 0, 25)) : &quot;&quot;;


if ($sid) {
if ($path) {
$filel = array_reverse(explode(&quot;/&quot;, $url));
if (file_exists($url)) {
$newfile = &quot;&quot;.$path.&quot;/&quot;.$filel[0].&quot;&quot;;
rename($url, $newfile);
$url = &quot;&quot;.$path.&quot;/&quot;.$filel[0].&quot;&quot;;
}
}


$db->sql_query(&quot;UPDATE &quot;.$prefix.&quot;_stories SET catid='$cat', uid='$postid', name='$postname', title='$subject', year='$myears', time='$time', hometext='$hometext', bodytext='$bodytext', links='$links', url='$url', field='$field', ihome='$ihome', acomm='$acomm', associated='$associated', status='1' WHERE sid='$sid'&quot;);
} else {
$ip = getip();
$db->sql_query(&quot;I_nsert INTO &quot;.$prefix.&quot;_stories (sid, catid, uid, name, title, year, time, hometext, bodytext, links, url, field, comments, counter, ihome, acomm, score, ratings, associated, ip_sender, status) VALUES (NULL, '$cat', '$postid', '$postname', '$subject', '$myears', '$time', '$hometext', '$bodytext', '$links', '$url', '$field', '0', '0', '$ihome', '$acomm', '0', '0', '$associated', '$ip', '1')&quot;);
}
Header(&quot;Location: &quot;.$admin_file.&quot;.php?op=news&quot;);
} else {
news_add();
}
}


Версия системы: Open SLAED 1.*
3.62

3.62
7
08.11.2008 16:32:07
Вот мне чтобы убрать проверку добавлен файл или нет просто тупа удалить

elseif (!$url  && $_POST['posttype'] == &quot;save&quot;) {
        $stop = &quot;Вы не добавили постер ни в виде ссылки на него ни в виде загрузки на сервер!&quot;;
    }


и все?

П.С Кстати нельзя ли сделать, чтобы форум не растягивался, а текст перекидывал на следующию строчку? Ато плохо смотрится.
3.62

3.62
8
08.11.2008 18:28:0008.11.2008 18:29:35
Что бы убрать проверку, удалите:

$url = ($filename) ? &quot;&quot;.$confn['path'].&quot;/&quot;.$filename.&quot;&quot; : $url;
if ($stop) {
$stop = $stop;
} elseif (!$url && $_POST['posttype'] == &quot;save&quot;) {
$stop = &quot;Вы не добавили постер ни в виде ссылки на него ни в виде загрузки на сервер!&quot;;
}

О сколько нам открытий чудных,
Готовит просвещенья дух,
И опыт, сын ошибок трудных,
И гений, парадоксов друг...
3.24

3.24
9
08.11.2008 19:18:13
спасибо
3.62

3.62
10
02.12.2008 15:33:31
Подскажите, а как можно изменить код так, чтобы ссылку на скачиваемый файл можно было просто прописать в дополнительное поле и в выводе самой новости сделать кнопочку скачать, все как в модуле Files
3.86

3.86
Открыть Ответить
Хотите опробовать SLAED CMS в действии?

Технологии

PHP MySQL HTML 5 CSS 3 jQuery jQuery UI

Контакты

  • D-49179, Deutschland
    Ostercappeln, Im Siek 6
  • +49 176 61966679

  • https://slaed.net
Идеи и предложения
Обратная связь