Пытаюсь прикрутить к модулю news возможность загрузки файлов как в files. Собственно выдираю код из него. Вроде все сделал правильно, но когда отправляю новость он пишет Вы не добавили файл ни в виде ссылки на него ни в виде загрузки на сервер! Хотя файл естетственно добавлен через обзорИ так что я делаю:
1. Начал с админки. Редактирую modules\news\admin\index.php
function news_add()
Добавляю $url (таблица в базе создана)
Добавляю:
Добавляю код:
В $confn все переменные добавлены. В global так же указан.
и добавляю сами поля:
В этой функции все. Теперь
function news_save()
Добавляю:
ниже:
ну и самый конец:
Вроде все сделано правильно, но почему уже он мне всегда пишет, что файл не добавлен? Разработчики пожалуйста подскажите где ошибка ?
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);
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) ? "<a href=\"".$url."\" target=\"_blank\" title=\""._TESTLINK."\">"._FILELINK."</a>": ""._FILELINK."";
if (file_exists($url)) {
$handle = opendir($confn['path']);
$directory = "";
while ($file = readdir($handle)) {
if (!preg_match("/\./", $file)) $directory .= "<option value=\"".$confn['path']."/".$file."\">".$confn['path']."/".$file."</option>";
}
closedir($handle);
}
if (file_exists($url)) {
$handle = opendir($confn['path']);
$directory = "";
while ($file = readdir($handle)) {
if (!preg_match("/\./", $file)) $directory .= "<option value=\"".$confn['path']."/".$file."\">".$confn['path']."/".$file."</option>";
}
closedir($handle);
}
В $confn все переменные добавлены. В global так же указан.
и добавляю сами поля:
."<div class=\"left\">"._FILE_USER.":</div><div class=\"center\"><input type=\"file\" name=\"userfile\" size=\"65\" class=\"admin\"></div>"
."<div class=\"left\">"._FILE_SITE.":</div><div class=\"center\"><input type=\"text\" name=\"sitefile\" size=\"65\" class=\"admin\"></div>"
."<div class=\"left\">".$link_url.":</div><div class=\"center\"><input type=\"text\" name=\"url\" value=\"".$url."\" size=\"65\" class=\"admin\"></div>";
if (file_exists($url)) echo "<div class=\"left\">"._FILE_DIR.":</div><div class=\"center\"><S_elect name=\"path\" class=\"admin\"><option value=\"\">"._NO."</option><option value=\"".$confn['path']."\">".$confn['path']."</option>".$directory."</S_elect></div>";
."<div class=\"left\">"._FILE_SITE.":</div><div class=\"center\"><input type=\"text\" name=\"sitefile\" size=\"65\" class=\"admin\"></div>"
."<div class=\"left\">".$link_url.":</div><div class=\"center\"><input type=\"text\" name=\"url\" value=\"".$url."\" size=\"65\" class=\"admin\"></div>";
if (file_exists($url)) echo "<div class=\"left\">"._FILE_DIR.":</div><div class=\"center\"><S_elect name=\"path\" class=\"admin\"><option value=\"\">"._NO."</option><option value=\"".$confn['path']."\">".$confn['path']."</option>".$directory."</S_elect></div>";
В этой функции все. Теперь
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'], "news", "", ""); $url = ($filename) ? "".$confn['path']."/".$filename."" : $url; if ($stop) { $stop = $stop; } elseif (!$url && $_POST['posttype'] == "save") { $stop = ""._UPLOADEROR2.""; }
ну и самый конец:
if ($sid) {
if ($path) {
$filel = array_reverse(explode("/", $url));
if (file_exists($url)) {
$newfile = "".$path."/".$filel[0]."";
rename($url, $newfile);
$url = "".$path."/".$filel[0]."";
}
}
$db->sql_query("UPDATE ".$prefix."_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'");
} else {
$ip = getip();
$db->sql_query("I_nsert INTO ".$prefix."_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')");
}
Header("Location: ".$admin_file.".php?op=news");
} else {
news_add();
}
}
if ($path) {
$filel = array_reverse(explode("/", $url));
if (file_exists($url)) {
$newfile = "".$path."/".$filel[0]."";
rename($url, $newfile);
$url = "".$path."/".$filel[0]."";
}
}
$db->sql_query("UPDATE ".$prefix."_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'");
} else {
$ip = getip();
$db->sql_query("I_nsert INTO ".$prefix."_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')");
}
Header("Location: ".$admin_file.".php?op=news");
} else {
news_add();
}
}
Вроде все сделано правильно, но почему уже он мне всегда пишет, что файл не добавлен? Разработчики пожалуйста подскажите где ошибка ?
Версия системы: Open SLAED 1.*