commit d21e3ad19c99059d45694e956d8dab94aef9fa07
parent 7ad79115bf42a48f3df36a8f0571ea13337487e7
Author: Jan Dankert <devnull@localhost>
Date: Fri, 1 Dec 2017 23:46:02 +0100
Komponente "link" umgestellt auf eine Klasse.
Diffstat:
3 files changed, 169 insertions(+), 65 deletions(-)
diff --git a/themes/default/include/html/link/Link.class.php b/themes/default/include/html/link/Link.class.php
@@ -0,0 +1,169 @@
+<?php
+
+/**
+ * Erzeugt einen HTML-Link.
+ *
+ * @author dankert
+ *
+ */
+class LinkComponent extends Component
+{
+
+ public $var1;
+
+ public $var2;
+
+ public $var3;
+
+ public $var4;
+
+ public $var5;
+
+ public $value1;
+
+ public $value2;
+
+ public $value3;
+
+ public $value4;
+
+ public $value5;
+
+ public $target;
+
+ public $type;
+
+ public $action;
+
+ public $subaction;
+
+ public $title;
+
+ public $class;
+
+ public $url;
+
+ public $config;
+
+ public $id;
+
+ public $accesskey;
+
+ public $name;
+
+ public $anchor;
+
+ public $frame = '_self';
+
+ public $modal = false;
+
+ /**
+ * Link-Beginn
+ * {@inheritDoc}
+ * @see Component::begin()
+ */
+ public function begin()
+ {
+ echo '<a';
+
+ if (! empty($this->class))
+ echo ' class="' . $this->htmlvalue($this->class) . '"';
+
+ if (! empty($this->title))
+ echo ' title="' . $this->htmlvalue($this->title) . '"';
+
+ if (! empty($this->accesskey))
+ echo ' accesskey="' . $this->htmlvalue($this->accesskey) . '"';
+
+ if (! empty($this->frame))
+ echo ' target="' . $this->htmlvalue($this->frame) . '"';
+
+ if (! empty($this->name))
+ echo ' date-name="' . $this->htmlvalue($this->name) . '" name="' . $this->htmlvalue($this->name) . '"';
+
+ if (! empty($this->url))
+ echo ' data-url="' . $this->htmlvalue($this->url) . '"';
+
+ if (! empty($this->type))
+ echo ' data-type="' . $this->htmlvalue($this->type) . '"';
+
+ if (! empty($this->action))
+ echo ' data-action="' . $this->htmlvalue($this->action) . '"';
+ else
+ echo ' data-action="<?php echo OR_ACTION ?>"';
+
+ if (! empty($this->subaction))
+ echo ' data-method="' . $this->htmlvalue($this->subaction) . '"';
+ else
+ echo ' data-method="<?php echo OR_METHOD ?>"';
+
+ if (! empty($this->id))
+ echo ' data-id="' . $this->htmlvalue($this->id) . '"';
+ else
+ echo ' data-id="<?php echo OR_ID ?>"';
+
+ switch ($this->type)
+ {
+ case 'post':
+
+ // Zusammenbau eines einzeligen JSON-Strings.
+ // Aufpassen: Keine doppelten Hochkommas, keine Zeilenumbrüche.
+ echo ' data-data="{';
+
+ echo ""action":"";
+ if (! empty($this->action))
+ echo $this->htmlvalue($this->action);
+ else
+ echo "<?php echo OR_ACTION ?>";
+ echo "",";
+
+ echo ""subaction":"";
+ if (! empty($this->subaction))
+ echo $this->htmlvalue($this->subaction);
+ else
+ echo "<?php echo OR_METHOD ?>";
+ echo "",";
+
+ echo ""id":"";
+ if (! empty($this->id))
+ echo $this->htmlvalue($this->id);
+ else
+ echo "<?php echo OR_ID ?>";
+ echo "",";
+
+ echo '"'.REQ_PARAM_TOKEN . "":"" . '<?php echo token() ?>' . "",";
+
+ if (! empty($this->var1))
+ echo ""var1":"" . $this->htmlvalue($this->value1) . "",";
+ if (! empty($this->var2))
+ echo ""var2":"" . $this->htmlvalue($this->value2) . "",";
+ if (! empty($this->var3))
+ echo ""var3":"" . $this->htmlvalue($this->value3) . "",";
+ if (! empty($this->var4))
+ echo ""var4":"" . $this->htmlvalue($this->value4) . "",";
+ if (! empty($this->var5))
+ echo ""var5":"" . $this->htmlvalue($this->value5) . "",";
+
+ echo ""none":"0"}\"";
+
+ break;
+
+ case 'html':
+
+ echo ' href="' . $this->htmlvalue($this->url) . '"';
+ break;
+
+ default:
+ echo ' href="' . 'javascript:void(0);' . '"';
+ }
+
+ echo '>';
+ }
+
+ public function end()
+ {
+ echo '</a>
+';
+ }
+}
+?>
diff --git a/themes/default/include/html/link/link-begin.inc.php b/themes/default/include/html/link/link-begin.inc.php
@@ -1,62 +0,0 @@
-<?php
- $params = array();
- #IF-ATTR var1#
- $params[$attr_var1]=$attr_value1;
- #END-IF
- #IF-ATTR var2#
- $params[$attr_var2]=$attr_value2;
- #END-IF
- #IF-ATTR var3#
- $params[$attr_var3]=$attr_value3;
- #END-IF
- #IF-ATTR var4#
- $params[$attr_var4]=$attr_value4;
- #END-IF
- #IF-ATTR var5#
- $params[$attr_var5]=$attr_value5;
- #END-IF
-
- #IF-ATTR class#
- #ELSE
- $attr_class='';
- #END-IF
-
- #IF-ATTR url#
- #ELSE
- $attr_url='';
- #END-IF
-
- #IF-ATTR title#
- #ELSE
- $attr_title = '';
- #END-IF
-
- $tmp_url = '';
-
- #IF-ATTR target#
- $params[REQ_PARAM_TARGET] = $attr_target;
- #ELSE
- $attr_target = $view;
- #END-IF
-
- //$tmp_url = Html::url($attr_action,$attr_subaction,!empty($attr_id)?$attr_id:$this->getRequestId(),$params);
- $tmp_href = 'javascript:void(0);';
- switch( $attr_type )
- {
- case 'post':
- $json = new JSON();
- $tmp_data = $json->encode( array('action'=>!empty($attr_action)?$attr_action:$this->actionName,'subaction'=>!empty($attr_subaction)?$attr_subaction:$this->subActionName,'id'=>!empty($attr_id)?$attr_id:$this->getRequestId())
- +array(REQ_PARAM_TOKEN=>token())
- +$params );
- $tmp_data = str_replace("\n",'',str_replace('"','"',$tmp_data));
- break;
- case 'html';
- $tmp_href = $attr_url;
- default:
- $tmp_data = '';
- }
-
-// if ( substr($tmp_url,0,10) != 'javascript' )
-// $tmp_url = "javascript:loadViewByName('".$attr_target."','".$tmp_url.(isset($attr_anchor)?'#'.$attr_anchor:'')."'); return false;";
-
-?><a data-url="<?php echo $attr_url ?>" target="<?php echo $attr_frame ?>"<?php if (isset($attr_name)) { ?> data-name="<?php echo $attr_name ?>" name="<?php echo $attr_name ?>"<?php }else{ ?> href="<?php echo $tmp_href ?>" <?php } ?> class="<?php echo $attr_class ?>" data-id="<?php echo @$attr_id ?>" data-type="<?php echo $attr_type ?>" data-action="<?php echo @$attr_action ?>" data-method="<?php echo @$attr_subaction ?>" data-data="<?php echo $tmp_data ?>" <?php if (isset($attr_accesskey)) echo ' accesskey="'.$attr_accesskey.'"' ?> title="<?php echo encodeHtml($attr_title) ?>">-
\ No newline at end of file
diff --git a/themes/default/include/html/link/link-end.inc.php b/themes/default/include/html/link/link-end.inc.php
@@ -1 +0,0 @@
-</a>-
\ No newline at end of file