1
0
mirror of https://github.com/e107inc/e107.git synced 2025-08-01 12:20:44 +02:00

media manager work - upload link can be added now (see newspost.php); improved imageselector; several bugfixes

This commit is contained in:
secretr
2010-10-04 22:14:05 +00:00
parent ea7434a019
commit 1adcecb94a
7 changed files with 105 additions and 20 deletions

View File

@@ -282,8 +282,6 @@ class media_admin_ui extends e_admin_ui
function init() function init()
{ {
$sql = e107::getDb(); $sql = e107::getDb();
// $sql->db_Select_gen("SELECT media_cat_title, media_title_nick FROM #core_media as m LEFT JOIN #core_media_cat as c ON m.media_category = c.media_cat_nick GROUP BY m.media_category"); // $sql->db_Select_gen("SELECT media_cat_title, media_title_nick FROM #core_media as m LEFT JOIN #core_media_cat as c ON m.media_category = c.media_cat_nick GROUP BY m.media_category");
$sql->db_Select_gen("SELECT media_cat_title, media_cat_nick FROM #core_media_cat"); $sql->db_Select_gen("SELECT media_cat_title, media_cat_nick FROM #core_media_cat");
@@ -299,8 +297,21 @@ class media_admin_ui extends e_admin_ui
{ {
$this->batchImport(); $this->batchImport();
} }
}
if($this->getQuery('iframe'))
{
$this->getResponse()->setIframeMod();
}
if($this->getQuery('for') && $this->getMediaCategory($this->getQuery('for')))
{
$this->setPosted('media_category', $this->getQuery('for'));
if(!$this->getId())
{
$this->getModel()->set('media_category', $this->getQuery('for'));
}
}
}
function importPage() function importPage()
{ {
@@ -335,6 +346,10 @@ class media_admin_ui extends e_admin_ui
//$dataFields = $this->getModel()->getDataFields(); //$dataFields = $this->getModel()->getDataFields();
//unset($dataFields['media_upload']); //unset($dataFields['media_upload']);
//$this->getModel()->setDataFields($dataFields); //$this->getModel()->setDataFields($dataFields);
if($this->getQuery('for') && $this->getMediaCategory($this->getQuery('for')))
{
$new_data['media_category'] = $this->getQuery('for');
}
return $this->observeUploaded($new_data); return $this->observeUploaded($new_data);
} }

View File

@@ -112,9 +112,8 @@ function headerjs()
} }
}); });
</script> </script>
<script type='text/javascript' src='".e_FILE_ABS."jslib/core/admin.js'></script>
"; ";
e107::getJs()->requireCoreLib('core/admin.js');
if($newspost->getAction() == 'cat') if($newspost->getAction() == 'cat')
{ {
@@ -1538,9 +1537,27 @@ class admin_newspost
<td>".NWSLAN_66.":</td> <td>".NWSLAN_66.":</td>
<td>"; <td>";
//FIXME - below is a quick fix for media-manager upload. Requires popup window without header/footer. $text .= $frm->mediaUrl('news', NWSLAN_69);
$text .= "<a rel='external' href='".e_ADMIN_ABS."image.php?mode=main&amp;action=create'>".NWSLAN_69."</a>"; /* //FIXME - below is a quick fix for media-manager upload. Requires popup window without header/footer.
$text .= "<a rel='external' class='e-dialog' href='".e_ADMIN_ABS."image.php?mode=main&amp;action=create&amp;for=news'>".NWSLAN_69."</a>";
// FIXME - make it system wide available
e107::getJs()->requireCoreLib('core/admin.js')
->requireCoreLib('core/dialog.js')
->requireCoreLib('core/draggable.js')
->coreCSS('core/dialog/dialog.css')
->coreCSS('core/dialog/e107/e107.css')
->footerInline('
$$("a.e-dialog").invoke("observe", "click", function(ev) {
var element = ev.findElement("a");
ev.stop();
new e107Widgets.URLDialog(element.href + "&iframe=1", {
id: element["id"] || "e-dialog",
width: 800,
height: 600,
title: "Media Manager"
}).center().activate().show();
});
');*/
// e_NEWSIMAGE is deprecated. // e_NEWSIMAGE is deprecated.
// DEPRECATED METHOD below. // DEPRECATED METHOD below.

View File

@@ -56,5 +56,5 @@ function imagepreview_shortcode($parm)
{ {
$thpath = !varset($nothumb) ? e107::getParser()->thumbUrl($path, 'w='.$width.'h='.$height, true) : $path; $thpath = !varset($nothumb) ? e107::getParser()->thumbUrl($path, 'w='.$width.'h='.$height, true) : $path;
} }
return "<a href='{$path}' rel='external' class='e-image-preview'{$hide}><img src='{$thpath}' alt=\"\" class='image-selector' /></a>"; return "<a href='{$path}' rel='external shadowbox' class='e-image-preview'{$hide}><img src='{$thpath}' alt=\"\" class='image-selector' /></a>";
} }

