Anhänge zum Profil

Hast du Vorschläge, was wir an Admidio noch verbessern könnten ? Hier kannst du uns deine Vorstellung an neuen Funktionen mitteilen.
hasi63
Beiträge: 78
Registriert: 22. Nov 2015, 19:16

Re: Anhänge zum Profil

Beitrag von hasi63 »

Upps... sorry, deinen vorhergehenden Beitrag habe ich einfach so überlesen :)
Also, in der DB scheinen die Einträge korrekt zu sein.
admidioDB.JPG
admidioDB.JPG (66.33 KiB) 14911 mal betrachtet
Auch bei den Benutzern sollte der Eintrag (ich bin die eins und mein Chef die zwei :D ) I.O. sein, oder?
admidioBenutzer.JPG
admidioBenutzer.JPG (32.17 KiB) 14911 mal betrachtet
Der Download sieht so aus:
admidioDownload.JPG
admidioDownload.JPG (58.11 KiB) 14911 mal betrachtet
Was mich an deiner Anleitung etwas verunsichert ist der Teil:
im Script system/classes/profilefields.php wird schon die Variable %user_content% ersetzt (Zeile 244 unter "// replace a variable in url with user value"). Füge mal folgendes hinzu:
Da muss ich nichts löschen, oder? Dein Code gehört gleich unter: // replace a variable in url with user value (Zeilenumbruch und dann der Code?

Bei mir sieht dieser Abschnitt wie folgt aus:

Code: Alles auswählen

            // if field has url then create a link
            if(strlen($this->mProfileFields[$fieldNameIntern]->getValue('usf_url')))
            {
                if($fieldNameIntern == 'FACEBOOK' && is_numeric($value))
                {
                    // facebook has two different profile urls (id and facebook name),
                    // we could only store one way in database (facebook name) and the other (id) is defined here :)
                    $htmlValue = '<a href="http://www.facebook.com/profile.php?id='.$value.'" target="_blank">'.$htmlValue.'</a>';
                }
                else
                {
                    $htmlValue = '<a href="'.$this->mProfileFields[$fieldNameIntern]->getValue('usf_url').'" target="_blank">'.$htmlValue.'</a>';
                }

                // replace a variable in url with user value
// neu von Admidio
if(strpos($this->mProfileFields[$fieldNameIntern]->getValue('usf_url'), '%u_folder%') !== false)
{
    $sql_Folder = 'SELECT * FROM '. TBL_FOLDERS. '
    WHERE fol_name = '.$this->mUserId.'
    AND fol_type    = \'DOWNLOAD\'
    AND fol_path    = \'/adm_my_files/download/Userdokumente\'
    AND fol_org_id  = '. $gCurrentOrganization->getValue('org_id');

    $result_Folder = $this->mDb->query($sql_Folder);
    $FolderRow = $this->mDb->fetch_object($result_Folder);
    $FolderId = $FolderRow->fol_id;

    $htmlValue = preg_replace ('/%u_folder%/', $FolderId,  $htmlValue);
}
// Fertig neu 
                if(strpos($this->mProfileFields[$fieldNameIntern]->getValue('usf_url'), '%user_content%') !== false)
                {
                    $htmlValue = preg_replace('/%user_content%/', $value, $htmlValue);
                }
            }
             
            $value = $htmlValue;
        }
        else
        {
            // special case for type CHECKBOX and no value is there, then show unchecked checkbox

Aber lass dich bitte nicht Stressen.... Habe viele andere Baustellen die ich auch noch erledigen muss.
Die Dateianhänge sind nicht mehr ganz sooooo dringend, erst kommt der Import von 850 Mitgliedern welcher mir mehr Magenschmerzen macht :roll: :mrgreen:


Gruss

Harry
gabischatz
Beiträge: 8
Registriert: 16. Dez 2015, 10:11

Re: Anhänge zum Profil

Beitrag von gabischatz »

Hi ich habe da mal etwas zusammen gebastelt.
Leider weis ich noch nicht wie hier aus der DB gelesen und gespeichert wird.
Deshalb habe ich die betreffenden Zeilen mit #? gekennzeichnet!
Vielleicht hilft ja der Code. :mrgreen:

Code: Alles auswählen

<?php
    if (!empty($_POST)){
      if ($_POST) {
         // checkbox array
         $meta = array( 'checkbox1'
                       #,''
                        );
         foreach($meta as $field_name) {
            // Update the post's meta field checkbox
#? save to db update_option($field_name, '');
         }
         // Update routines
         foreach ($_POST as $option => $value) {
            if ( $option == 'submit' ) continue ;
            if ( $option == 'url' ){                       # 2                                    #1       #0
                 $value = ( $_POST['protocol'] =='2' ? 'https://' : $_POST['protocol'] =='1' ? 'http://' : '' );
               . trim(
                         str_replace( "\\"
                                     ,"/"
                                    ,preg_replace( '%\b([\r\n\t]?(https?|ftp|file):/+)\b%'
                                                    ,''
                                                  ,$value
                                                 ) # end preg_replace
                                      ) # end str_replace
                     ); # end trim
            } # end if
#? save to db update_option( $option,  $value );
         } # end foreach
      } # end if ($_POST
   } # end !empty($_POST)
?>
<table><tr><th><label for="protocol">Protokoll</label>
</th><td><select name="protocol"  id="protocol" >
   <optgroup label="Geben Sie das Protokoll an.">
   <option name="protocol" <?php if(
#? $datenbankfeld'protocol'
                         == '0' )echo ('selected'); ?> value="0" > ------ </option>
   <option name="protocol" <?php if(
#?$datenbankfeld'protocol'
                         == '1' )echo ('selected'); ?> value="1" >http:// </option>
   <option name="protocol" <?php if(
#?$datenbankfeld'protocol'
                         == '2' )echo ('selected'); ?> value="2" >https://</option>
</select></td></tr><tr><th><label for="url">Vollst&auml;ndige Adresse / URL</label></th><td>
<input name="url"
       id="url"
       title="<?=_e('geben Sie eine vollst&auml;ndige Adresse mit &bdquo;http://&ldquo; ein!');?>"
       type="url"
       pattern="^(f|ht)tps?\://[a-zA-Z0-9\-\._\?\,\'/\\\+&%\$#\=~]+$"
       value="<?php echo (
#? $datenbankfeld'url'
       );?>"
       spellcheck="false"
       autocomplete="off"
       autocapitalize="off" />
  <button onclick="document.getElementById('url').value = '';" >
       L&ouml;schen
  </button></td></tr>
