yakamara / redaxo_xform

XForm für redaxo4
22 stars 21 forks source link

form markup autocompleter.. #225

Open jdlx opened 10 years ago

jdlx commented 10 years ago

Hab sowas vor ner Weile gemacht.. (hab damals den autocompleter von jquery_ui genommen) .. ist echt ne riesen Hilfe beim forms erstellen:

https://dl.dropboxusercontent.com/u/10220684/screencasts/redaxo_xform_autocomplete.mp4

dergel commented 10 years ago

finde ich sehr cool ...

tbaddade commented 10 years ago

https://github.com/yuku-t/jquery-textcomplete

jdlx commented 10 years ago

Was es dafür u.a. braucht sind einfach parsbare Ausgaben von get_description() .. sprich das man sich da lediglich den piped string ohne gehampel rausziehn kann (war damals mit einigem regex gefrickel und Ausnahmen verbunden). Desweiteren war ein Vorteil vom jquery_ui completer das er groups darstellen kann.. sprich value/validate/action gruppieren kann..

jdlx commented 10 years ago

Ich paste hier mal ne xform class von mir zur Ansicht.. so als Serviervorschlag hinsichtlich einer einheitlichen/parsbaren get_description() Ausgabe.. usw. (bezügl. https://github.com/yakamara/redaxo4_xform/issues/220 siehe hier in der class auch die getHelp()Methode..)

<?php
class rex_xform_validate_strip_html extends rex_xform_validate_abstract
{
  static $shortname;

  function __construct()
  {
    self::$shortname = str_replace('rex_xform_validate_','',__CLASS__);
  }

  function enterObject()
  {
    if($this->params["send"]=='1')
    {
      $replacement = $this->getElement(3);

      foreach($this->obj_array as $Object)
      {
        $input = $Object->getValue();
        $sanitized = preg_replace('/<.*>.*<\/.*>/i', $replacement, $input);
        $Object->setValue($sanitized);
      }
    }
  }

  function getDescription()
  {
    return '<strong>
              '.self::$shortname.'
            </strong> :
            <em>
              Entfernt HTML aus Formulareingabe (ersetzt optional gegen vordefinierten Text)
            </em><br />
            <code class="xform-form-code">
              validate|'.self::$shortname.'|label|replace_string
            </code> (optional)';
  }

  function getHelp()
  {
    return array(
      'de_de' => array(
        'parser'  => 'textile',
        'content' => '
h4. Details zu Variablen

* @label@ : Feldname/label des zu bearbeitenden inputs
* @replace_string@ : String, der das herausgefilterte HTML ersetzt (optional)

h4. Formularbeispiel

bc.. // Textarea:

textarea|usr_note|Notiz *|

validate|'.self::$shortname.'|usr_note|*SPAM*
'
        )
      );
  }

}
hirbod commented 10 years ago

:+1: :+1: :+1: :+1: :+1: