a und img taglib

Dieser Bereich dient dazu, neue Features zu diskutieren und für die Entwicklung zu dokumentieren. // This area is dedicated to new features including proposals and documentation.
Benutzeravatar
dr.e.
Administrator
Beiträge: 4556
Registriert: 04.11.2007, 16:13:53

Re: a und img taglib

Beitrag von dr.e. » 31.12.2011, 14:41:30

Hi Nico,

den aktuellen Code kannst du immer aus dem SVN beziehen (siehe http://adventure-php-framework.org/Seit ... Repository). Die aktuelle Download-Url ist http://adventurephpfra.svn.sourceforge. ... z?view=tar. 1.15 ist soweit stable, da nur noch kleine Änderungen am UMGT vorgenommen werden. Du kannst diese Version also ohne Bedenken produktiv einsetzen. Die APF-Seite läuft seit geraumer Zeit auch darauf.
Viele Grüße,
Christian

Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: a und img taglib

Beitrag von Screeze » 31.12.2011, 14:51:09

Hab übrigens gestern noch nen mini-Fehler gefixt, die Attribute welche zum html-tag selber gehören, wurden zwar korrekt extrahiert, aber beim löschen aus der liste (damit diese nicht auchnoch als parameter interpretiert werden) wurde dann der Wert statt des Keys von der Liste zu löschen versucht, wo jedoch natürlich keiner gefunden wurde und das attribut somit drin geblieben ist.
Somit erschien target="_blank" in der Url: ?target=_blank

Ist bereits im SVN online.

TipTop
Beiträge: 193
Registriert: 25.08.2011, 22:37:08
Wohnort: Klagenfurt, Österreich
Kontaktdaten:

Re: a und img taglib

Beitrag von TipTop » 01.01.2012, 15:47:17

UMGT - Login:
Login ist zur Zeit nicht möglich. Bitte versuchen Sie es zu einem späteren Zeitpunkt noch einmal.
Den Browser hab ich bereits mehrmals neu gestartet. Änderungen zu 1.14 beim UMGT sind mir bis jetzt bei der config aufgefallen. In 1.14 sah die Verzeichnisstuktur folgendermaßen aus:

-config
--modules
---usermanagement
----biz
----pres
----{CONTEXT}

Nun:

-config
--modules
---usermanagement
----biz
----pres
----data

DIe Config.-Struktur sieht bei mir nun folgendermaßen aus:

-config
--modules
---usermanagement
----biz
-----webrex
------DEFAULT_actionconfig.ini
------DEFAULT_serviceobjects.ini
------DEFAULT_umgtconfig.ini
----pres
-----webrex
------DEFAULT_labels.ini
------DEFAULT_login.ini
------DEFAULT_registration.ini
----data
-----webrex
------DEFAULT_umgt_domainobjects.ini
------DEFAULT_umgt_objects.ini
------DEFAULT_umgt_relations.ini

Hab ich vielleicht einen Fehler eingebaut? Oder wurden in 1.15 neue Config-Optionen integriert?

Oder liegt es ev. einfach daran:
noch kleine Änderungen am UMGT vorgenommen werden
Grüße,
Nico

PS: Ein gutes neues Jahr euch allen ;)

TipTop
Beiträge: 193
Registriert: 25.08.2011, 22:37:08
Wohnort: Klagenfurt, Österreich
Kontaktdaten:

Re: a und img taglib

Beitrag von TipTop » 01.01.2012, 19:47:41

Mir ist bei der a-TagLib noch ein Fehler aufgefallen. Das Kaufmännische Und wird in attributeList['class'] in das Entitiy (&) umgewandelt - dies ist bei der Variable qs auch Notwendig, sonst wird &amp mit & verglichen, wodurch dann natürlich auch keine active-Class gesetzt wird.


Diese Bedingung

Code: Alles auswählen

if (substr_count($href, $qs) > 0) {
    //...
} 
muss in

Code: Alles auswählen

if (substr_count($href, str_replace('&', '&', $qs)) > 0) {
    //...
} 
geändert werden.

[EDIT]
Es gibt noch ein weiteres "Problem". Verwende ich auf eiener Seite den Pager, wird in _SERVER['Query String'] (sofern gesetzt) der Parameter Pager_Page hinzugefügt. Lösen könnte man dies mit dem queryoption-Attribut und dem Value merge, allerdings muss dieses Attribut dann bei allen Links gesetzt werden, die Unterseiten mit zusätzlichen Parametern haben und somit haben dann die "Main"-Links Parameter, die sie gar nicht haben sollten.

TipTop
Beiträge: 193
Registriert: 25.08.2011, 22:37:08
Wohnort: Klagenfurt, Österreich
Kontaktdaten:

Re: a und img taglib

Beitrag von TipTop » 11.03.2012, 20:08:04

Habe nun eine Lösung für das korrekte Setzen der active-Class gefunden. Der neue Code der html_taglib_a.php:

Code: Alles auswählen

<?php
/**
 * <!--
 * This file is part of the adventure php framework (APF) published under
 * http://adventure-php-framework.org.
 *
 * The APF is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published
 * by the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * The APF is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with the APF. If not, see http://www.gnu.org/licenses/lgpl-3.0.txt.
 * -->
 */
import('tools::link::taglib', 'html_taglib_link');