View File

@@ -29,18 +29,17 @@ function imageselector_shortcode($parm = '', $mod = '')
$scaction = varsettrue($scaction, 'all'); $scaction = varsettrue($scaction, 'all');
$text = ''; $text = '';
$name_id = e107::getForm()->name2id($name); $name_id = e107::getForm()->name2id($name);
$imagelist = array();
//Get Select Box Only! //Get Select Box Only!
if ($scaction == 'select' || $scaction == 'all') if ($scaction == 'select' || $scaction == 'all')
{ {
$imagelist = array();
// Media manager support // Media manager support
if(vartrue($parms['media'])) if(vartrue($parms['media']))
{ {
$qry = "SELECT * FROM `#core_media` WHERE media_userclass IN (".USERCLASS_LIST.") "; $qry = "SELECT * FROM `#core_media` WHERE media_userclass IN (".USERCLASS_LIST.") ";
$qry .= vartrue($parms['media']) && $parms['media'] !== 'all' ? " AND media_category='".$tp->toDB($parms['media'])."' " : " AND `media_category` NOT REGEXP '_icon_16|_icon_32|_icon_48|_icon_64' "; $qry .= vartrue($parms['media']) && $parms['media'] !== 'all' ? " AND media_category='".$tp->toDB($parms['media'])."' " : " AND `media_category` NOT REGEXP '_icon_16|_icon_32|_icon_48|_icon_64' ";
$qry .= " AND media_category REGEX '.jpg|.png|.gif' ORDER BY media_name"; $qry .= " AND media_url REGEXP '.jpg|.png|.gif|.JPG|.PNG|.GIF' ORDER BY media_name";
// FIXME - media_type=image? // FIXME - media_type=image?
if($sql->db_Select_gen($qry)) if($sql->db_Select_gen($qry))
{ {
@@ -76,6 +75,11 @@ function imageselector_shortcode($parm = '', $mod = '')
$label = ($label) ? $label : " -- -- "; $label = ($label) ? $label : " -- -- ";
$tabindex = varset($tabindex) ? " tabindex='{$tabindex}'" : ''; $tabindex = varset($tabindex) ? " tabindex='{$tabindex}'" : '';
$class = varset($class) ? " class='{$class}'" : " class='tbox imgselector'"; $class = varset($class) ? " class='{$class}'" : " class='tbox imgselector'";
if(!e_AJAX_REQUEST)
{
$text .= '<div id="'.$name_id.'_cont">';
}
$text .= "<select{$multi}{$tabindex}{$class} name='{$name}' id='{$name_id}' onchange=\"replaceSC('imagepreview={$name}|{$width}|{$height}',this.form,'{$name_id}_prev'); \"> $text .= "<select{$multi}{$tabindex}{$class} name='{$name}' id='{$name_id}' onchange=\"replaceSC('imagepreview={$name}|{$width}|{$height}',this.form,'{$name_id}_prev'); \">
<option value=''>".$label."</option>\n"; <option value=''>".$label."</option>\n";
@@ -99,16 +103,32 @@ function imageselector_shortcode($parm = '', $mod = '')
$pth = $dir; $pth = $dir;
if($fullpath) if($fullpath)
{ {
$pth = !vartrue($parms['media']) ? $tp->createConstants($icon['path'], 'rel') : $icon['path']; if(!vartrue($parms['media']))
{
$pth = $tp->createConstants($icon['path'], 'rel');
$_value = $pth.$icon['fname'];
$_label = $dir.$icon['fname'];
$selected = ($default == $_value || $pth.$default == $_value) ? " selected='selected'" : "";
}
else
{
// convert e.g. {e_MEDIA}images/ to {e_MEDIA_IMAGES}
$pth = $tp->createConstants($tp->replaceConstants($icon['path']), 'rel');
$_value = $pth;
$_label = $icon['fname'];
$selected = ($default == $_value) ? " selected='selected'" : "";
}
} }
$selected = ($default == $pth.$icon['fname'] || $pth.$default == $pth.$icon['fname']) ? " selected='selected'" : "";
$text .= "<option value='{$pth}{$icon['fname']}'{$selected}>&nbsp;&nbsp;&nbsp;{$dir}{$icon['fname']}</option>\n"; $text .= "<option value='{$_value}'{$selected}>&nbsp;&nbsp;&nbsp;{$_label}</option>\n";
} }
} }
} }
$text .= '</optgroup>'; $text .= '</optgroup>';
} }
$text .= "</select>"; $text .= "</select>";
$text .= "<a href='#' onclick=\"replaceSC('imageselector=".rawurlencode($parm)."&saction=select',\$('{$name_id}').up('form'),'{$name_id}_cont'); return false;\">refresh</a>";
if(!e_AJAX_REQUEST) $text .= '</div>';
if ($scaction == 'select') return $text; if ($scaction == 'select') return $text;
} }
@@ -149,7 +169,7 @@ function imageselector_shortcode($parm = '', $mod = '')
} }
else else
{ {
$text .= "<a href='{$pvw_default}'{$hide} rel='external' title='Preview {$pvw_default}' class='e-image-preview'>"; $text .= "<a href='{$pvw_default}'{$hide} rel='external shadowbox' title='Preview {$pvw_default}' class='e-image-preview'>";
} }
if (vartrue($height)) $height = intval($height); if (vartrue($height)) $height = intval($height);
if (vartrue($width)) $width = intval($width); if (vartrue($width)) $width = intval($width);

View File

@@ -56,7 +56,10 @@ e107Widgets.Dialog = Class.create(e107WidgetAbstract, {
this.events = new e107EventManager(this); this.events = new e107EventManager(this);
this.initMod('core-dialog', options); this.initMod('core-dialog', options);
if(!e107Widgets['DialogManagerDefault']) e107Widgets.DialogManagerDefault = new e107Widgets.DialogManager();
this.dialogManager = this.options.dialogManager || e107Widgets.DialogManagerDefault; this.dialogManager = this.options.dialogManager || e107Widgets.DialogManagerDefault;
if(this.options.id && this.dialogManager.getWindow($(this.options.id))) return; if(this.options.id && this.dialogManager.getWindow($(this.options.id))) return;
this.setMethodChains(); this.setMethodChains();

View File

@@ -411,7 +411,7 @@ class e_admin_request
//special case - exclude all current //special case - exclude all current
if(true === $exclude_from_query) if(true === $exclude_from_query)
{ {
$exclude_from_query = $ret; $exclude_from_query = array_keys($ret);
} }
// to array // to array
if(is_string($exclude_from_query)) if(is_string($exclude_from_query))
@@ -1834,7 +1834,7 @@ class e_admin_controller
if($mode) $request->setMode($mode); if($mode) $request->setMode($mode);
if($action) $request->setAction($action); if($action) $request->setAction($action);
if(!$path) $path = e_SELF; if(!$path) $path = e_SELF;
$url = $path.'?'.$request->buildQueryString($merge_query, false, $exclude_query); $url = $path.'?'.$request->buildQueryString($merge_query, false, $exclude_query);
// Transfer all messages to session // Transfer all messages to session
e107::getMessage()->moveToSession(); e107::getMessage()->moveToSession();

View File

@@ -137,6 +137,35 @@ class e_form
return $ret; return $ret;
} }
public function mediaUrl($category = '', $label = '')
{
if($category) $category = '&amp;for='.$category;
if(!$label) $label = ' Upload an image or file';
$ret = "<a rel='external' class='e-dialog' href='".e_ADMIN_ABS."image.php?mode=main&amp;action=create{$category}'>".$label."</a>";
if(!e107::getRegistry('core/form/mediaurl'))
{
e107::getJs()->requireCoreLib('core/admin.js')
->requireCoreLib('core/dialog.js')
->requireCoreLib('core/draggable.js')
->coreCSS('core/dialog/dialog.css')
->coreCSS('core/dialog/e107/e107.css')
->footerInline('
$$("a.e-dialog").invoke("observe", "click", function(ev) {
var element = ev.findElement("a");
ev.stop();
new e107Widgets.URLDialog(element.href + "&iframe=1", {
id: element["id"] || "e-dialog",
width: 900,
height: 550
}).center().activate().show();
});
');
e107::setRegistry('core/form/mediaurl', true);
}
return $ret;
}
/** /**
* FIXME - better GUI, {IMAGESELECTOR} rewrite, flexibility, thumbnails, tooltip image preivew, etc. * FIXME - better GUI, {IMAGESELECTOR} rewrite, flexibility, thumbnails, tooltip image preivew, etc.
@@ -166,7 +195,7 @@ class e_form
if(strpos($sc_parameters, '=') === false) $sc_parameters = 'media='.$sc_parameters; if(strpos($sc_parameters, '=') === false) $sc_parameters = 'media='.$sc_parameters;
parse_str($sc_parameters, $sc_parameters); parse_str($sc_parameters, $sc_parameters);
} }
/* $qry = "SELECT * FROM `#core_media` WHERE media_userclass IN (".USERCLASS_LIST.") "; /* $qry = "SELECT * FROM `#core_media` WHERE media_userclass IN (".USERCLASS_LIST.") ";
$qry .= vartrue($sc_parameters['media']) ? " AND media_category = '".$tp->toDB($sc_parameters['media'])."' " : " AND `media_category` NOT REGEXP '_icon_16|_icon_32|_icon_48|_icon_64' "; $qry .= vartrue($sc_parameters['media']) ? " AND media_category = '".$tp->toDB($sc_parameters['media'])."' " : " AND `media_category` NOT REGEXP '_icon_16|_icon_32|_icon_48|_icon_64' ";
$qry .= "ORDER BY media_name"; $qry .= "ORDER BY media_name";
@@ -218,6 +247,7 @@ class e_form
if(!$label) $label = LAN_SELECT; if(!$label) $label = LAN_SELECT;
$parms = "name={$name}"; $parms = "name={$name}";
$parms .= '&media='.varset($sc_parameters['media']);
$parms .= "&path=".rawurlencode(e107::getParser()->replaceConstants(vartrue($sc_parameters['path'], '{e_MEDIA}images/|{e_MEDIA}temp/'))); $parms .= "&path=".rawurlencode(e107::getParser()->replaceConstants(vartrue($sc_parameters['path'], '{e_MEDIA}images/|{e_MEDIA}temp/')));
$parms .= "&filter=0"; $parms .= "&filter=0";
$parms .= "&fullpath=1"; $parms .= "&fullpath=1";