mirror of
https://github.com/e107inc/e107.git
synced 2025-03-14 01:19:44 +01:00
Forum upgrade fixes. Forum-attachments now converted in batches.
This commit is contained in:
parent
1b0760008a
commit
eae211fc63
@ -1304,11 +1304,15 @@ function update_706_to_800($type='')
|
||||
}
|
||||
|
||||
$dl_files = $fl->get_files(e_FILE.'downloads', "","standard",5); // don't use e_DOWNLOAD or a loop may occur.
|
||||
$public_files = $fl->get_files(e_FILE.'public');
|
||||
|
||||
|
||||
$publicFilter = array('_FT', '^thumbs\.db$','^Thumbs\.db$','.*\._$','^\.htaccess$','^\.cvsignore$','^\.ftpquota$','^index\.html$','^null\.txt$','\.bak$','^.tmp'); // Default file filter (regex format)
|
||||
// $publicFilter = array(1);
|
||||
$public_files = $fl->get_files(e_FILE.'public','',$publicFilter);
|
||||
|
||||
if((count($dl_files) || count($public_files)) && !$sql->gen("SELECT * FROM `#core_media` WHERE `media_category` = 'download_file' "))
|
||||
{
|
||||
if ($just_check) return update_needed('Import Download and Public Files into Media Manager');
|
||||
if ($just_check) return update_needed('Import '.count($dl_files).' Download File(s) and '.count($public_files).' Public File(s) into Media Manager');
|
||||
// check for file-types;
|
||||
if (is_readable(e_ADMIN.'filetypes.php'))
|
||||
{
|
||||
|
@ -81,7 +81,6 @@
|
||||
'news' => 'news',
|
||||
'page' => 'page',
|
||||
)]]></core>
|
||||
<core name="email_notify">0</core>
|
||||
<core name="email_text"></core>
|
||||
<core name="emotepack">default</core>
|
||||
<core name="enable_rdns">0</core>
|
||||
|
@ -1816,6 +1816,12 @@ class e_parse extends e_parser
|
||||
return $text;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $url
|
||||
* @param $options ??
|
||||
* @param $raw ??
|
||||
* @param $full
|
||||
*/
|
||||
public function thumbUrl($url, $options = array(), $raw = false, $full = false)
|
||||
{
|
||||
if(substr($url,0,3)=="{e_") // Fix for broken links that use {e_MEDIA} etc.
|
||||
@ -2419,7 +2425,21 @@ class e_parser
|
||||
{
|
||||
$this->allowedAttributes = $array;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Add leading zeros to a number. eg. 3 might become 000003
|
||||
* @param $num integer
|
||||
* @param $numDigits - total number of digits
|
||||
* @return number with leading zeros.
|
||||
*/
|
||||
public function leadingZeros($num,$numDigits)
|
||||
{
|
||||
return sprintf("%0".$numDigits."d",$num);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Return an Array of all specific tags found in an HTML document and their attributes.
|
||||
|
@ -72,6 +72,8 @@ class e_file
|
||||
* @var array
|
||||
*/
|
||||
public $fileFilter;
|
||||
|
||||
public $filesRejected = array();
|
||||
|
||||
/**
|
||||
* Defines what array format should return get_files() method
|
||||
@ -194,7 +196,7 @@ class e_file
|
||||
}
|
||||
if (($omit == 'standard') || ($omit == ''))
|
||||
{
|
||||
$omit = array();
|
||||
$omit = $this->fileFilter;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -223,11 +225,12 @@ class e_file
|
||||
$rejected = FALSE;
|
||||
|
||||
// Check against the generic file reject filter
|
||||
foreach($this->fileFilter as $rmask)
|
||||
foreach($omit as $rmask)
|
||||
{
|
||||
if(preg_match("#".$rmask."#", $file))
|
||||
{
|
||||
$rejected = TRUE;
|
||||
$this->filesRejected[] = $file;
|
||||
break; // continue 2 may well work
|
||||
}
|
||||
}
|
||||
@ -571,13 +574,12 @@ class e_file
|
||||
{
|
||||
global $e107;
|
||||
|
||||
$pref = e107::getPref();
|
||||
$tp = e107::getParser();
|
||||
$pref = e107::getPref();
|
||||
$tp = e107::getParser();
|
||||
|
||||
|
||||
$DOWNLOADS_DIRECTORY = e_BASE.e107::getFolder('DOWNLOADS');
|
||||
$FILES_DIRECTORY = e_BASE.e107::getFolder('FILES');
|
||||
$MEDIA_DIRECTORY = realpath(e_MEDIA_FILE);
|
||||
$DOWNLOADS_DIRECTORY = e_BASE.e107::getFolder('DOWNLOADS');
|
||||
$FILES_DIRECTORY = e_BASE.e107::getFolder('FILES');
|
||||
$MEDIA_DIRECTORY = realpath(e_MEDIA); // could be image, file or other type.
|
||||
|
||||
$file = $tp->replaceConstants($file);
|
||||
|
||||
@ -594,6 +596,9 @@ class e_file
|
||||
$path = realpath($filename);
|
||||
$path_downloads = realpath($DOWNLOADS_DIRECTORY);
|
||||
$path_public = realpath($FILES_DIRECTORY."public/");
|
||||
|
||||
|
||||
|
||||
if(!strstr($path, $path_downloads) && !strstr($path,$path_public) && !strstr($path, $MEDIA_DIRECTORY))
|
||||
{
|
||||
if(E107_DEBUG_LEVEL > 0 && ADMIN)
|
||||
|
@ -727,7 +727,7 @@ class e_db_mysql
|
||||
|
||||
if (is_array($arg)) // Remove the need for a separate db_UpdateArray() function.
|
||||
{
|
||||
$new_data = '';
|
||||
|
||||
if(!isset($arg['_FIELD_TYPES']) && !isset($arg['data']))
|
||||
{
|
||||
//Convert data if not using 'new' format
|
||||
@ -750,10 +750,13 @@ class e_db_mysql
|
||||
}
|
||||
|
||||
$fieldTypes = $this->_getTypes($arg);
|
||||
|
||||
|
||||
$new_data = '';
|
||||
foreach ($arg['data'] as $fn => $fv)
|
||||
{
|
||||
$new_data .= ($new_data ? ', ' : '');
|
||||
$new_data .= "`{$fn}`=".$this->_getFieldValue($fn, $fv, $fieldTypes);
|
||||
$new_data .= "`{$fn}`=".$this->_getFieldValue($fn, $fv, $fieldTypes);
|
||||
}
|
||||
$arg = $new_data .(isset($arg['WHERE']) ? ' WHERE '. $arg['WHERE'] : '');
|
||||
}
|
||||
@ -868,7 +871,9 @@ class e_db_mysql
|
||||
}
|
||||
}
|
||||
|
||||
/* Similar to db_Update(), but splits the variables and the 'WHERE' clause.
|
||||
/**
|
||||
* @DEPRECATED
|
||||
Similar to db_Update(), but splits the variables and the 'WHERE' clause.
|
||||
$vars may be an array (fieldname=>newvalue) of fields to be updated, or a simple list.
|
||||
$arg is usually a 'WHERE' clause
|
||||
The way the code is written at the moment, a call to db_Update() with just the first two parameters specified can be
|
||||
|
@ -2142,7 +2142,7 @@ class e107plugin
|
||||
|
||||
if (is_readable($setup_file))
|
||||
{
|
||||
if(e_PAGE == 'e107_update.php')
|
||||
if(e_PAGE == 'e107_update.php' && E107_DBG_INCLUDES)
|
||||
{
|
||||
$mes->addDebug("Found setup file <b>".$path."_setup.php</b> ");
|
||||
}
|
||||
@ -2157,7 +2157,7 @@ class e107plugin
|
||||
|
||||
if (method_exists($obj, $method_name))
|
||||
{
|
||||
if(e_PAGE == 'e107_update.php')
|
||||
if(e_PAGE == 'e107_update.php' && E107_DBG_INCLUDES)
|
||||
{
|
||||
$mes->addDebug("Executing setup function <b>".$class_name." :: ".$method_name."()</b>");
|
||||
}
|
||||
@ -2166,7 +2166,7 @@ class e107plugin
|
||||
}
|
||||
else
|
||||
{
|
||||
if(e_PAGE == 'e107_update.php')
|
||||
if(e_PAGE == 'e107_update.php' && E107_DBG_INCLUDES)
|
||||
{
|
||||
$mes->addDebug("Setup function ".$class_name." :: ".$method_name."() NOT found.");
|
||||
}
|
||||
|
@ -224,17 +224,13 @@ class themeHandler
|
||||
function getThemeInfo($file)
|
||||
{
|
||||
$STYLESHEET = FALSE;
|
||||
|
||||
$reject = array('$.',
|
||||
'$..',
|
||||
'/',
|
||||
'CVS',
|
||||
'thumbs.db',
|
||||
'*._$',
|
||||
'index',
|
||||
'null*',
|
||||
'e_*');
|
||||
$handle2 = $this->fl->get_files(e_THEME.$file."/", ".php|.css|.xml|preview.jpg|preview.png", $reject, 1);
|
||||
$mes = e107::getMessage();
|
||||
|
||||
$reject = array('e_.*');
|
||||
|
||||
$handle2 = e107::getFile()->get_files(e_THEME.$file."/", ".php|.css|.xml|preview.jpg|preview.png", $reject, 1);
|
||||
|
||||
|
||||
foreach ($handle2 as $fln)
|
||||
{
|
||||
$file2 = str_replace(e_THEME.$file."/", "", $fln['path']).$fln['fname'];
|
||||
@ -245,18 +241,12 @@ class themeHandler
|
||||
$themeArray[$file]['preview'] = e_THEME.$file."/".$file2;
|
||||
}
|
||||
|
||||
|
||||
// ---------------- get information string for css file
|
||||
|
||||
|
||||
if(strstr($file2, "css") && !strstr($file2, "menu.css") && strpos($file2, "e_") !== 0)
|
||||
{
|
||||
|
||||
if($fp = fopen(e_THEME.$file."/".$file2, "r"))
|
||||
if($cssContents = file_get_contents(e_THEME.$file."/".$file2))
|
||||
{
|
||||
// FIXME: use info from theme.xml alternateStyleSheet instead
|
||||
$cssContents = fread($fp, filesize(e_THEME.$file."/".$file2));
|
||||
fclose($fp);
|
||||
$nonadmin = preg_match('/\* Non-Admin(.*?)\*\//', $cssContents) ? true : false;
|
||||
preg_match('/\* info:(.*?)\*\//', $cssContents, $match);
|
||||
$match[1] = varset($match[1], '');
|
||||
@ -272,6 +262,10 @@ class themeHandler
|
||||
$STYLESHEET = TRUE;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// $mes->addDebug("Couldn't read file: ".e_THEME.$file."/".$file2);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -147,6 +147,32 @@ class e107forum
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
function getAttachmentPath($user=0)
|
||||
{
|
||||
$tp = e107::getParser();
|
||||
$baseDir = e_MEDIA.'plugins/forum/attachments/';
|
||||
$baseDir .= ($user) ? "user_". $tp->leadingZeros($user, 6) : "anon";
|
||||
$baseDir .= "/";
|
||||
|
||||
return $baseDir;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
function sendFile($data)
|
||||
{
|
||||
$sql = e107::getDb();
|
||||
$fid = intval($data['dl']);
|
||||
|
||||
$array = $sql->retrieve('forum_post','post_user,post_attachments','post_id='.intval($data['id']));
|
||||
$attach = e107::getArrayStorage()->read($array['post_attachments']);
|
||||
$file = $this->getAttachmentPath($array['post_user']).varset($attach['file'][$fid]);
|
||||
|
||||
e107::getFile()->send($file);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Handle the Ajax quick-reply.
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -36,6 +36,9 @@ if (!e_QUERY)
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// include_lan(e_PLUGIN . 'forum/languages/'.e_LANGUAGE.'/lan_forum_viewtopic.php');
|
||||
include_once (e_PLUGIN . 'forum/forum_class.php');
|
||||
|
||||
@ -43,6 +46,15 @@ include_once (e_PLUGIN . 'forum/forum_class.php');
|
||||
$forum = new e107forum();
|
||||
$thread = new e107ForumThread();
|
||||
|
||||
if(vartrue($_GET['id']) && isset($_GET['dl']))
|
||||
{
|
||||
$forum->sendFile($_GET);
|
||||
exit;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
if(e_AJAX_REQUEST && varset($_POST['action']) == 'quickreply')
|
||||
{
|
||||
$forum->ajaxQuickReply();
|
||||
|
@ -70,36 +70,61 @@ class plugin_forum_view_shortcodes extends e_shortcode
|
||||
$ret = '<pre>'.print_r($info, true).'</pre>';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
function sc_attachments()
|
||||
{
|
||||
$tp = e107::getParser();
|
||||
|
||||
if($this->postInfo['post_attachments'])
|
||||
{
|
||||
$baseDir = e_MEDIA_ABS.'files/plugins/forum/attachments/';
|
||||
$attachments = explode(',', $this->postInfo['post_attachments']);
|
||||
$txt = '';
|
||||
foreach($attachments as $a)
|
||||
{
|
||||
$info = explode('*', $a);
|
||||
switch($info[0])
|
||||
{
|
||||
case 'file':
|
||||
$txt .= IMAGE_attachment." <a href='{$baseDir}{$info[1]}'>{$info[2]}</a><br />";
|
||||
break;
|
||||
$baseDir = $this->forum->getAttachmentPath($this->postInfo['post_user']);
|
||||
|
||||
case 'img':
|
||||
//if image has a thumb, show it and link to main
|
||||
if(isset($info[2]))
|
||||
$images = array();
|
||||
|
||||
$attachArray = e107::getArrayStorage()->read($this->postInfo['post_attachments']);
|
||||
|
||||
foreach($attachArray as $type=>$vals)
|
||||
{
|
||||
foreach($vals as $key=>$file)
|
||||
{
|
||||
list($date,$user,$tmp,$name) = explode("_",$file,4);
|
||||
|
||||
switch($type)
|
||||
{
|
||||
$txt .= "<a href='{$baseDir}{$info[1]}'><img src='{$baseDir}thumb/{$info[2]}' alt='' /></a><br />";
|
||||
}
|
||||
else
|
||||
{
|
||||
$txt .= "<img src='{$baseDir}{$info[1]}' alt='' /><br />";
|
||||
}
|
||||
}
|
||||
case 'file':
|
||||
|
||||
$url = e_SELF."?id=".$this->postInfo['post_id']."&dl=".$key;
|
||||
$txt .= IMAGE_attachment." <a href='".$url."'>{$name}</a><br />";
|
||||
|
||||
break;
|
||||
|
||||
case 'img': //Always use thumb to hide the hash.
|
||||
|
||||
$thumb = $tp->thumbUrl($baseDir.$file,'x=1',true);
|
||||
$full = $tp->thumbUrl($baseDir.$file,'w=1000&x=1', true);
|
||||
|
||||
$inc = (vartrue($parm['modal'])) ? "data-toggle='modal' data-target='#".$parm['modal']."' " : "";
|
||||
$images[] = "<a {$inc} rel='external' href='{$full}'><img class='thumbnail' src='{$thumb}' alt='' /></a>";
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if(count($images) )
|
||||
{
|
||||
return (deftrue('e_BOOTSTRAP')) ? "<ul class='thumbnails'><li>".implode("</li><li>",$images)."</li></ul>" : implode("<br />",$images);
|
||||
}
|
||||
|
||||
|
||||
return $txt;
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -339,14 +339,12 @@ $FORUM_VIEWTOPIC_TEMPLATE['thread'] = "
|
||||
{CUSTOMTITLE}
|
||||
{AVATAR}
|
||||
{USERCOMBO}
|
||||
<div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class='span9 '>
|
||||
{POLL}
|
||||
{POST}
|
||||
|
||||
{ATTACHMENTS}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -356,7 +354,7 @@ $FORUM_VIEWTOPIC_TEMPLATE['thread'] = "
|
||||
|
||||
</div>
|
||||
<div class='span9 finfobar' >
|
||||
<small>{ATTACHMENTS} {SIGNATURE=clean}</small>
|
||||
<small> {SIGNATURE=clean}</small>
|
||||
</div>
|
||||
|
||||
<div class='span3'>
|
||||
|
Loading…
x
Reference in New Issue
Block a user