2017-08-29 1 views
0

Ich habe ein benutzerdefiniertes Modul erstellt und ich habe ein Nummernfeld, das ich nur lesen möchte.vTiger: schreibgeschütztes Feld in Bearbeitungsansicht

Das Problem, das ich habe, ist, wenn ich das Feld zum Lesen nur in der Datenbank durch Ändern des Anzeigetyps auf 2 setzen, wird es nicht in der Bearbeitungsansicht angezeigt, macht aber das Feld nur in der Detailansicht lesen.

Ich habe eine Ansicht in \layouts\v7\modules\<CUSTOMODULE>\uitypes erstellt, die das Attribut readonly zu meinem spezifischen Feld hinzufügt. Dies funktioniert nur, wenn der Anzeigetyp auf 1 gesetzt ist.

Gibt es eine Möglichkeit, meine Bearbeitungsansicht beizubehalten, so dass ich das schreibgeschützte Feld mit seinem Wert sehen kann, aber das Feld nur in der Detailansicht anzeigen kann?

Ich dachte über mit Hilfe von Javascript auf die Schaltfläche Bearbeiten

Antwort

0

ich diese

hier vor dem gleichen Problem für jemand anderes zu lösen verwaltet false zurück ist, was ich tat.

  1. Erstellen Sie einen neuen Ordner in vtiger_root\layouts\v7\modules\ModuleName (wird entweder v7 oder vlayout abhängig, welche Version von vTiger)

  2. einen neuen Ordner in den neuen Ordner vtiger_root\layouts\v7\modules\ModuleName\uitypes

  3. Kopieren von vtiger_root\layouts\v7\modules\Vtiger\uitypes genannt erstellen, die Feldtyp-TPL-Datei in den Ordner, der in Schritt 2 erstellt wurde (in meinem Fall kopierte ich die Datei Number.tpl)

  4. Fügen Sie den folgenden Code direkt vor dem schließ /> ‚yourfield‘ mit dem Feldnamen

    {if $FIELD_MODEL->getFieldName() eq 'yourfield'} 
        readonly="true" 
    {/if} 
    
  5. Kopieren von vtiger_root\layouts\v7\modules\Vtiger, Dateien DetailViewBlockView.tpl und DetailViewFullContents.tpl und legen Sie sie in Ihrem neuen Modulordner erstellt in Schritt 1

  6. ersetzen
  7. In der DetailViewFullContents.tpl Datei sucht die Linie

    {if $IS_AJAX_ENABLED && $FIELD_MODEL->isEditable() eq 'true' && $FIELD_MODEL->isAjaxEditable() eq 'true'} 
    

    enthält, und ersetzen sie es w mit

    {if $IS_AJAX_ENABLED && $FIELD_MODEL->isEditable() eq 'true' && $FIELD_MODEL->isAjaxEditable() eq 'true' && $FIELD_MODEL->getFieldName() neq 'yourfield'} 
    
Verwandte Themen