Beiträge von taram

    So die obige Zeile 37. von


    $model->setFieldValue(1, $userid , "mein neuer Wert");


    zu


    $model->setFieldValue($fieldID, $userid , "mein neuer Wert");


    geändert und Wert wurde geändert.


    Was jetzt noch komisch ist. Wenn ich mich in Backend einlogge und mir den User auf den o.g. Code gelaufen ist, steht immer noch der "Default Wert" in der Mask.
    Aber lese ich das Feld wieder über PHP aus, wird der neue Wert angezeigt.

    Danke für die Rückmeldung.


    Ich habe Deine o.g. Zeilen benutzt. Danach wurde Class 'FieldsHelper' not found beklagt.


    Dem habe ich mit JLoader::register('FieldsHelper', JPATH_ADMINISTRATOR . '/components/com_fields/helpers/fields.php'); abgeholfen.


    Der folgende Code



    läuft ohne Meldung durch, aber leider wird der Wert im Benutzerfeld nicht geändert. Irgendwas scheint noch zu fehlen. Aber was??


    Besten Dank für Antworten!!!

    Hallo,


    das eigene Feld hat "Permissions, Public, Edit, Allowed". Müsste eigentlich von den Rechten passen. Zudem ist das Feld ein einfachter String ohne Maximum Length Einschränkung.


    Mein letzter erfolgloser Stand ist den Wert zu setzen ist:



    wirft einen Fehler: Call to a member function setFieldValue() on boolean


    Gruß Martin

    Hallo,


    ich habe im Backend unter "User-> field" ein eigenes Nutzerfelder angelegt.


    Dieses eigene Feld möchte ich von PHP aus beschreiben und den Initialwert ändern.


    FieldID bekomme ich mit der Funktion:


    Code
    1. function GetFieldID($Alias){ $db = JFactory::getDBO(); $db->setQuery($db->getQuery(true) ->select('id') ->from('#__fields') ->where("context = 'com_users.user'")->where("name='".$Alias."'")); return $db->loadResult();}


    wobei $Alias der Name meines Feldes ist. Den Wert von meinem Benutzerfeld kann ich auslesen mit


    Code
    1. function GetField($UserID, $FieldID)
    2. {
    3. $db = JFactory::getDBO();
    4. $db->setQuery($db->getQuery(true)
    5. ->select('value')
    6. ->from('#__fields_values')
    7. ->where("field_id = $FieldID")->where("item_id=$UserID"));
    8. return $db->loadResult();
    9. }


    Quelle: https://joomla.stackexchange.c…alue-of-custom-user-field


    Im o.g. Link wird mit $model->setFieldValue der Wert gesetzt.


    Aber das klappt bei mir nicht und ich bekommen den Wert nicht gesetzt.


    Und leider habe ich bis jetzt keinen passenden Beispielcode oder API gefunden die mir weiterhilft, den Wert bei eigenen Benutzerfelder zu setzen.


    Wenn mir jemand weiterhelfen könnte wäre ich sehr dankbar.


    Beste Grüße Martin

    Ja, lokal heißt "neben" Joomla auf dem gleichen Server. Ich habe wie in https://www.ghsvs.de/programmi…ner-php-dateien-verwenden beschrieben, die PHP Datei eingebunden. Die eingebundene PHP Datei prüft gleicht am Anfang, ob eine andere PHP Datei im gleichen Verzeichnis vorhanden ist. Das ist sie, jedoch, bekam ich das Warning von meinem if-Statement, dass die Datei angeblich fehlt. Des Weiteren, hätte ich schon gern meine PHP-Seiten mit iframe/wrapper in meine Joomla-Seite eingebettet.


    Wie gesagt, die Funktion, die mir die Höhe anpasst ist ja da ("iFrameHeight()" --> \media\com_wrapper\js\iframe-height.min.js) ich möchte diese aus meiner PHP-Seite aufrufen, sprich meinem Framework sagen,führ bitte "iFrameHeight()" aus, um die Höhe anzupassen.


    Gruß Martin

    Ich habe es mal getestet wie im o.g. Link beschrieben. Leider werden dann andere verlinkte php Dateien nicht gefunden. (Die Ansatz, setzt ich erst mal auf Plan B).


    Ich würde gerne den Weg mit der Funktion "iFrameHeight()" eiter verfolgen. Das scheint mir z.Z. am zielführendsten für mein Problem zu sein.


    Wie kann ich denn aus einem eingebetteten php-file joomla-Funktion "iFrameHeight()" die aufrufen? Gibt es da eine API? Über kleine Code-Schnipsel wäre ich sehr dankbar.


    Gruß Martin

    Danke für den Link Christine. Aber leider passt es nicht ganz zu meinem Problem.


    Ich möchte aus einem PHP-file heraus mit Joomla kommunizieren und die Funktion "iFrameHeight()" aus \media\com_wrapper\js\iframe-height.min.js aufrufen,
    um die Höhe des iFrames anzupassen. Das php-file liegt ebenfalls auf dem Server und ist mit dem iframe wrapper eingebunden.


    Ich denke, ich muss im PHP-file dass eingebettet ist, den Befehl rausschicken, dass die iFrameHeight neu zu machen ist.


    Meine Vermutung geht in Richtung:


    PHP
    1. <?php if(JRequest::getVar('auto')) : ?>
    2. <script language="javascript" type="text/javascript">
    3. window.addEvent('load',iFrameHeight());
    4. </script><?php endif; ?>


    aber das liefert Uncaught ReferenceError: iFrameHeight is not defined


    Gebe ich "iFrameHeight()" auf der Browser-Console ein, erhalte ich das erwünschte Ergebnis.

    Hallo,


    ich habe mir einen Menüeintrag erstellt, der über "Iframe Wrapper" eine lokales php-file einbindet. In dem php-file sind Verlinkungen zu anderen php-files, die liegen aber auch lokal auf dem Server (localhost) neben Joomla. Zudem ist die Option "Auto Height" ausgewählt.


    Bei allen php-files klappt das gut mit "Auto Height", nur bei einen php-file, dass die Länge (height) ändert, nachdem der User ein "onclick" ausführt (es wird Text zur Seite hinzugefügt), habe ich Probleme. Dann enstehen unschöne Scroll-Balken. Sprich der iframe bekommt nichts mit von der veränderten Länge der eingebetteten php-Seite.


    Wenn ich auf der Google-Chrome-Browser-Console "iFrameHeight()" ausführe, wird die Seite passend und die Scroll-balken verschwinden. Die Funktion "iFrameHeight()" ist in \media\com_wrapper\js\iframe-height.min.js


    Frage: Wie bekomme ich nun im php-file die Kommunikation zum iframe (joomla) hin, sodass ich vom lokalen php-file (das im iframge gewrappt ist) aus mit Joomla "sprechen" kann und die Funktion "iFrameHeight()" aufrufen kann?


    Besten Dank,


    Martin