FrontendUsers (FEU) > Formular-Layout via CSS (revisited)

Hilfe zu Modulen und Tags
Post Reply
babulski

FrontendUsers (FEU) > Formular-Layout via CSS (revisited)

Post by babulski »

hallo zusammen.

das problem, was ich hier anspreche, ist nicht neu (siehe: http://forum.cmsmadesimple.org/index.ph ... 940.0.html). scheinbar gibt es bis dato auch keine lösung für dieses anliegen (auch im haupt-forum -- nichts):

wenn man eine seite aufsetzt, ist es vonnöten, dass ALLES im gleichen look erscheint. sprich: auch die formular-felder und buttons.
FEU ist echt eine harte nuss. ich habe immer noch keine lösung gefunden, die inputs und submits per css-klasse zu formatieren. das haut mein natürlich layout völlig durcheinander.

einen möglichen ansatz habe ich gefunden, in modules/FEU/functions.php:

Code: Select all

function myCreateInputSubmit($id, $name, $value='', $image='', $addttext='')
{
  global $gCms;
  $text = '<input name="'.$id.$name.'" value="'.$value.'" type=';
  if ($image != '')
    {
      $text .= '"image"';
      $img = $gCms->config['root_url'].DIRECTORY_SEPARATOR.$image;
      $text .= ' src="'.$img.'"';
    }
  else 
    {
      $text .= '"submit"'; 

/********** string umwandeln in:'"submit" "class="feu_submit"' ?   **********/

    }
  if ($addttext != '')
    {
      $text .= ' '.$addttext;
    }
  $text .= ' />';
  return $text . "\n";
}
wäre zu schön gewesen -- funktioniert ebenfalls nicht.
interessanterweise wird die funktion 'myCreateInputSubmit' auch nirgend im hauptmodule aufgerufen ...
hm, was nutzt einem das beste modul, wenn die doks unter aller sau sind?
jeder einzelne coder bastelt bei CMSMS offenbar sein eigenes smarty-süppchen.
wäre es nicht langsam mal sinnvoll eine gut dokumentierte api bereitszustellen, wo solche sachen (klassendefinition, form-ids etc.) kohärent geändert werden können?
just my 2 cents ...
--babulski
cyberman

Re: FrontendUsers (FEU) > Formular-Layout via CSS (revisited)

Post by cyberman »

babulski wrote: wäre es nicht langsam mal sinnvoll eine gut dokumentierte api bereitszustellen, wo solche sachen (klassendefinition, form-ids etc.) kohärent geändert werden können?
Außer diesem

http://www.cmsmadesimple.org/apidoc/

ist mir nix bekannt  ::) - aber das kennst du ja sicherlich schon.

Alles andere ist wohl auch eine Zeitfrage - CMSms hat vom Aufwand mittlerweile eine Größe erreicht, bei der der Personalmangel chronisch ist. Außerdem sind zu wenig neue User bereit und in der Lage, sich intensiver einzubringen.
cyberman

Re: FrontendUsers (FEU) > Formular-Layout via CSS (revisited)

Post by cyberman »

babulski wrote: ich habe immer noch keine lösung gefunden, die inputs und submits per css-klasse zu formatieren.
Habs mir grad mal angeschaut - wo genau gibts da bei dir Probleme bzw. lässt sich nix formatieren?

Mit

Code: Select all

input#m5input_username
{
   width: 400px;
}
hab ich hier z. Bsp. die Breite des Benutzernamens-Feldes formatiert.
babulski

Re: FrontendUsers (FEU) > Formular-Layout via CSS (revisited)

Post by babulski »

hi cyberman.
ja, soweit war ich auch schon. das ändert aber nur teilweise was an diesem problem.
schauen wir mal in den generierten code des logins:

Code: Select all

<!-- Login form template -->
<form id="m4moduleform-1" name="m4moduleform-1" method="post" action="index.php">
<div class="hidden">
<input type="hidden" name="mact" value="FrontEndUsers,m4,do_login,1" />
<input type="hidden" name="m4returnid" value="53" />
<input type="hidden" name="page" value="53" /></div>

username <input type="text" name="m4input_username" id="m4input_username" value="" size="20" maxlength="20" />
 passwort <input type="password" name="m4input_password" value="" size="20" maxlength="20" />
 <input name="m4btn_login" value="anmelden" type="submit" />
<br /><br />
  <a href="http://snip/index.php?mact=FrontEndUsers,cntnt01,forgotpw,0&cntnt01returnid=53">haben sie ihr passwort vergessen?</a>
</form>
<!-- Login form template -->
ich kann natürlich, wie du vorgeschlagen hast, diesen INPUT per css.class formatieren.
allerdings ist dann auch der INPUT SUBMIT betroffen. und genau das will ich vermeiden.

im grunde sollte ALLES SEPARAT definierbar sein.
das einzige jedoch, was unique ist, sind die NAMES (z.b. m4btn_login). per css kannst du die nicht anpsprechen, das musst du über den DOM machen. bisken umständlich, oder -- input.submit per javascript zu formatieren?

es muss doch eine stelle im module-php geben, die für diesen o.g. output verantwortlich ist. da würde ich gerne rein -- und es nötigenfalls händisch ändern.
any idea?
--babulski

