* @link http://status.net/
*/
-if (!defined('STATUSNET')) {
+if (!defined('STATUSNET') && !defined('LACONICA')) {
exit(1);
}
class Widget
{
+ protected $avatarSize = AVATAR_STREAM_SIZE;
+
/**
- * HTMLOutputter to use for output
+ * Action (HTMLOutputter) to use for output
*/
var $out = null;
/**
* Prepare the widget for use
*
- * @param HTMLOutputter $out output helper, defaults to null
+ * @param Action $out output helper, defaults to null
*/
- function __construct($out=null)
+ function __construct(Action $out=null)
{
$this->out = $out;
}
function show()
{
}
+
+ /**
+ * Get HTMLOutputter
+ *
+ * Return the HTMLOutputter for the widget.
+ *
+ * @return HTMLOutputter the output helper
+ */
+
+ function getOut()
+ {
+ return $this->out;
+ }
+
+ /**
+ * Delegate output methods to the outputter attribute.
+ *
+ * @param string $name Name of the method
+ * @param array $arguments Arguments called
+ *
+ * @return mixed Return value of the method.
+ */
+ function __call($name, $arguments)
+ {
+ return call_user_func_array(array($this->out, $name), $arguments);
+ }
+
+ /**
+ * Default avatar size for this widget.
+ */
+ public function avatarSize()
+ {
+ return $this->avatarSize;
+ }
+
+ protected function showAvatar(Profile $profile, $size=null)
+ {
+ $avatar_url = $profile->avatarUrl($size ?: $this->avatarSize());
+ $this->out->element('img', array('src' => $avatar_url,
+ 'class' => 'avatar u-photo',
+ 'width' => $this->avatarSize(),
+ 'height' => $this->avatarSize(),
+ 'alt' => $profile->getBestName()));
+ }
}