<tr><th>Wollen Sie jetzt </th><td>
<input name="submit"
       type="submit"
       id="submit"
       value="Speichern &raquo;" />
</td></tr></table>
Schönen Weihnachtsmann
hasi63
Beiträge: 78
Registriert: 22. Nov 2015, 19:16

Re: Anhänge zum Profil

Beitrag von hasi63 »

Hallo
wollte mich mal wieder melden :)
Bei mir ist der Sturm vorbei und der Import der DB hat super geklappt. Nun kommen die Feinarbeiten und dazu gehören halt auch die Dateianhänge.
Leider verstehe ich definitiv zu wenig von Programmierungen als das mit der Code von gabischatz (danke aber trotzdem) weiterhelfen würde.

Hat vielleicht jemand Zeit sich das ganze nochmals anzuschauen? Wäre echt genial!

Gruss

Harry
Marcus
Beiträge: 16
Registriert: 30. Mai 2017, 12:45

Re: Anhänge zum Profil

Beitrag von Marcus »

Ich wäre da auch sehr dran Interessiert ;-)
Dirk_Maschke
Beiträge: 23
Registriert: 2. Sep 2016, 14:24
Wohnort: Bonn
Kontaktdaten:

Re: Anhänge zum Profil

Beitrag von Dirk_Maschke »

Hallo zusammen,

ich habe mir das Thema gerade erst angeschaut, aber wäre an der Stelle ein ähnliches Werkzeug, wie Ehrungen und Auszeichnungen sinnvoll. Damitwäre eine Upload in einer getrenten Umgebung und die Informationen wären im Profil mit angezeigt.

Hier ließe sich die Datenablage von der Downloadablage separieren. ggf.mit getrenter Berechtigungssteuerung auf den Dokumentenarte. Zumindest war dieses mein Ansatz, da ich eine strukturierte Ablage pro Benutzer und Thema beötige und umgekehrt nach Themen eine sortierte Ablage.

In unserem Fall:

Mitglied 1 hält einen Vortrag am 17.05.2016 zum Thema "Sonne", dann möchte ich den angehangenen Beitrag unter dem Mitglied und unter Sonne und ggf. über das Datum finden können.

Gruß

Dirk
Smfo
Beiträge: 15
Registriert: 16. Jan 2018, 11:27
Kontaktdaten:

Re: Anhänge zum Profil

Beitrag von Smfo »

hasi63 hat geschrieben: Also, ich habe den Code mal so eingebaut (hoffe habe deinen Text komplett richtig verstanden...)

Datei: /admidio/adm_program/system/classes/profilefields.php

Ich habe nach den Zeilen:

Code: Alles auswählen

                     // facebook has two different profile urls (id and facebook name),
                    // we could only store one way in database (facebook name) and the other (id) is defined here :)
                    $htmlValue = '<a href="http://www.facebook.com/profile.php?id='.$value.'" target="_blank">'.$htmlValue.'</a>';
                }
                else
                {
                    $htmlValue = '<a href="'.$this->mProfileFields[$fieldNameIntern]->getValue('usf_url').'" target="_blank">'.$htmlValue.'</a>';
                }

                // replace a variable in url with user value