btw: den link zu den APIs kannte ich noch nicht. danke!

EDIT:

hab's gerade mal mit CSS2-specs versucht:

Code: Select all

input[type=text][name=m4input_username] {color: red;)
input[type=password][name=m4input_password] {color: red;}
input[type=submit][name=m4btn_login] {color: green;}
nada.nix.null.
>:(

EDIT 2:

habe mir gerade noch mal "FrontEndUsers.module.php"angeschaut:

Code: Select all

$this->smarty->assign('input_submit',
$this->CreateInputSubmit($id, 'btn_login', 
$this->Lang('login')));
es wird hier also 'CreateInputSubmit' aufgerufen. und die ist lt. apidoc folgendermassen deklariert:

Code: Select all

cms_module_CreateInputSubmit (line 178)
void cms_module_CreateInputSubmit (mixed &$modinstance, mixed $id, mixed $name, [mixed $value = ''], [mixed $addttext = ''], [mixed $image = ''], [mixed $confirmtext = ''])
prima. wie modifiziere ich nun das php-script, sodass, z.b., "id=feu_login-submit" generiert wird?

ich bin nicht sehr smart in smarty, weisst du ... ;)
Last edited by babulski on Tue Dec 12, 2006 10:45 pm, edited 1 time in total.
cyberman

Re: FrontendUsers (FEU) > Formular-Layout via CSS (revisited)

Post by cyberman »

babulski wrote: allerdings ist dann auch der INPUT SUBMIT betroffen. und genau das will ich vermeiden.
Stimmt nicht ganz - mit input#m5input_username wird nur das Input-Feld des Benutzernamens angesprochen (dieses Feld hat eine ID )  ;).
es muss doch eine stelle im module-php geben, die für diesen o.g. output verantwortlich ist.
Stimmt, ausgehend von dem ausgegebenen Source suchen wir einfach mal nach "Login form template" und finden das

Code: Select all

<!-- Login form template -->
 <font size="-2">
 {$startform}
 {if $error}
  {$error}<br>
 {/if}
  <p>{$prompt_username} {$input_username} {$prompt_password} 
  {$input_password} {$input_submit}<br/>
  {$link_forgot}
{$endform}
  </font>
<!-- Login form template -->
An dieser Stelle könnte man bereits ansetzen und jede Variable in ein verpacken und dann via

#wasduwillst input {}

formatieren (damit wird nur das input-Elemente innerhalb des Bereichs mit der ID "wasduwillst " angesprochen). Bei dieser Gelegenheit kann man auch gleich dieses unglückliche korrigieren - dadurch wird der Output nur invalid (xhtml strict).
wie modifiziere ich nun das php-script, sodass, z.b., "id=feu_login-submit" generiert wird?
Wenn ich dir das verrate, ärgerst du dich, dass du überhaupt gefragt hast - so einfach ist das  ;D ;D ;D

Code: Select all

$this->smarty->assign('input_submit', $this->CreateInputSubmit($id, 'btn_login', $this->Lang('login'), 'id=feu_login-submit')); 
Last edited by cyberman on Wed Dec 13, 2006 6:21 am, edited 1 time in total.
babulski

Re: FrontendUsers (FEU) > Formular-Layout via CSS (revisited)

Post by babulski »

cyberman wrote:Stimmt nicht ganz - mit input#m5input_username wird nur das Input-Feld des Benutzernamens angesprochen (dieses Feld hat eine ID )  ;).
das hast du natürlich recht. 8) ich meinte: wenn du generell den INPUT formatierst, dann hast du diesen effekt.
author cyberman wrote:Bei dieser Gelegenheit kann man auch gleich dieses unglückliche korrigieren - dadurch wird der Output nur invalid (xhtml strict).
vielleicht sollte man auch den autor des modules darüber informieren?
babulski wrote:wie modifiziere ich nun das php-script, sodass, z.b., "id=feu_login-submit" generiert wird?
Wenn ich dir das verrate, ärgerst du dich, dass du überhaupt gefragt hast - so einfach ist das  ;D ;D ;D

Code: Select all

$this->smarty->assign('input_submit', $this->CreateInputSubmit($id, 'btn_login', $this->Lang('login'), 'id=feu_login-submit')); 
nee, ne? das war's schon? unglaublich.
es funzt jetzt. phantastisch. vielen dank!
smarty ist wirklich sehr smart  :D ich glaube, ich werde mich da doch noch ein bisschen reinarbeiten müssen.
hast du einen tipp für ein erstes 'light reading'?

frühe grüsse, babulski
susiklein
Forum Members
Forum Members
Posts: 10
Joined: Fri Dec 14, 2007 1:25 pm

Re: FrontendUsers (FEU) > Formular-Layout via CSS (revisited)

Post by susiklein »

Eine ganz simple Lösung wände ich immer an in meinen Forms. Ich klammere die Buttons immer mit {BUTTON} ein und deklariere das Input dann mit den entsprechenden Wünschen. Wenn eine oder oder so vorhanden ist, kann man auch direkt formatieren. meistens klappt das. ;D
Post Reply

Return to “Module und Tags”