/**
 * @package tools::link::taglib
 * @class html_taglib_a
 *
 * This taglib generates a html link tag based on the html_taglib_link taglib.
 *
 * @author: Werner Liemberger wpublicmail [at] gmail DOT com
 * @version
 * Version 0.1, 06.08.2011<br />
 */
class html_taglib_a extends html_taglib_link {

   protected $attributeList = array('id' => null, 'style' => null, 'class' => null, 'onabort' => null,
                                    'onclick' => null, 'ondblclick' => null, 'onmousedown' => null, 'onmouseup' => null,
                                    'onmouseover' => null, 'onmousemove' => null, 'onmouseout' => null,
                                    'onkeypress' => null, 'onkeydown' => null, 'onkeyup' => null, 'tabindex' => null,
                                    'dir' => null, 'accesskey' => null, 'title' => null, 'charset' => null,
                                    'coords' => null, 'href' => null, 'hreflang' => null, 'name' => null, 'rel' => null,
                                    'rev' => null, 'shape' => null, 'target' => null, 'xml:lang' => null, 'onblur' => null);

   protected $query = array();

   public function onParseTime() {
      // Move all vales from parameters which are in the white list into this array
      // and remove them from the attribute array, because they should not be part oft the url.
      foreach ($this->attributeList as $key => $elem) {
         $attr = $this->getAttribute($key, null);
         if ($attr != null) {
            $this->attributeList[$key] = $attr;
            $this->deleteAttribute($key);
         }
      }
      
      $this->attributeList['href'] = parent::transform();
      if ($this->attributeList['href'] === null) {
         throw new InvalidArgumentException('[html_taglib_a::onParseTime()] The Attribute "href" is missing. '
                                            . 'Please provide the destination!', E_USER_ERROR);
      }
   }

   public function transform() {
      // If no Content is set, this taglib tries to set the title as content.
      // If this is also missing it throws an Exception. This exception is needed,
      // because otherwise you will get an invalid html.
      $content = $this->getContent();
      if (empty($content)) {
         $content = $this->attributeList['title'];
      }

      if (empty($content)) {
         throw new InvalidArgumentException('No anchor text available!');
      }

      // if the current link is active, this taglib adds the css class active.
      if (!isset($this->attributeList['href'])) {
         return '';
      }      
      if (substr_count(str_replace('&', '&', Registry::retrieve('apf::core', 'CurrentRequestURL')), $this->attributeList['href']) > 0) {
         $this->attributeList['class'] = $this->attributeList['class'] . ' active';
      } 
      
      
      foreach ($this->attributeList as $key => $elem) {
         if ($elem === null) {
            unset($this->attributeList[$key]);
         }
      }

      return '<a ' . $this->getAttributesAsString($this->attributeList) . '>' . $content . '</a>';
   }
}

?>

Benutzeravatar
dr.e.
Administrator
Beiträge: 4556
Registriert: 04.11.2007, 16:13:53

Re: a und img taglib

Beitrag von dr.e. » 25.05.2012, 23:05:36

Hallo Nico,

die Klasse hast du ja bereits eingecheckt, insofern hake ich das Thema für mich mal ab.
Viele Grüße,
Christian

TipTop
Beiträge: 193
Registriert: 25.08.2011, 22:37:08
Wohnort: Klagenfurt, Österreich
Kontaktdaten:

Re: a und img taglib

Beitrag von TipTop » 03.06.2012, 15:40:09

Eine getstring-Taglib für die a-Taglib fehlt noch. Soll das in der 1.16 implementiert werden?

Benutzeravatar
dr.e.
Administrator
Beiträge: 4556
Registriert: 04.11.2007, 16:13:53

Re: a und img taglib

Beitrag von dr.e. » 03.06.2012, 16:29:39

Gerne! Magst du das übernehmen?

Nachdem die ui_getstring-Klasse mit 1.15 in den core gewandert ist, sollte das schnell erledigt sein.
Viele Grüße,
Christian

TipTop
Beiträge: 193
Registriert: 25.08.2011, 22:37:08
Wohnort: Klagenfurt, Österreich
Kontaktdaten:

Re: a und img taglib

Beitrag von TipTop » 03.06.2012, 17:03:56

Magst du das übernehmen?
Türlich :)

Megger
Beiträge: 1233
Registriert: 04.11.2008, 10:57:37

Re: a und img taglib

Beitrag von Megger » 12.06.2012, 15:43:23

Ich habe gerade gemerkt, dass aus

Code: Alles auswählen

<html:a action="add" title="Artikel anlegen">...</html:a>
nur etwas halbrichtiges wird :D

Code: Alles auswählen

<a title="Artikel anlegen" href="http://localhost/?action=add&title=Artikel anlegen">
...
</a>
Hatte eigentlich erwartet, dass das title nicht in der URL auftaucht, oder irre ich mich da?

Edit:
Vergesst meinen Beitrag :D Mit einer aktuellen Version funktioniert das auch ohne Probleme!
Tutorial: Browsergame mit dem APF (Die ersten Parts handeln von Installation und Inbetriebnahme des APFs, deswegen sicherlich auch für alle Nicht-Browsergame-Programmierer interessant)

APF-Version
  • Entwicklung: 2.0
  • Produktiv: 1.15

Gesperrt

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast