本文整理汇总了PHP中Floxim\Floxim\System\Fx::getComponentFullName方法的典型用法代码示例。如果您正苦于以下问题:PHP Fx::getComponentFullName方法的具体用法?PHP Fx::getComponentFullName怎么用?PHP Fx::getComponentFullName使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Floxim\Floxim\System\Fx
的用法示例。
在下文中一共展示了Fx::getComponentFullName方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: isInstanceof
public function isInstanceof($type)
{
$type = fx::getComponentFullName($type);
if ($this['type'] == $type) {
return true;
}
$chain = $this->getComponent()->getChain();
foreach ($chain as $com) {
if ($com['keyword'] == $type) {
return true;
}
}
return false;
}
示例2: import
public static function import($tpl_name)
{
$is_aliased = preg_match("~^\\@(.+)~", $tpl_name, $real_name);
if ($is_aliased) {
$tpl_name = $real_name[1];
} else {
$tpl_name = fx::getComponentFullName($tpl_name);
}
if (isset(self::$imported_classes[$tpl_name])) {
return self::$imported_classes[$tpl_name];
}
$processor = new self();
$processor->setTemplateName($tpl_name);
if ($is_aliased) {
$processor->isAliased(true);
}
$classname = $processor->getCompiledClassName();
$processor->addDefaultSourceDirs();
try {
$processor->process();
} catch (\Exception $e) {
self::$imported_classes[$tpl_name] = false;
return false;
}
self::$imported_classes[$tpl_name] = $classname;
$classname::init();
return $classname;
}
示例3: isAvailableOnPage
public function isAvailableOnPage($page)
{
if ($this['site_id'] != $page['site_id']) {
return;
}
if ($page->hasVirtualPath()) {
$ids = $page->getPath()->getValues('id');
} else {
$ids = $page->getParentIds();
}
$ids[] = $page['id'];
$ids[] = 0;
// root
if (!in_array($this['page_id'], $ids)) {
return false;
}
// if page_id=0 blunt - all pages, ignored by the filter scope.pages
if ($this['page_id'] != 0) {
// scope - "this page only"
if (fx::dig($this, 'scope.pages') == 'this' && $this['page_id'] != $page['id']) {
return false;
}
// scope - "this level, and we look parent
if (fx::dig($this, 'scope.pages') == 'children' && $this['page_id'] == $page['id']) {
return false;
}
}
// check for compliance with the filter type page
$scope_page_type = fx::dig($this, 'scope.page_type');
if ($scope_page_type && fx::getComponentFullName($scope_page_type) != fx::getComponentFullName($page['type'])) {
return false;
}
return true;
}
示例4: getTemplateProps
protected function getTemplateProps(Token $token)
{
$tpl_props = array();
$com_name = $this->template_set_name;
$tpl_id = $token->getProp('id');
if (preg_match("~#(.+)\$~", $tpl_id, $tpl_tags)) {
$tpl_id = preg_replace("~#.+\$~", '', $tpl_id);
$tags = preg_split("~\\,\\s*~", $tpl_tags[1]);
if (count($tags) > 0) {
$tpl_props['tags'] = $tags;
}
}
if (preg_match("~(^.+?)\\:(.+)~", $tpl_id, $id_parts)) {
$external_com_name = $id_parts[1];
$own_name = $id_parts[2];
if ($external_com_name == $com_name) {
$tpl_id = $own_name;
} else {
$tpl_props['overrides'] = $tpl_id;
$tpl_id = str_replace(".", '_', $external_com_name) . '__' . $own_name;
}
}
$tpl_props['id'] = $tpl_id;
$tpl_props['file'] = fx::path()->http($this->current_source_file);
$tpl_props['is_imported'] = $this->current_source_is_imported;
$i_level = $this->current_source_import_level;
$tpl_props['import_level'] = $i_level;
if ($this->current_source_is_imported) {
if (!isset($tpl_props['tags']) || !$tpl_props['tags']) {
$tpl_props['tags'] = array();
}
$tpl_props['tags'][] = 'imported' . ($i_level > 0 ? $i_level : '');
}
if ($offset = $token->getProp('offset')) {
$tpl_props['offset'] = $offset;
}
if ($size = $token->getProp('size')) {
$tpl_props['size'] = $size;
}
if ($suit = $token->getProp('suit')) {
$tpl_props['suit'] = $suit;
}
if ($area_id = $token->getProp('area')) {
$tpl_props['area'] = $area_id;
}
if (!($name = $token->getProp('name'))) {
$name = $token->getProp('id');
}
$tpl_props['full_id'] = $com_name . ':' . $tpl_props['id'];
$of = $token->getProp('of');
// todo: psr0 need fix
$of_map = array('menu' => 'section:list', 'wrapper' => 'floxim.layout.wrapper:show', 'blockset' => 'blockset:show', 'grid' => 'grid:show', 'block' => 'block:show');
$of_priority = array();
if ($of and $of != 'false') {
// $of is array when copied to {preset} from the extended template
if (!is_array($of)) {
$of_parts = explode(',', $of);
array_walk($of_parts, function (&$v) {
$v = trim($v);
});
foreach ($of_parts as $key => $value) {
$value_parts = explode('#', $value);
if (count($value_parts) === 1) {
$value_prior = 1;
} else {
$value = $value_parts[0];
$value_prior = (int) $value_parts[1];
}
if (isset($of_map[$value])) {
$value = $of_map[$value];
}
$c_of = explode(":", $value);
// no component, e.g. fx:of="list"
if (count($c_of) === 1) {
$of_parts[$key] = fx::getComponentFullName($com_name) . ':' . $value;
} else {
$of_parts[$key] = fx::getComponentFullName($c_of[0]) . ':' . $c_of[1];
}
$of_priority[$of_parts[$key]] = $value_prior;
}
$of = join(',', $of_parts);
} else {
$of_priority = $of;
}
} else {
$of = array();
}
$tpl_props += array('name' => $name, 'of' => $of_priority, 'is_preset_of' => $token->getProp('is_preset_of'), 'replace_original' => $token->getProp('replace_original'), 'is_abstract' => $token->getProp('is_abstract'), '_token' => $token);
return $tpl_props;
}