Die Zeilen:

Code: Alles auswählen

if(strpos($this->mProfileFields[$fieldNameIntern]->getValue('usf_url'), '%u_folder%') !== false)
{
    $sql_Folder = 'SELECT * FROM '. TBL_FOLDERS. '
    WHERE fol_name = '.$this->mUserId.'
    AND fol_type    = \'DOWNLOAD\'
    AND fol_path    = \'/adm_my_files/download/Userdokumente\'
    AND fol_org_id  = '. $gCurrentOrganization->getValue('org_id');

    $result_Folder = $this->mDb->query($sql_Folder);
    $FolderRow = $this->mDb->fetch_object($result_Folder);
    $FolderId = $FolderRow->fol_id;

    $htmlValue = preg_replace ('/%u_folder%/', $FolderId,  $htmlValue);
}
eingefügt. Dann habe ich die Zeile:

Code: Alles auswählen

global $gPreferences, $g_root_path, $gL10n;
durch

Code: Alles auswählen

global $gPreferences, $g_root_path, $gL10n, $gCurrentOrganization;
ersetzt.
Danach noch das Optionsfeld mit dem Link erstellt und im Download den Ordner: Userdokumente und den Unterordner 1 erstellt (meine User iD)

Nun kann ich den Link anklicken, aber ich komme "nur" ins Download Verzeichnis (also nicht in Download/Userdokumente/1 sondern "nur" ins Verzeichnis Download/)

Folgender Link steht dann in der Adresszeile: /admidio/adm_program/modules/downloads/downloads.php?folder_id=
Bei mir tritt genau das selbe Problem auf. Anscheinend gibt es bis jetzt hierfür leider auch noch keine Lösung. Es bleibt noch die Hoffnung, dass das ganze vielleicht in eine zukünftigen Version fest implementiert wird.

Das Problem für jede Benutzer ID manuell einen Ordner anlegen zu müssen hätte würde ich einfach mit einem iMacro (iMacros for Chrome--> https://chrome.google.com/webstore/deta ... ource=plus) umgehen. Das Macro würde dann so lange durchlaufen bis alle Ordner erstellt wurden.
Hoerschi
Beiträge: 40
Registriert: 3. Apr 2018, 15:23

Re: Anhänge zum Profil

Beitrag von Hoerschi »

Hat jemand schon was brauchbares ??

Bei dieser Lösung können alle mit der gleichen Rolle das Verzeichnis sehen,

Und ich muss jeden Ordner samt seiner ID hinterlegen, bei Version 3.3 hat sich einiges im Code verändert.

Schön wäre eine neues User Field "Bild /PDF" (wie Profilbild) Ablage aber auf dem Server.
Anzeige dann per Leuchtkasten, fertig. Bild mit zufälligen Namen in Datenbank wie bei den Bildern in der Hilfestellung
henner
Beiträge: 180
Registriert: 24. Jan 2016, 21:40
Kontaktdaten:

Re: Anhänge zum Profil

Beitrag von henner »

Hallo,
hat jemand für die aktuelle admidio-Version hierfür eine Lösung?
Ich würde gerne für jedes Mitglied die Möglichkeit haben, ein Dokument zu hinterlegen, auf das dann Vorstandsmitglieder zugreifen können.

Besten Dank und bleibt gesund!

Henner
wisi01
Beiträge: 36
Registriert: 21. Mai 2021, 13:22

Re: Anhänge zum Profil

Beitrag von wisi01 »

Hallo @all!
Auch ich wäre an einer Möglichkeit ein oder mehrere Dokumente bei jedem Mitglied zu hinterlegen stark interessiert Hab mit zwar schon einige Gedanken dazu gemacht wie das am Besten umzusetzen wäre – aber leider sind meine php-Kenntnisse bei weiten nicht ausreichend um die im Kopf befindlichen Gedanken in ein funktionierendes Programm zu verwandeln.

Nur kurz eine Anregung: Analog zum Profil-Photo-Upload die Dokumente in einen Unterordner von adm_my_files (z.B. „adm_my_files/user_documents“ hochladen und den Namen mit der aktuellen User-ID als Präfix versehen. Zugriff dann über eine Listenausgabe im Userprofil… (ich weiß, die Überlegung ist vielleicht programmtechnisch nicht ganz richtig, aber – manchmal träume ich eben so dahin.. . :lol: ;-) )
Mir ist schon klar, dass dies vermutlich doch eine weitreichende Änderung ist – aber ich vermute mal dass es doch eine nicht unerhebliche Zahl von Usern gibt denen eines solche Funktion enorm gefallen würde…

Alles in allem aber nochmals ein Danke an alle, die sich hier immer wieder einbringen und somit auch die Erweiterung von diesem tollen Programm vorantreiben.
Liebe Grüße - wisi
Antworten