本文整理汇总了PHP中Overlay::bind方法的典型用法代码示例。如果您正苦于以下问题:PHP Overlay::bind方法的具体用法?PHP Overlay::bind怎么用?PHP Overlay::bind使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Overlay
的用法示例。
在下文中一共展示了Overlay::bind方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: elseif
$anchor = Anchors::get($_REQUEST['anchor']);
} elseif (isset($context['arguments'][1])) {
$anchor = Anchors::get($context['arguments'][0] . ':' . $context['arguments'][1]);
}
// reflect access rights from anchor
if (!isset($item['active']) && is_object($anchor)) {
$item['active'] = $anchor->get_active();
}
// get the related overlay, if any -- overlay_type will be considered later on
$overlay = NULL;
if (isset($item['overlay']) && $item['overlay']) {
$overlay = Overlay::load($item, 'file:' . $item['id']);
} elseif (isset($_REQUEST['variant']) && $_REQUEST['variant']) {
$overlay = Overlay::bind($_REQUEST['variant']);
} elseif (isset($_SESSION['pasted_variant']) && $_SESSION['pasted_variant']) {
$overlay = Overlay::bind($_SESSION['pasted_variant']);
unset($_SESSION['pasted_variant']);
// set a new overlay instance, except if some template has been defined for this anchor
} elseif (!isset($item['id']) && is_object($anchor)) {
$overlay = $anchor->get_overlay('file_overlay');
}
// get parent of the anchor too
$parent = NULL;
if (is_object($anchor) && ($parent = $anchor->get_parent())) {
$parent = Anchors::get($parent);
}
// we are allowed to add a new file
if (!isset($item['id']) && is_object($anchor) && Files::allow_creation($anchor->get_values(), $parent, $anchor->get_type())) {
$permitted = TRUE;
} elseif (isset($item['id']) && Files::allow_modification($item, $anchor)) {
$permitted = TRUE;
示例2: get_overlay
/**
* get the default overlay type for anchored items, if any
*
* This function is mainly used to associate overlays with sections.
*
* @param string name of the attribute that contains overlay class
* @return a string
*/
function get_overlay($name = 'content_overlay')
{
$overlay = NULL;
if ($this->item && isset($this->item[$name])) {
$overlay = Overlay::bind($this->item[$name]);
}
return $overlay;
}
示例3: layout
/**
* list sections
*
* @param resource the SQL result
* @return string the rendered text
*
* @see layouts/layout.php
**/
function layout($result)
{
global $context;
// we return some text
$text = '';
// empty list
if (!SQL::count($result)) {
return $text;
}
// maximum number of items
if (isset($this->layout_variant) && $this->layout_variant > 3) {
$maximum_items = $this->layout_variant;
} elseif (defined('YAHOO_LIST_SIZE')) {
$maximum_items = YAHOO_LIST_SIZE;
} else {
$maximum_items = 7;
}
// clear flows
$text .= '<br style="clear: left" />';
// process all items in the list
$family = '';
while ($item = SQL::fetch($result)) {
// change the family
if ($item['family'] != $family) {
$family = $item['family'];
$text .= '<h2><span>' . $family . ' </span></h2>' . "\n";
}
// get the anchor
$anchor = Anchors::get($item['anchor']);
// the url to view this item
$url = Sections::get_permalink($item);
// initialize variables
$prefix = $label = $suffix = $icon = $hover = '';
// signal restricted and private sections
if ($item['active'] == 'N') {
$prefix .= PRIVATE_FLAG;
} elseif ($item['active'] == 'R') {
$prefix .= RESTRICTED_FLAG;
}
// flag sections that are draft, dead, or created or updated very recently
if ($item['activation_date'] >= $context['now']) {
$prefix .= DRAFT_FLAG;
} elseif ($item['expiry_date'] > NULL_DATE && $item['expiry_date'] <= $context['now']) {
$prefix .= EXPIRED_FLAG;
} elseif ($item['create_date'] >= $context['fresh']) {
$suffix .= NEW_FLAG;
} elseif ($item['edit_date'] >= $context['fresh']) {
$suffix .= UPDATED_FLAG;
}
// display introduction field on hovering
if ($item['introduction']) {
$hover .= strip_tags(Codes::beautify_introduction($item['introduction']));
}
// details and content
$details = array();
$content = array();
// count related sub-elements
$related_count = 0;
// info on related articles
if ($count = Articles::count_for_anchor('section:' . $item['id'])) {
if ($count > $maximum_items) {
$details[] = sprintf(i18n::ns('%d page', '%d pages', $count), $count);
} elseif (Surfer::is_empowered()) {
$details[] = sprintf(i18n::ns('%d page', '%d pages', $count), $count);
}
$related_count += $count;
// get the overlay for content of this section, if any
$content_overlay = NULL;
if (isset($item['content_overlay'])) {
$content_overlay = Overlay::bind($item['content_overlay']);
}
// no room to list articles
if (count($content) >= $maximum_items) {
} elseif (is_object($content_overlay) && is_callable(array($content_overlay, 'render_list_for_anchor'))) {
if ($related = $content_overlay->render_list_for_anchor('section:' . $item['id'], $maximum_items - count($content))) {
foreach ($related as $sub_url => $label) {
$sub_prefix = $sub_suffix = $sub_hover = '';
if (is_array($label)) {
$sub_prefix = $label[0];
$sub_suffix = $label[2];
if (@$label[5]) {
$sub_hover = $label[5];
}
$label = $label[1];
}
$content[] = $sub_prefix . $label . $sub_suffix;
}
}
// regular rendering of related articles
} else {
if (preg_match('/\\barticles_by_([a-z_]+)\\b/i', $item['options'], $matches)) {
$order = $matches[1];
//.........这里部分代码省略.........
示例4: sprintf
$text .= sprintf(i18n::s('A section "%s" has been created.'), $fields['nick_name']) . BR . "\n";
} else {
$text .= Logger::error_pop() . BR . "\n";
}
}
// 'bugzilla_page' article
if (Articles::get('bugzilla_page')) {
$text .= sprintf(i18n::s('A page "%s" already exists.'), 'bugzilla_page') . BR . "\n";
} elseif ($anchor = Sections::lookup('bugzilla')) {
$fields = array();
$fields['anchor'] = $anchor;
$fields['nick_name'] = 'bugzilla_page';
$fields['title'] = i18n::c('I need help');
$fields['introduction'] = i18n::c('Sample support request');
$fields['publish_date'] = gmstrftime('%Y-%m-%d %H:%M:%S');
$overlay = Overlay::bind('issue');
$fields['overlay'] = $overlay->save();
$fields['overlay_id'] = $overlay->get_id();
if (Articles::post($fields)) {
$text .= sprintf(i18n::s('A page "%s" has been created.'), $fields['nick_name']) . BR . "\n";
$overlay->remember('insert', $fields, 'article:' . $fields['id']);
} else {
$text .= Logger::error_pop() . BR . "\n";
}
}
// add sample comments to 'bugzilla_page'
if ($anchor = Articles::lookup('bugzilla_page')) {
// add a bunch of comments
$stats = Comments::stat_for_anchor($anchor);
if ($stats['count'] < 50) {
for ($index = 1; $index <= 10; $index++) {
示例5: load
/**
* restore an instance
*
* This function unserializes piggy-back data and uses it to populate an overlay instance.
*
* [php]
* // get the record from the database
* $item = Articles::get($id);
*
* // extract overlay data from $item['overlay']
* $overlay = Overlay::load($item, 'article:'.$item['id']);
* [/php]
*
* @see articles/delete.php
* @see articles/edit.php
* @see articles/view.php
*
* @param array the hosting array
* @param string reference of the containing page (e.g., 'article:123')
* @return a restored instance, or NULL
*/
public static final function load($host, $reference = '')
{
global $context;
if (is_object($host)) {
$data = $host->item;
} else {
$data = $host;
}
// no overlay yet
if (!isset($data['overlay']) || !$data['overlay']) {
return NULL;
}
// retrieve the content of the overlay
if (($attributes = Safe::unserialize($data['overlay'])) === FALSE) {
return NULL;
}
// restore unicode entities
foreach ($attributes as $name => $value) {
if (is_string($value)) {
$attributes[$name] = utf8::from_unicode($value);
}
}
// we need a type
if (!is_array($attributes) || !isset($attributes['overlay_type'])) {
return NULL;
}
// bind this to current page
if (isset($data['id'])) {
$attributes['id'] = $data['id'];
}
// use one particular overlay instance
$overlay = Overlay::bind($attributes['overlay_type']);
if (is_object($overlay)) {
$overlay->attributes = $attributes;
// expose all of the anchor interface to the contained overlay
if (!is_object($host)) {
$overlay->anchor = Anchors::get($reference);
} else {
$overlay->anchor = $host;
}
// ready to use!
return $overlay;
}
// unknown overlay type or empty overlay
return NULL;
}
示例6: array
$embedded = NULL;
} else {
$embedded = Codes::list_embedded($item['description']);
}
// build a complete box
$box = array('bar' => array(), 'text' => '');
// count the number of files in this section
//if($count = Files::count_for_anchor('section:'.$item['id'], FALSE, $embedded)) {
$count = Files::count_for_anchor('section:' . $item['id'], FALSE, $embedded);
if ($count > 20) {
$box['bar'] += array('_count' => sprintf(i18n::ns('%d file', '%d files', $count), $count));
}
// get overlay for files if any
$file_overlay = NULL;
if (isset($item['file_overlay'])) {
$file_overlay = Overlay::bind($item['file_overlay']);
}
// delegate rendering to the overlay, where applicable
if (is_object($file_overlay) && ($overlaid = $file_overlay->render('files', 'section:' . $item['id'], $zoom_index))) {
$box['text'] .= $overlaid;
} elseif ($count) {
// list files by date (default) or by title (option 'files_by_title')
$offset = ($zoom_index - 1) * FILES_PER_PAGE;
if (preg_match('/\\bfiles_by_title\\b/i', $item['options'])) {
$items = Files::list_by_title_for_anchor('section:' . $item['id'], $offset, FILES_PER_PAGE, 'section:' . $item['id'], $embedded);
} else {
$items = Files::list_by_date_for_anchor('section:' . $item['id'], $offset, FILES_PER_PAGE, 'section:' . $item['id'], $embedded);
}
// actually render the html
if (is_array($items)) {
$box['text'] .= Skin::build_list($items, 'decorated');
示例7: layout
/**
* list sections
*
* @param resource the SQL result
* @return string the rendered text
*
* @see layouts/layout.php
**/
function layout($result)
{
global $context;
// empty list
if (!SQL::count($result)) {
$output = array();
return $output;
}
// we return some text
$text = '';
// maximum number of items
if (isset($this->layout_variant) && $this->layout_variant > 3) {
$maximum_items = $this->layout_variant;
} elseif (defined('YAHOO_LIST_SIZE')) {
$maximum_items = YAHOO_LIST_SIZE;
} else {
$maximum_items = 7;
}
// stack of items
$items = array();
// process all items in the list
include_once $context['path_to_root'] . 'comments/comments.php';
include_once $context['path_to_root'] . 'links/links.php';
$family = '';
while ($item = SQL::fetch($result)) {
// change the family
if ($item['family'] != $family) {
// flush current stack, if any
if (count($items)) {
$text .= Skin::build_list($items, '2-columns');
}
$items = array();
// show the family
$family = $item['family'];
$text .= '<h2><span>' . $family . ' </span></h2>' . "\n";
}
// the url to view this item
$url = Sections::get_permalink($item);
// initialize variables
$prefix = $label = $suffix = $icon = '';
// signal restricted and private sections
if ($item['active'] == 'N') {
$prefix .= PRIVATE_FLAG;
} elseif ($item['active'] == 'R') {
$prefix .= RESTRICTED_FLAG;
}
// flag sections that are draft, dead, or created or updated very recently
if ($item['activation_date'] >= $context['now']) {
$prefix .= DRAFT_FLAG;
} elseif ($item['expiry_date'] > NULL_DATE && $item['expiry_date'] <= $context['now']) {
$prefix .= EXPIRED_FLAG;
} elseif ($item['create_date'] >= $context['fresh']) {
$suffix .= NEW_FLAG;
} elseif ($item['edit_date'] >= $context['fresh']) {
$suffix .= UPDATED_FLAG;
}
// details and content
$details = array();
$content = array();
// count related sub-elements
$related_count = 0;
// info on related articles
if ($count = Articles::count_for_anchor('section:' . $item['id'])) {
if ($count > $maximum_items) {
$details[] = sprintf(i18n::ns('%d page', '%d pages', $count), $count);
} elseif (Surfer::is_empowered()) {
$details[] = sprintf(i18n::ns('%d page', '%d pages', $count), $count);
}
$related_count += $count;
// get the overlay for content of this section, if any
$content_overlay = NULL;
if (isset($item['content_overlay'])) {
$content_overlay = Overlay::bind($item['content_overlay']);
}
// no room to list articles
if (count($content) >= $maximum_items) {
} elseif (is_object($content_overlay) && is_callable(array($content_overlay, 'render_list_for_anchor'))) {
if ($related = $content_overlay->render_list_for_anchor('section:' . $item['id'], $maximum_items - count($content))) {
foreach ($related as $sub_url => $label) {
$sub_prefix = $sub_suffix = $sub_hover = '';
if (is_array($label)) {
$sub_prefix = $label[0];
$sub_suffix = $label[2];
if (@$label[5]) {
$sub_hover = $label[5];
}
$label = $label[1];
}
$content[] = $sub_prefix . Skin::build_link($sub_url, $label, 'basic', $sub_hover) . $sub_suffix;
}
}
// regular rendering of related articles
//.........这里部分代码省略.........
示例8: unset
if (isset($_REQUEST['overlay_type']) && $_REQUEST['overlay_type']) {
// associates are allowed to change overlay types -- see overlays/select.php
if (!Surfer::is_associate()) {
unset($_REQUEST['overlay_type']);
} elseif (is_object($overlay) && $overlay->get_type() == $_REQUEST['overlay_type']) {
unset($_REQUEST['overlay_type']);
}
}
// new overlay type
if (isset($_REQUEST['overlay_type']) && $_REQUEST['overlay_type']) {
// delete the previous version, if any
if (is_object($overlay)) {
$overlay->remember('delete', $_REQUEST, 'section:' . $_REQUEST['id']);
}
// new version of page overlay
$overlay = Overlay::bind($_REQUEST['overlay_type']);
}
// when the page has been overlaid
if (is_object($overlay)) {
// allow for change detection
$overlay->snapshot();
// update the overlay from form content
$overlay->parse_fields($_REQUEST);
// save content of the overlay in this item
$_REQUEST['overlay'] = $overlay->save();
$_REQUEST['overlay_id'] = $overlay->get_id();
}
// branch to another script to save data
if (isset($_REQUEST['options']) && preg_match('/\\bedit_as_[a-zA-Z0-9_\\.]+?\\b/i', $_REQUEST['options'], $matches) && is_readable($matches[0] . '.php')) {
include $matches[0] . '.php';
return;
示例9: sprintf
if (!Surfer::is_associate() && ($overlay->attributes['user_status'] == 'donotdisturb' || $overlay->attributes['user_status'] == 'anonymous' || $item['without_alerts'] == 'Y')) {
$context['text'] .= sprintf(i18n::s('Sorry, %s wish not to receive private message'), $item['nick_name']);
render_skin();
finalize_page(TRUE);
}
// the new thread
$article = array();
$article['anchor'] = $anchor;
$article['title'] = isset($_REQUEST['title']) ? $_REQUEST['title'] : utf8::transcode(Skin::build_date(gmstrftime('%Y-%m-%d %H:%M:%S GMT'), 'full'));
$article['active_set'] = 'N';
// this is private
$article['publish_date'] = gmstrftime('%Y-%m-%d %H:%M:%S');
// no review is required
$article['options'] = 'view_as_zic_pm';
// include some overlay
$overlay = Overlay::bind('thread');
$article['overlay'] = $overlay->save();
$article['overlay_id'] = $overlay->get_id();
// ensure everything is positioned as expected
Surfer::empower();
// post the new thread
if (!($article['id'] = Articles::post($article))) {
Logger::error(i18n::s('Impossible to add a page.'));
} else {
//get full article
$article = Articles::get($article['id']);
// attach some file
if (isset($_FILES['upload']) && ($file = Files::upload($_FILES['upload'], 'files/article/' . $article['id'], 'article:' . $article['id']))) {
$_REQUEST['message'] .= $file;
}
// make a new comment out of received message, if any
示例10: parse_tag_close
function parse_tag_close($parser, $tag)
{
global $context;
global $in_overlay, $overlay_class, $overlay_parameters;
global $parsed_cdata, $parsed_item, $parsed_overlay, $parsing_report;
// save gathered data if necessary
switch ($tag) {
case 'article':
// end of article
// transcode owner id
$parsed_item['owner_id'] = Surfer::get_id();
if (isset($parsed_item['owner_nick_name']) && ($user = Users::get($parsed_item['owner_nick_name']))) {
$parsed_item['owner_id'] = $user['id'];
}
// transcode creator id
$parsed_item['create_id'] = Surfer::get_id();
if (isset($parsed_item['create_nick_name']) && ($user = Users::get($parsed_item['create_nick_name']))) {
$parsed_item['create_id'] = $user['id'];
}
// transcode editor id
$parsed_item['edit_id'] = Surfer::get_id();
if (isset($parsed_item['edit_nick_name']) && ($user = Users::get($parsed_item['edit_nick_name']))) {
$parsed_item['edit_id'] = $user['id'];
}
// transcode publisher id
$parsed_item['publish_id'] = Surfer::get_id();
if (isset($parsed_item['publish_nick_name']) && ($user = Users::get($parsed_item['publish_nick_name']))) {
$parsed_item['publish_id'] = $user['id'];
}
// bind to given overlay
$overlay = NULL;
if ($overlay_class) {
$overlay = Overlay::bind($overlay_class . ' ' . $overlay_parameters);
}
// when the page has been overlaid
if (is_object($overlay)) {
// update the overlay from content
foreach ($parsed_overlay as $label => $value) {
$overlay->attributes[$label] = $value;
}
// save content of the overlay in this item
$parsed_item['overlay'] = $overlay->save();
$parsed_item['overlay_id'] = $overlay->get_id();
}
// find anchor from handle
if (isset($parsed_item['anchor_handle']) && ($reference = Sections::lookup($parsed_item['anchor_handle']))) {
$parsed_item['anchor'] = $reference;
}
// update an existing page
if (isset($parsed_item['handle']) && ($item = Articles::get($parsed_item['handle']))) {
// transcode page id
$parsed_item['id'] = $item['id'];
// stop on error
if (!Articles::put($parsed_item) || is_object($overlay) && !$overlay->remember('update', $parsed_item, 'article:' . $item['id'])) {
Logger::error(sprintf('Unable to save article %s', $parsed_item['title'] . ' (' . $parsed_item['id'] . ')'));
}
// create a new page
} else {
unset($parsed_item['id']);
// stop on error
if (!($parsed_item['id'] = Articles::post($parsed_item))) {
Logger::error(sprintf('Unable to save article %s', $parsed_item['title']));
} else {
// save overlay content
if (is_object($overlay)) {
$overlay->remember('insert', $parsed_item, 'article:' . $parsed_item['id']);
}
}
}
// report to surfer
$parsing_report .= '<li>' . Skin::build_link(Articles::get_permalink($parsed_item), $parsed_item['title']) . "</li>\n";
// ready for next item
$overlay_class = NULL;
$overlay_parameters = '';
$parsed_overlay = array();
$parsed_item = array();
Safe::set_time_limit(30);
break;
case 'overlay':
// end of overlay data
$in_overlay = FALSE;
break;
case 'section':
// end of section
// transcode owner id
$parsed_item['owner_id'] = Surfer::get_id();
if (isset($parsed_item['owner_nick_name']) && ($user = Users::get($parsed_item['owner_nick_name']))) {
$parsed_item['owner_id'] = $user['id'];
}
// transcode creator id
$parsed_item['create_id'] = Surfer::get_id();
if (isset($parsed_item['create_nick_name']) && ($user = Users::get($parsed_item['create_nick_name']))) {
$parsed_item['create_id'] = $user['id'];
}
// transcode editor id
$parsed_item['edit_id'] = Surfer::get_id();
if (isset($parsed_item['edit_nick_name']) && ($user = Users::get($parsed_item['edit_nick_name']))) {
$parsed_item['edit_id'] = $user['id'];
}
// bind to given overlay
//.........这里部分代码省略.........
示例11: layout
/**
* list sections
*
* @param resource the SQL result
* @return a string to be displayed
*
* @see layouts/layout.php
**/
function layout($result)
{
global $context;
// we return some text
$text = '';
// empty list
if (!SQL::count($result)) {
return $text;
}
// no hovering label
$href_title = '';
// we build an array for the skin::build_tabs() function
$panels = array();
// process all items in the list
while ($item = SQL::fetch($result)) {
// get the main anchor
$anchor = Anchors::get($item['anchor']);
// get the related overlay, if any
$overlay = Overlay::load($item, 'section:' . $item['id']);
// get the overlay for content of this section, if any
$content_overlay = NULL;
if (isset($item['content_overlay'])) {
$content_overlay = Overlay::bind($item['content_overlay']);
}
// panel content
$text = '';
// insert anchor prefix
if (is_object($anchor)) {
$text .= $anchor->get_prefix();
}
// the introduction text, if any
if (is_object($overlay)) {
$text .= Skin::build_block($overlay->get_text('introduction', $item), 'introduction');
} elseif (isset($item['introduction']) && trim($item['introduction'])) {
$text .= Skin::build_block($item['introduction'], 'introduction');
}
// get text related to the overlay, if any
if (is_object($overlay)) {
$text .= $overlay->get_text('view', $item);
}
// filter description, if necessary
if (is_object($overlay)) {
$description = $overlay->get_text('description', $item);
} else {
$description = $item['description'];
}
// the beautified description, which is the actual page body
if ($description) {
// use adequate label
if (is_object($overlay) && ($label = $overlay->get_label('description'))) {
$text .= Skin::build_block($label, 'title');
}
// beautify the target page
$text .= Skin::build_block($description, 'description', '', $item['options']);
}
// delegate rendering to the overlay, where applicable
if (is_object($content_overlay) && ($overlaid = $content_overlay->render('articles', 'section:' . $item['id'], 1))) {
$text .= $overlaid;
// regular rendering
} elseif (!isset($item['articles_layout']) || $item['articles_layout'] != 'none') {
// select a layout
if (!isset($item['articles_layout']) || !$item['articles_layout']) {
include_once '../articles/layout_articles.php';
$layout = new Layout_articles();
} else {
$layout = Layouts::new_($item['articles_layout'], 'article');
}
// avoid links to this page
if (is_object($layout) && is_callable(array($layout, 'set_variant'))) {
$layout->set_focus('section:' . $item['id']);
}
// the maximum number of articles per page
if (is_object($layout)) {
$items_per_page = $layout->items_per_page();
} else {
$items_per_page = ARTICLES_PER_PAGE;
}
// sort and list articles
$offset = 0;
if (preg_match('/\\barticles_by_([a-z_]+)\\b/i', $item['options'], $matches)) {
$order = $matches[1];
} elseif (is_callable(array($layout, 'items_order'))) {
$order = $layout->items_order();
} else {
$order = 'edition';
}
// create a box
$box = array('top_bar' => array(), 'text' => '', 'bottom_bar' => array());
// the command to post a new page
//if(Articles::allow_creation($item, $anchor)) {
if ($anchor->allows('creation', 'article')) {
Skin::define_img('ARTICLES_ADD_IMG', 'articles/add.gif');
//.........这里部分代码省略.........