本文整理汇总了PHP中Widget::getInstance方法的典型用法代码示例。如果您正苦于以下问题:PHP Widget::getInstance方法的具体用法?PHP Widget::getInstance怎么用?PHP Widget::getInstance使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Widget
的用法示例。
在下文中一共展示了Widget::getInstance方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: index
public function index()
{
$this->css[] = "xwidget.css";
$this->notice = array(array("url" => Configure::read("site.notice.url"), "text" => Configure::read("site.notice.text")));
App::import('Sanitize');
App::import('vendor', 'model/widget');
$u = User::getInstance();
$ret = $w = array();
$ret = Widget::wGet($u);
if (empty($ret)) {
$this->set("widget", array());
return;
}
$persistent = Configure::read("widget.persistent");
if ($persistent) {
$time = (array) nforum_cache_read("widget_time");
$update = false;
}
$w = array_fill(1, $u->getCustom("userdefine1", 31) == 1 ? 3 : 2, array());
foreach ($ret as $v) {
$w[$v['col']][$v['row']] = $v;
if ($persistent) {
try {
$ww = Widget::getInstance($v['name']);
if (!$ww->wHasPerm(User::getInstance())) {
$ww = new EWidget('你无权访问此应用');
$html = Widget::html($ww->wGetList());
} else {
if (strpos($v['name'], "favor-") === 0) {
$html = Widget::html($ww->wGetList());
} else {
if (!isset($time[$v['name']]) || $time[$v['name']] < $ww->wGetTime() || false === ($html = nforum_cache_read("widget_" . $v['name']))) {
$time[$v['name']] = $ww->wGetTime();
$html = Widget::html($ww->wGetList());
nforum_cache_write("widget_" . $v['name'], $html);
$update = true;
}
}
}
} catch (WidgetNullException $e) {
$ww = new EWidget();
//if persistent,it will not check wiget time and will not update widget_time.
$html = Widget::html($ww->wGetList());
}
$w[$v['col']][$v['row']]['content'] = $html;
}
}
if ($persistent && $update) {
nforum_cache_write("widget_time", $time);
}
foreach ($w as &$v) {
ksort($v);
}
$this->set("widget", $w);
$this->jsr[] = 'SYS.widget.persistent=' . ($persistent ? 'true' : 'false');
$this->jsr[] = "xWidget.init(SESSION.get('is_login'), SESSION.get('id'))";
}
示例2: hot
public function hot()
{
$this->notice = "热点推荐";
$selected = $type = "topTen";
$s = Configure::read("section");
$secs["topTen"] = "十大";
$secs["recommend"] = "活动";
foreach ($s as $k => $v) {
if ($k === 0) {
continue;
}
$secs[$k] = $v[0];
}
if (isset($this->params['t'])) {
$selected = trim($this->params['t']);
if (!in_array($selected, array_keys($secs))) {
$this->error(ECode::$SEC_NOSECTION);
}
if (!isset($selected[1])) {
$type = "section-" . $selected;
} else {
$type = $selected;
}
}
try {
$w = Widget::getInstance($type);
$res = $w->wGetList();
$res = isset($res[0]['v']['v']) ? $res[0]['v']['v'] : $res['v'];
if (!isset($selected[1])) {
foreach ($res as $k => $v) {
$text = $v["text"];
$text = preg_replace("|\\[.*?\\]|", "", $text, 1);
if (preg_match("|href=\"(.*?)\"|", $text, $url)) {
$url = str_replace($this->base . "/article", "/article", $url[1]);
} else {
$url = "";
}
$text = trim(preg_replace("|<[^>]*?>|", "", $text));
$res[$k] = array("text" => $text, "url" => $url);
}
}
$this->set("hot", $res);
} catch (WidgetNullException $e) {
$this->error(ECode::$SEC_NOSECTION);
}
$this->cache(true, $w->wGetTime());
$this->set("secs", $secs);
$this->set("selected", $selected);
}
示例3: array_pop
//Search the default one
$layout_id = $lm->getDefaultLayoutId($owner_id, $owner_type);
} else {
$layout_id = (int) $request->get('layout_id');
}
if ($layout_id || $request->get('action') == 'preferences') {
$name = null;
if ($request->exist('name')) {
$param = $request->get('name');
$name = array_pop(array_keys($param));
$instance_id = (int) $param[$name];
}
switch ($request->get('action')) {
case 'widget':
if ($name && $layout_id) {
if ($widget = Widget::getInstance($name)) {
if ($widget->isAvailable()) {
$action = array_pop(array_keys($param[$name]));
switch ($action) {
case 'remove':
$instance_id = (int) $param[$name][$action];
$lm->removeWidget($owner_id, $owner_type, $layout_id, $name, $instance_id, $widget);
break;
case 'add':
default:
$lm->addWidget($owner_id, $owner_type, $layout_id, $name, $widget, $request);
break;
}
}
}
}
示例4: ajax_list
public function ajax_list()
{
$this->requestLogin();
if (!isset($this->params['url']['t'])) {
$this->error();
}
$type = $this->params['url']['t'];
if (!isset($this->params['url']['tt'])) {
$this->error();
}
$ret = array();
try {
$widgets = Widget::wGet(User::getInstance());
$my = array();
foreach ($widgets as $v) {
$my[] = $v["name"];
}
switch ($type) {
case 'section':
//$tt is for 0:root or 1:dir
$tt = $this->params['url']['tt'];
if ($tt != 0 && $tt != 1) {
$this->error();
}
$secs = Configure::read('section');
foreach ($secs as $k => $v) {
$w = Widget::getInstance("section-" . $k);
if ($tt == 0) {
if (!in_array($w->wGetName(), $my)) {
$title = $w->wGetTitle();
$title = $title["text"];
$ret[] = array('wid' => $w->wGetName(), 'title' => $title, 'p' => file_exists(IMAGES . 'app/icon/' . $w->wGetName() . '.png') ? $w->wGetName() : "default");
}
} else {
if ($tt == 1) {
foreach ($w->getDir() as $dir) {
$ww = Widget::getInstance("section-" . $dir->NAME);
if (!in_array($ww->wGetName(), $my)) {
$title = $ww->wGetTitle();
$title = $title["text"];
$ret[] = array('wid' => $ww->wGetName(), 'title' => $title, 'p' => file_exists(IMAGES . 'app/icon/' . $ww->wGetName() . '.png') ? $ww->wGetName() : "default");
}
}
}
}
}
break;
case 'favor':
//tt is for favor level
//favor is only one level!!! the structure error!!!
$tt = intval($this->params['url']['tt']);
$favor = Favor::getInstance($tt);
if (!in_array($favor->wGetName(), $my)) {
$title = $favor->wGetTitle();
$title = $title["text"];
$ret[] = array('wid' => $favor->wGetName(), 'title' => $title, 'p' => file_exists(IMAGES . 'app/icon/' . $favor->wGetName() . '.png') ? $favor->wGetName() : "default");
}
foreach ($favor->getDir() as $w) {
if (!in_array("favor-" . $w->BID, $my) && $w->NAME == "") {
$ret[] = array('wid' => "favor-" . $w->BID, 'title' => $w->DESC, 'p' => "default");
}
}
break;
case 'board':
if (!isset($this->params['url']['tt'])) {
$this->error();
}
//$tt is for section num
$tt = intval($this->params['url']['tt']);
$secs = Configure::read('section');
if (!in_array($tt, array_keys($secs))) {
$this->error();
}
$w = Section::getInstance($tt, Section::$ALL);
foreach ($w->getList() as $brd) {
$ww = Widget::getInstance("board-" . $brd->NAME);
if (!in_array($ww->wGetName(), $my)) {
$title = $ww->wGetTitle();
$title = $title["text"];
$ret[] = array('wid' => $ww->wGetName(), 'title' => $title, 'p' => file_exists(IMAGES . 'app/icon/' . $ww->wGetName() . '.png') ? $ww->wGetName() : "default");
}
}
break;
case 'ext':
if (!isset($this->params['url']['tt'])) {
$this->error();
}
//$tt is for category
$tt = $this->params['url']['tt'];
$ext = Configure::read('widget.ext');
if (!in_array($tt, array_keys($ext))) {
$this->error();
}
foreach ($ext[$tt][1] as $v) {
try {
$w = Widget::getInstance($v);
} catch (WidgetNullException $e) {
continue;
}
if (!in_array($w->wGetName(), $my)) {
//.........这里部分代码省略.........
示例5: wGet
/**
* function wGet get user widget
* it just get the properties of widget, no content
*
* @param User $user
* @return array('color', 'title', 'name', 'url', 'col', 'row')
* @static
* @access public
*/
public static function wGet($user)
{
App::import('Sanitize');
$colors = Configure::read("widget.color");
$uid = $user->userid;
$ret = array();
if ($uid == 'guest') {
$widgets = Configure::read("widget.default");
foreach ($widgets as $name => $v) {
try {
$ww = Widget::getInstance($name);
$title = $ww->wGetTitle();
} catch (WidgetNullException $e) {
$title = array('text' => 'WIDGET MISS', 'url' => '');
//it will show widget name,title
//but show error in content
}
$color = isset($v["color"]) ? $v["color"] : 0;
$title = isset($v["title"]) ? $v["title"] : $title;
$ret[] = array("color" => $colors[$color][0], "title" => Sanitize::html($title['text']), "url" => $title['url'], "name" => $name, "col" => $v['col'], "row" => $v['row']);
}
} else {
//two columns
$two = $user->getCustom("userdefine1", 31) == 0 ? " and (col=1 or col=2)" : "";
$db = DB::getInstance();
$sql = "select * from " . self::$table . " where uid=? {$two} order by col,row";
$res = $db->all($sql, array($uid));
if (empty($res)) {
$res = self::wInit($user);
}
foreach ((array) $res as $v) {
try {
$title = self::getInstance($v['wid'])->wGetTitle();
} catch (WidgetNullException $e) {
$title = array('text' => 'WIDGET MISS', 'url' => '');
}
$ret[] = array("color" => $colors[$v['color']][0], "title" => empty($v['title']) ? $title['title'] : Sanitize::html($v['title']), "name" => $v['wid'], "url" => $title['url'], "col" => $v['col'], "row" => $v['row']);
}
}
return (array) $ret;
}
示例6: getCategories
function getCategories($widgets)
{
$categ = array();
foreach ($widgets as $widget_name) {
if ($widget = Widget::getInstance($widget_name)) {
if ($widget->isAvailable()) {
$cs = explode(',', $widget->getCategory());
foreach ($cs as $c) {
if ($c = trim($c)) {
if (!isset($categ[$c])) {
$categ[$c] = array();
}
$categ[$c][$widget_name] = $widget;
}
}
}
}
}
return $categ;
}
示例7: index
public function index()
{
if (!isset($this->params['name'])) {
$this->error();
}
$name = $this->params['name'];
App::import('vendor', 'model/widget');
try {
$widget = Widget::getInstance($name);
} catch (WidgetNullException $e) {
$this->error($e->getMessage());
}
$wrapper = Wrapper::getInstance();
$data = $wrapper->widget($widget);
$list = $widget->wGetList();
switch (array_shift(split('-', $name))) {
case 'topten':
case 'recommend':
if (!is_array($list['v'])) {
break;
}
App::import('vendor', array('model/board', 'model/threads'));
$article = array();
foreach ($list['v'] as $v) {
if (isset($v['url'])) {
$ret = array();
preg_match("|^/article/(.*?)/(.*?)\$|", $v['url'], $ret);
if (empty($ret[1]) || empty($ret[2])) {
continue;
}
$board = rawurldecode($ret[1]);
$id = (int) $ret[2];
if ($widget->wGetName() == 'topten') {
$text = $v['text'];
$text = preg_replace("|<[^>]*?>|", '', $text);
if (preg_match("/\\((\\d+)\\)\$/", $text, $c)) {
$c = $c[1];
} else {
$c = 0;
}
}
try {
$t = $wrapper->article(Threads::getInstance($id, Board::getInstance($board)), array('threads' => true));
if ($widget->wGetName() == 'topten') {
$t['id_count'] = $c;
$t['title'] .= "({$c})";
}
$article[] = $t;
} catch (Exception $e) {
continue;
}
}
}
$data['article'] = $article;
break;
case 'section':
if (!is_array($list[0]['v']['v'])) {
break;
}
App::import('vendor', array('model/board', 'model/threads'));
$article = array();
foreach ($list[0]['v']['v'] as $v) {
if (isset($v['text'])) {
$ret = array();
preg_match("|/article/(.+?)/(\\d+)|", $v['text'], $ret);
if (empty($ret[1]) || empty($ret[2])) {
continue;
}
$board = rawurldecode($ret[1]);
$id = (int) $ret[2];
try {
$article[] = $wrapper->article(Threads::getInstance($id, Board::getInstance($board)), array('threads' => true));
} catch (Exception $e) {
continue;
}
}
}
$data['article'] = $article;
break;
default:
$this->error('no such widget');
}
$this->set('data', $data);
}
示例8: Widget
public function Widget()
{
return Widget::getInstance();
}