Page MenuHomePhorge

D25157.1734743372.diff
No OneTemporary

D25157.1734743372.diff

diff --git a/src/view/phui/PHUIObjectItemView.php b/src/view/phui/PHUIObjectItemView.php
--- a/src/view/phui/PHUIObjectItemView.php
+++ b/src/view/phui/PHUIObjectItemView.php
@@ -83,11 +83,29 @@
return $this->object;
}
+ /**
+ * Set the href attribute
+ *
+ * @param string|PhutilURI|null $href
+ * @return self
+ */
public function setHref($href) {
+
+ // We have not a very clear idea about what this method should receive
+ // So, let's log alien stuff for some time
+ // https://we.phorge.it/T15316
+ self::requireValidHref($href, 'href');
+
$this->href = $href;
return $this;
}
+ /**
+ * Get the href attribute
+ *
+ * @see PHUIObjectItemView::setHref()
+ * @return string|PhutilURI|null
+ */
public function getHref() {
return $this->href;
}
@@ -136,7 +154,19 @@
return $this;
}
+ /**
+ * Set the image href attribute
+ *
+ * @param string|PhutilURI|null $image_href
+ * @return self
+ */
public function setImageHref($image_href) {
+
+ // We have not a very clear idea about what this method should receive
+ // So, let's log alien stuff for some time
+ // https://we.phorge.it/T15316
+ self::requireValidHref($image_href, 'image_href');
+
$this->imageHref = $image_href;
return $this;
}
@@ -659,8 +689,8 @@
$this->getImageIcon());
}
- if ($image && (phutil_nonempty_string($this->href) ||
- phutil_nonempty_string($this->imageHref))) {
+ if ($image && (phutil_nonempty_stringlike($this->href) ||
+ phutil_nonempty_stringlike($this->imageHref))) {
$image_href = ($this->imageHref) ? $this->imageHref : $this->href;
$image = phutil_tag(
'a',
@@ -899,4 +929,30 @@
return javelin_tag('span', $options, '');
}
+
+ /**
+ * Receive a href attribute and check if it has expected values
+ *
+ * TODO: Feel free to remove after 2023, if no more new reports arrive.
+ *
+ * https://we.phorge.it/T15316
+ *
+ * @param mixed $href Value to be checked
+ * @param string $variable_name Human reference
+ */
+ private static function requireValidHref($href, $variable_name) {
+
+ // We have not a very clear idea about what a "href" should be
+ if (is_object($href) && !($href instanceof PhutilURI)) {
+
+ // We log stuff with a kind stack trace
+ phlog(new Exception(pht(
+ 'The variable %s received an unexpected type: %s. '.
+ 'Please share this stack trace as comment in Task %s',
+ $variable_name,
+ get_class($href),
+ 'https://we.phorge.it/T15316')));
+ }
+ }
+
}

File Metadata

Mime Type
text/plain
Expires
Sat, Dec 21, 01:09 (17 h, 43 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1020522
Default Alt Text
D25157.1734743372.diff (2 KB)

Event Timeline