Hochgeladene Dateien im Editor verlinken
-
- ConPresso-Experte
- Beiträge: 547
- Registriert: 04.07.2007 17:12
- Hat sich bedankt: 27 Mal
- Danksagung erhalten: 7 Mal
Hochgeladene Dateien im Editor verlinken
Hallo zusammen,
im Editor kann man auch über ein Auswahlfeld Dateien als Textlink hinzufügen. Dabei wird aber automatisch die Dateigröße in KB mit eingefügt.
Lässt sich das irgendwie abstellen? Dass man also einfach eine Textpassage direkt verlinken kann mit einer Datei aber ohne diese KB Angabe dabei?
Gruß,
dutch
im Editor kann man auch über ein Auswahlfeld Dateien als Textlink hinzufügen. Dabei wird aber automatisch die Dateigröße in KB mit eingefügt.
Lässt sich das irgendwie abstellen? Dass man also einfach eine Textpassage direkt verlinken kann mit einer Datei aber ohne diese KB Angabe dabei?
Gruß,
dutch
- MarkusR
- Handbuchversteher
- Beiträge: 7362
- Registriert: 01.01.1970 01:00
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 934 Mal
- Kontaktdaten:
Leider funktioniert das Markieren und Zuweisen eines Datei-Links nicht.
(ist im Editor-Code auch schon vermerkt, editor.js Zeile 1289)
Was durch Auswahl einer Datei passiert findet sich in editor.php ab Zeile 299.
Das kann man natürlich anpassen, z.B. die Dateigröße weglassen.
(ist im Editor-Code auch schon vermerkt, editor.js Zeile 1289)
Was durch Auswahl einer Datei passiert findet sich in editor.php ab Zeile 299.
Das kann man natürlich anpassen, z.B. die Dateigröße weglassen.
Ciao Markus
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
- MarkusR
- Handbuchversteher
- Beiträge: 7362
- Registriert: 01.01.1970 01:00
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 934 Mal
- Kontaktdaten:
Vielleicht willst Du ja mal folgendes testen:
Ersetze in editor.js die komplette Funktion encloseSelection() durch
Damit wird (bei mir in IE und FF) der markierte Text durch die übergebenen Werte umschlossen. Also das was die Funktion eigentlich machen soll.
Dann kann man in editor.php die Zeilen 292 bis 324 durch folgendes ersetzen
Dann kann man allerdings keine Dateien mehr einfügen ohne vorher einen Text markiert zu haben...
Ersetze in editor.js die komplette Funktion encloseSelection() durch
Code: Alles auswählen
function encloseSelection(html,closing)
{
if (typeof(closing) == 'undefined') var closing = '';
bse_conWin.focus();
if (bse_conWin.getSelection) { // Mozilla
var oSelection = bse_conWin.getSelection();
var Content = oSelection.toString();
var oRange = oSelection.getRangeAt(0);
oRange.deleteContents();
var Fragment = oRange.createContextualFragment(html+Content+closing);
oRange.insertNode(Fragment);
} else { // IE
var editRange = bse_conWin.document.selection.createRange();
var Content = editRange.htmlText;
editRange.pasteHTML(html+Content+closing);
}
bse_conWin.focus();
}
Dann kann man in editor.php die Zeilen 292 bis 324 durch folgendes ersetzen
Code: Alles auswählen
if ($db->num_rows()>0) {
echo ' <select id="files" onChange="encloseSelection(document.getElementById(\'files\').value,\'</a>\'); document.getElementById(\'files\').selectedIndex = 0;">';
echo '<option value="" selected>' . ___('Files') . '</option>';
echo '<option value="">--------------------------</option>';
while($db->next_record()) {
echo '<option value="';
echo htmlspecialchars('<A HREF="../_data/'.$db->v('datei').'" target="_blank">', ENT_COMPAT, 'ISO-8859-15');
echo '">';
if ($db->v('datei')!='') {
$k_datei = $db->v('datei');
$k_datei = substr($k_datei, 0, 50);
echo htmlspecialchars($k_datei, ENT_COMPAT, 'ISO-8859-15');
}
if ($db->v('beschreibung')!='') {
$k_beschreibung = $db->v("beschreibung")."##############################";
$k_beschreibung = substr($k_beschreibung, 0, 30);
$k_beschreibung = ereg_replace ( "#", " ", $k_beschreibung);
echo ' - ' . $k_beschreibung;
}
echo '</option>';
}
echo '</select>';
}
Ciao Markus
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
- MarkusR
- Handbuchversteher
- Beiträge: 7362
- Registriert: 01.01.1970 01:00
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 934 Mal
- Kontaktdaten:
Hier nochmal ein gepimpte Version:
Ersetze in editor.js die komplette Funktion encloseSelection() durch
Dann in editor.php die Zeilen 292 bis 324 durch folgendes ersetzen
Was ist da jetzt anders?
Hat man einen Text markiert, dann wird dieser mit einem Link versehen.
Hat man nichts markiert, dann wird ein Default-Text mit dem gleichen Link eingesetzt. Der Default-Text ist entweder der Dateiname oder die Beschreibung (wenn vorhanden) plus die Dateigröße.
Dieses wird in beiden Fällen auch als title-Attribut dem Link mitgegeben.
So habe ich mir das schon immer gewünscht...
Als netter Nebeneffekt können nun auch Snippets eine Markierung umschließen, wenn man sie in der Form
<code....>###</code...>
aufbaut. ### wird durch den markierten Text ersetzt.
Ersetze in editor.js die komplette Funktion encloseSelection() durch
Code: Alles auswählen
function encloseSelection(html)
{
var arrayOfStrings = html.split('###');
if (arrayOfStrings.length > 1)
{ // enclose
var startTag = arrayOfStrings[0];
var endTag = arrayOfStrings[1];
var title = arrayOfStrings[2];
} else { // put in front
var startTag = arrayOfStrings[0];
var endTag = '';
var title = '';
}
bse_conWin.focus();
if (bse_conWin.getSelection) { // Mozilla
var oSelection = bse_conWin.getSelection();
var Content = oSelection.toString();
if (Content.length == 0) Content = title;
var oRange = oSelection.getRangeAt(0);
oRange.deleteContents();
var Fragment = oRange.createContextualFragment(startTag+Content+endTag);
oRange.insertNode(Fragment);
oRange.collapse(false);
} else { // IE
var editRange = bse_conWin.document.selection.createRange();
var Content = editRange.htmlText;
if (Content.length == 0 || Content == "\r\n<P> </P>") Content = title;
editRange.pasteHTML(startTag+Content+endTag);
}
bse_conWin.focus();
}
Code: Alles auswählen
if ($db->num_rows()>0) {
echo ' <select id="files" onChange="encloseSelection(document.getElementById(\'files\').value); document.getElementById(\'files\').selectedIndex = 0;">';
echo '<option value="" selected>' . ___('Files') . '</option>';
echo '<option value="">--------------------------</option>';
while($db->next_record()) {
$fileString = '';
$descString = '';
$k_datei = '';
$k_beschreibung = '';
if ($db->v('datei')!='') {
$k_datei = $db->v('datei');
$title = $k_datei;
$k_datei = substr($k_datei, 0, 50);
$fileString = htmlspecialchars($k_datei, ENT_COMPAT, 'ISO-8859-15');
}
if ($db->v('beschreibung')!='') {
$title = $db->v("beschreibung");
$k_beschreibung = $title."##############################";
$k_beschreibung = substr($k_beschreibung, 0, 30);
$k_beschreibung = ereg_replace ( "#", " ", $k_beschreibung);
$descString = ' - ' . $k_beschreibung;
}
$sizeString = ' ['.printHumanReadable(@filesize(CPO_BASEDIR.'_data/'.$db->v('datei'))).']';
$optString = '<a href="../_data/'.$db->v('datei').'" target="_blank" title="'.$title.$sizeString.'">###</a>###'.$title.$sizeString;
echo '<option value="';
echo htmlspecialchars($optString, ENT_COMPAT, 'ISO-8859-15');
echo '">';
echo $fileString.$descString;
echo '</option>';
}
echo '</select>';
}
Hat man einen Text markiert, dann wird dieser mit einem Link versehen.
Hat man nichts markiert, dann wird ein Default-Text mit dem gleichen Link eingesetzt. Der Default-Text ist entweder der Dateiname oder die Beschreibung (wenn vorhanden) plus die Dateigröße.
Dieses wird in beiden Fällen auch als title-Attribut dem Link mitgegeben.
So habe ich mir das schon immer gewünscht...
Als netter Nebeneffekt können nun auch Snippets eine Markierung umschließen, wenn man sie in der Form
<code....>###</code...>
aufbaut. ### wird durch den markierten Text ersetzt.
Zuletzt geändert von MarkusR am 21.03.2014 21:34, insgesamt 2-mal geändert.
Ciao Markus
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
- MarkusR
- Handbuchversteher
- Beiträge: 7362
- Registriert: 01.01.1970 01:00
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 934 Mal
- Kontaktdaten:
Nochmal ausführlich:MarkusR hat geschrieben:Als netter Nebeneffekt können nun auch Snippets eine Markierung umschließen, wenn man sie in der Form
<code....>###</code...>
aufbaut. ### wird durch den markierten Text ersetzt.
An die Funktion encloseSelection() werden drei Teile in einem String übergeben, jeweils durch ### getrennt.
1. Start-Code
2. End-Code
3. Default-Text
So kann ein Snippet in der Form
Code: Alles auswählen
<div style="float: left; width: 100px; border: 1px solid red">###</div>###Dies ist ein linksbündiges DIV
Hat man keine ### im übergebenen String, dann wird der String vor der Markierung bzw. an der Cursorposition eingefügt.
Ciao Markus
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
- MarkusR
- Handbuchversteher
- Beiträge: 7362
- Registriert: 01.01.1970 01:00
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 934 Mal
- Kontaktdaten:
Und? Stand der Testergebnisse?dutch hat geschrieben:Fantastisch!
Werde ich morgen gleich mal testen.
Ciao Markus
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle