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

Anhänge zum Profil

Beitrag von hasi63 »

Hallo zusammen
ich vermisse in Admidio sehr schmerzlich Dateianhänge zum Profil... Folgender Hintergrund...

Unsere Mitglieder bekommen eine persönlichen Mitgieder-Pass zu Ihrer Mitgliedschaft. Dieser wird in PDF erstellt. Nun möchte ich den Mitgieder-Pass zum jeweiligen Profil hinzufügen (nicht als Link usw sondern als echter Dateianhang).

Könnte so ein Feld kreiert werden?
Der Bonus dazu wäre noch wenn auch mehrere Dateianhänge möglich wären 8)

Gruss und danke

Harry
oliver
Beiträge: 238
Registriert: 25. Nov 2014, 19:47

Re: Anhänge zum Profil

Beitrag von oliver »

Hallo Harry,

wie siehst Du denn den Unterschied zwischen Dateianhang und Link? In einem zweiten Thread schreibst Du ja, dass Du jetzt einen Link auf Eure Dropbox gelegt habt.

Besten Gruß
Oliver
hasi63
Beiträge: 78
Registriert: 22. Nov 2015, 19:16

Re: Anhänge zum Profil

Beitrag von hasi63 »

Hallo Oliver
Danke für deine Antwort.
Zur Erklärung:
[*]Dateianhänge liegt auf dem Server wo ich Admidio installiert habe.
[*]Link liegt irgendwo (eben z.b. auf der Drobbox)

Das Ziel wäre das wir unsere Dropbox nicht mehr brauchen müssen sondern alles auf dem eigenen Server liegt.

:!: Mir kommt noch der Gedanke das ev. auch eine Verlinkung zum Admino eigenen Download-Modul ne Möglichkeit wäre...

Ich habe eine Datei wie folgt im Download hochgeladen:
http://www.XXXXX.ch/meinadmidio/adm_pro ... ile_id=1xx

Nun möchte ich diesen (wegen eines anstehenden Server- und Verzeichnisumzug) auf:
./adm_program/modules/downloads/get_file.php?file_id=1xx
ändern. Leider schreibt dann Admidio den Link um auf:
./adm_program/modules/downloads/get_file.php?file_id=13
http://./adm_program/modules/downloads/get_file.php?file_id=xx
Das http:// macht alles zunichte, ansonsten wäre dies die optimale Möglichkeit...

Kann ich das Profilfeld URL irgendwo umdefinieren das es kein http mehr voranstellt? Wenn ja wäre das die perfekte Lösung :lol:

Gruss

Harry
oliver
Beiträge: 238
Registriert: 25. Nov 2014, 19:47

Re: Anhänge zum Profil

Beitrag von oliver »

Da gibt's was, 100%ig habe ich hier mal im Forum genau die Lösung gelesen, weiß aber nicht mehr, wo! Such' mal, das lohnt sich!

Besten Gruß
Oliver
hasi63
Beiträge: 78
Registriert: 22. Nov 2015, 19:16

Re: Anhänge zum Profil

Beitrag von hasi63 »

So, habe gefühlt 10000 Tread's (sicher waren es 200) nachgelesen... Leider finde ich überhaupt nichts.
Hat ev. jemand ein Tipp woher das unglückliche http:// kommt?

Gruss

Harry
Giovanni9030
Beiträge: 247
Registriert: 4. Sep 2012, 23:40

Re: Anhänge zum Profil

Beitrag von Giovanni9030 »

Hallo Harry,
zu deiner Frage woher das http: kommt, siehe folgenden Thread von fasse:http://www.admidio.org/forum/viewtopic. ... ttp#p21460

LG Hans
Benutzeravatar
fasse
Administrator
Beiträge: 6044
Registriert: 12. Nov 2005, 16:06

Re: Anhänge zum Profil

Beitrag von fasse »

hasi63 hat geschrieben:Nun möchte ich diesen (wegen eines anstehenden Server- und Verzeichnisumzug) auf:
./adm_program/modules/downloads/get_file.php?file_id=1xx
ändern. Leider schreibt dann Admidio den Link um auf:
./adm_program/modules/downloads/get_file.php?file_id=13
http://./adm_program/modules/downloads/get_file.php?file_id=xx
Das http:// macht alles zunichte, ansonsten wäre dies die optimale Möglichkeit...
Relative Pfade erlauben wir aus Sicherheitsgründen nicht. Die absolute URL willst du nicht nehmen, weil die sich demnächst bei euch ändert?

Viele Grüße
Fasse
hasi63
Beiträge: 78
Registriert: 22. Nov 2015, 19:16

Re: Anhänge zum Profil

Beitrag von hasi63 »

Hi Fasse
danke für die Antwort.
Relative Pfade erlauben wir aus Sicherheitsgründen nicht.
Aha.... Jetzt ist es mir sofort klar warum es nicht geht :D
Die absolute URL willst du nicht nehmen, weil die sich demnächst bei euch ändert?
Genau. Dabei ist das Problem das sich sowohl der Werbseitenname (http://www.xx.ch wird zu http://www.yyy.ch) wie auch das Verzeichnis ändern wird (/Verzeichnis1/Verzeichnis2/ wird zu /Verzeichnis/).

Wenn also jetzt der absolute Pfad so aussieht:
http://www.xx.ch/Test/Admidio3/adm_prog ... file_id=XX
dann sieht es später so aus:
http://www.yy.ch/admidio/adm_program/mo ... file_id=XX

Da ich aber die DB bereits so befüllen möchte um alles in Live zu Testen (wir werden ca. 1 Monat auf der alten DB und zugleich auf der neuen Arbeiten), wäre dies nach dem Umzug etwas aufwändig überall (es wird ca. 600 URL Einträge geben) nachzutragen...

Kann ich das jetzt bereits so machen das ich irgendwie flexibel bin 8) ?

Gruss

Harry
oliver
Beiträge: 238
Registriert: 25. Nov 2014, 19:47

Re: Anhänge zum Profil

Beitrag von oliver »

Hallo Harry,

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:

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);
}
Hier greifen wir auf das Objekt $gCurrentOrganization zu, das muss in der Funktion getHtmlValue() noch globalisiert werden (Zeile 99 erweitern):

Code: Alles auswählen

    global $gPreferences, $g_root_path, $gL10n;
ersetzen durch

Code: Alles auswählen

    global $gPreferences, $g_root_path, $gL10n, $gCurrentOrganization;
Und dann im Download-Modul auch das Verzeichnis "Userdokumente" anlegen und mit den entsprechenden Zugriffsrechten versehen. Und für jeden User ein Unterverzeichnis mit der User-ID als Namen anlegen (das wäre natürlich schön, wenn's automatisch ginge. Wenn es nicht so eilt, warte noch ein Weilchen, vielleicht wird die Automatik ja nachgeliefert). Vielleicht in die Beschreibung noch den User-Namen schreiben - macht den manuellen Zugriff über das Downloadmodul einfacher.

So... Jetzt in den Profilfeldern ein Optionsfeld anlegen.
- Name (z.B.): "Dokumente".
- Werteliste (nur einen Wert): "Link zum Dokumentenverzeichnis".
- URL: "http://www.my_website.de/admidio/adm_program/modules/downloads/downloads.php?folder_id=%u_folder%" (http://www.my_website.de natürlich ersetzen)

Warum Optionsfeld? Weil man sonst bei jedem User irgendwas reinschreiben müsste. Und mit Optionsfeld hat man die Möglichkeit, den Datei-Zugriff ein- oder auszuschalten. Ist in meinen Augen der geeignetste Datentyp hierfür.

Vorausgesetzt, das entsprechende Userverzeichnis existiert im Download-Modul, wird nach Aktivierung des Optionsfelds ein individueller Link für jeden aufgerufenen User angezeigt. Must nix mehr separat eintragen!

Bis auf das manuelle Anlegen der Download-Ordner ist das Handling eigentlich zumutbar.

@fasse: Wenn man das noch ein wenig verbessert (vielleicht neuen Datentyp "Fix-Text" oder "Action-Button" und automatisches Anlegen der User-Eigenen Unterverzeichnisse) hast Du mit überschaubarem Aufwand (1-2 Std.) eine schnelle Lösung für Deine User, denn diese Funktionalität ist hier anscheinend immer wieder gefragt (aktuelle wieder unter "sonstiges" hier im Forum der Beitrag "Dateiarchiv verlinken": http://forum.admidio.org/viewtopic.php?f=4&t=6770)

HoHoHo,
der verfrühte Weihnachtsmann ;-)
hasi63
Beiträge: 78
Registriert: 22. Nov 2015, 19:16

Re: Anhänge zum Profil

Beitrag von hasi63 »

Wow Oliver
jetzt bin ich platt. :D :mrgreen:
Was treibst du denn für einen Aufwand um mich, "armen" Schweizer, zufrieden zu stellen :P :wink:

Ich werde den Code gerne mal ausprobieren (bin aber gerade sehr im Stress...). Gebe dann gerne Rückmeldung sobald ich näheres weiss...

Gruss und vielen dank für den SUPER Support (gilt natürlich auch an für dich UND fasse :lol: )

Harry
hasi63
Beiträge: 78
Registriert: 22. Nov 2015, 19:16

Re: Anhänge zum Profil

Beitrag von hasi63 »

hmm... Hi Oliver

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=

Ich sehe hier vor lauter Bäumen den Wald nicht (bin halt ein Codeanfänger...) :o

Siehst du den Fehler im Code?

Gruss


Harry
oliver
Beiträge: 238
Registriert: 25. Nov 2014, 19:47

Re: Anhänge zum Profil

Beitrag von oliver »

Hallo Harry,

Stell mal Dein Licht nicht unter den Scheffel, Du scheinst erstmal soweit alles richtig gemacht zu haben!
In dem Link wird "%u_folder%" einfach gelöscht anstatt gegen die Folder_ID ersetzt. Positiv daran:
1. Der Ersetzungs-Code wird anscheinend ausgeführt.
2. Es tritt kein Fehler auf
Aber: Der Datenbank-Eintrag wird offensichtlich nicht gefunden. Hast Du Zugriff auf die Datenbank? Gibt es in der Tabelle (wahrscheinlich heißt sie adm_folders) den gesuchten Eintrag? Also einen Datensatz mit den Feldinhalten fol_name = '1' und fol_type='DOWNLOAD' und fol_path='/adm_my_files/download/Userdokumente' (Bitte auf Groß- und Kleinschreibung achten!) ?

Besten Gruß
Oliver
oliver
Beiträge: 238
Registriert: 25. Nov 2014, 19:47

Re: Anhänge zum Profil

Beitrag von oliver »

Hallo Harry,

noch mal 'ne doofe Frage: Du hast bei der Userverwaltung Dich selbst zum Bearbeiten aufgerufen und nicht irgendjemanden. Oder?

Besten Gruß
Oliver
hasi63
Beiträge: 78
Registriert: 22. Nov 2015, 19:16

Re: Anhänge zum Profil

Beitrag von hasi63 »

Ja klar.... Ich selbst bin auch Mitglied und zum "bearbeiten" :D
Es geht aber auch nicht mit einem anderen User...

Gruss

Harry
oliver
Beiträge: 238
Registriert: 25. Nov 2014, 19:47

Re: Anhänge zum Profil

Beitrag von oliver »

Hallo Harry,

wie sieht das mit den Datensätzen aus (siehe vorhergehenden Beitrag)?

Besten Gruß
Oliver
Antworten