本文整理汇总了PHP中PageModel::GetPagesAsOptions方法的典型用法代码示例。如果您正苦于以下问题:PHP PageModel::GetPagesAsOptions方法的具体用法?PHP PageModel::GetPagesAsOptions怎么用?PHP PageModel::GetPagesAsOptions使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PageModel
的用法示例。
在下文中一共展示了PageModel::GetPagesAsOptions方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: create
public function create()
{
$view = $this->getView();
$m = new NavigationModel();
$form = Form::BuildFromModel($m);
$form->set('callsmethod', 'NavigationController::_SaveHandler');
// I only want non-fuzzy pages to display.
//$views = PageModel::GetPagesAsOptions("fuzzy = 0");
$views = PageModel::GetPagesAsOptions();
$view->mastertemplate = 'admin';
$view->title = 'New Navigation Menu';
$view->templatename = '/pages/navigation/create.tpl';
$view->assignVariable('model', $m);
$view->assignVariable('form', $form);
$view->assignVariable('pages', $views);
$view->addControl('Navigation Listings', '/Navigation', 'directory');
}
示例2: link
/**
* Get the rendered HTML template for the advlink plugin.
*
* This needs to be a full controller because it requires some of core+'s functionality to determine pages.
*
* @deprecated v4.1.0
*/
public function link()
{
$view = $this->getView();
// Since this will deal with mainly frontend data, it's doubtful that the admin would want to list admin pages.
$pages = PageModel::GetPagesAsOptions('admin = 0');
// For each page, resolve the url to a full url for this site. Useful because I cannot guarantee correct
// resolution after it goes through tinyMCE's logic.
$pagesresolved = array();
foreach ($pages as $url => $title) {
$pagesresolved[\Core\resolve_link($url)] = $title;
}
$tplname = Template::ResolveFile('pages/tinymce/link.phtml');
$view->overrideTemplate(new Core\Templates\Backends\PHTML());
$view->mastertemplate = false;
$view->templatename = $tplname;
$view->assign('pages', $pagesresolved);
}
示例3: testBug
public function testBug(){
$selectablepage = PageModel::Find(['selectable' => 1], null);
$notselectablepage = PageModel::Find(['selectable' => 0], null);
// Both of these should return an array!
$this->assertNotEmpty($selectablepage);
$this->assertNotEmpty($notselectablepage);
// And this needs to be an array too.
$pagearray = PageModel::GetPagesAsOptions();
$this->assertNotEmpty($pagearray);
// Run through each selectable page and make sure that it displays in the list.
foreach($selectablepage as $page){
$this->assertInstanceOf('PageModel', $page);
$this->assertArrayHasKey($page->get('baseurl'), $pagearray);
}
foreach($notselectablepage as $page){
$this->assertInstanceOf('PageModel', $page);
$this->assertArrayNotHasKey($page->get('baseurl'), $pagearray);
}
}
示例4: __construct
public function __construct($atts = null) {
error_log(__CLASS__ . ' is candidate for immediate removal, please change this code!', E_USER_DEPRECATED);
// Defaults
$this->_attributes['name'] = 'page';
if ($atts instanceof PageModel) {
parent::__construct(array('name' => 'page'));
$page = $atts;
}
else {
if(isset($atts['model']) && $atts['model'] instanceof PageModel){
// Everything is based off the page.
$page = $atts['model'];
unset($atts['model']);
parent::__construct($atts);
}
else{
parent::__construct($atts);
// BaseURL needs to be set for this to work.
//if(!$this->get('baseurl')) return null;
// Everything is based off the page.
$page = new PageModel($this->get('baseurl'));
}
}
$this->_attributes['baseurl'] = $page->get('baseurl');
$name = $this->_attributes['name'];
// I need to get a list of pages to offer as a dropdown for selecting the "parent" page.
$f = new ModelFactory('PageModel');
if ($this->get('baseurl')) $f->where('baseurl != ' . $this->get('baseurl'));
$opts = PageModel::GetPagesAsOptions($f, '-- No Parent Page --');
$this->addElement(
'pageparentselect',
array(
'name' => $name . "[parenturl]",
'title' => 'Parent Page',
'value' => strtolower($page->get('parenturl')),
'options' => $opts
)
);
// Title
$this->addElement(
'text', array(
'name' => $name . "[title]",
'title' => 'Title',
'value' => $page->get('title'),
'description' => 'Every page needs a title to accompany it, this should be short but meaningful.',
'required' => true
)
);
// Rewrite url.
$this->addElement(
'pagerewriteurl', array(
'name' => $name . "[rewriteurl]",
'title' => 'Page URL',
'value' => $page->get('rewriteurl'),
'description' => 'Starts with a "/", omit ' . ROOT_URL,
'required' => true
)
);
$this->addElement(
'access', array(
'name' => $name . "[access]",
'title' => 'Access Permissions',
'value' => $page->get('access')
)
);
$this->addElement(
'pagemetas',
array(
'name' => $name . '_meta',
'model' => $page,
)
);
// Give me all the skins available on the current theme.
$skins = array('' => '-- Site Default Skin --');
foreach(ThemeHandler::GetTheme(null)->getSkins() as $s){
$n = ($s['title']) ? $s['title'] : $s['file'];
if($s['default']) $n .= ' (default)';
$skins[$s['file']] = $n;
}
if(sizeof($skins) > 2){
$this->addElement(
'select', array(
'name' => $name . "[theme_template]",
'title' => 'Theme Skin',
'value' => $page->get('theme_template'),
'options' => $skins
//.........这里部分代码省略.........
示例5: pages
//.........这里部分代码省略.........
$table = new Core\ListingTable\Table();
$table->setLimit(20);
// Set the model that this table will be pulling data from.
$table->setModelName('PageModel');
// Gimme filters!
$table->addFilter(
'text',
[
'name' => 'title',
'title' => t('STRING_TITLE'),
'link' => FilterForm::LINK_TYPE_CONTAINS,
]
);
$table->addFilter(
'text',
[
'name' => 'rewriteurl',
'title' => t('STRING_URL'),
'link' => FilterForm::LINK_TYPE_CONTAINS,
]
);
$table->addFilter(
'text',
[
'name' => 'parenturl',
'title' => t('STRING_PARENT_URL'),
'link' => FilterForm::LINK_TYPE_STARTSWITH,
]
);
$table->addFilter(
'select',
[
'name' => 'component',
'title' => t('STRING_COMPONENT'),
'options' => $componentopts,
'link' => FilterForm::LINK_TYPE_STANDARD,
]
);
$table->addFilter(
'select',
[
'name' => 'page_types',
'title' => t('STRING_INCLUDE_ADMIN_PAGES'),
'options' => ['all' => t('STRING_VIEW_ALL_PAGES'), 'no_admin' => t('STRING_EXCLUDE_ADMIN_PAGES')],
'value' => 'no_admin',
]
);
// Add in all the columns for this listing table.
if(Core::IsComponentAvailable('multisite') && MultiSiteHelper::IsEnabled() && \Core\user()->checkAccess('g:admin')){
$table->addColumn('Site', 'site', false);
$ms = true;
}
else{
$ms = false;
}
$table->addColumn(t('STRING_TITLE'), 'title');
$table->addColumn(t('STRING_URL'), 'rewriteurl');
$table->addColumn(t('STRING_VIEWS'), 'pageviews', false);
$table->addColumn(t('STRING_SCORE'), 'popularity');
$table->addColumn(t('STRING_CACHE'), 'expires');
$table->addColumn(t('STRING_CREATED'), 'created', false);
$table->addColumn(t('STRING_LAST_UPDATED'), 'updated', false);
$table->addColumn(t('STRING_STATUS'));
$table->addColumn(t('STRING_PUBLISHED'), 'published');
$table->addColumn(t('STRING_EXPIRES'), 'published_expires');
$table->addColumn(t('STRING_SEO_TITLE'));
$table->addColumn(t('STRING_SEO_DESCRIPTION'), null, false);
$table->addColumn(t('STRING_ACCESS'), 'access');
$table->addColumn(t('STRING_COMPONENT'), 'component', false);
// This page will also feature a quick-edit feature.
//$table->setEditFormCaller('AdminController::PagesSave');
$table->loadFiltersFromRequest();
if($table->getFilterValue('page_types') == 'no_admin'){
$table->getModelFactory()->where('admin = 0');
$table->getModelFactory()->where('selectable = 1');
}
$view->title = 't:STRING_ALL_PAGES';
//$view->assign('filters', $filters);
//$view->assign('listings', $listings);
$view->assign('links', $links);
$view->assign('multisite', $ms);
$view->assign('listing', $table);
$view->assign('page_opts', PageModel::GetPagesAsOptions(false, '-- Select Parent URL --'));
$view->assign('expire_opts', $pageschema['expires']['form']['options']);
}
示例6: IncludeTinyMCE
public static function IncludeTinyMCE()
{
\ComponentHandler::LoadScriptLibrary('jquery');
/** @var \View $view */
$view = \Core\view();
/** @var \UserModel $user */
$user = \Core\user();
// I need to include both versions of TinyMCE so that
// 1) the tinymce object is visible in the global scope at the time of execution and
// 2) so I can target all inputs by their class name instead of the ID.
$view->addScript('js/tinymce/tinymce.min.js');
$view->addScript('js/tinymce/jquery.tinymce.min.js');
$view->addStylesheet('css/tinymce/overrides.css');
// Yes, the string needs quotes inside of quotes! It's to be read by javascript after all.
$browsable = \Core::IsComponentAvailable('media-manager') && $user->checkAccess('p:/mediamanager/browse');
$filebrowsercallback = $browsable ? "Core.TinyMCE.FileBrowserCallback" : 'null';
$loc = \Core\resolve_asset('js/tinymce/tinymce.min.js');
$content = \Core\resolve_asset('css/tinymce/content.css');
$pages = \PageModel::GetPagesAsOptions();
$links = [];
foreach ($pages as $url => $title) {
// Trim off the "(...)" at the end of the title.
// Core adds that as a benefit for knowing
$links[] = ['title' => html_entity_decode(preg_replace('/(.*) \\([^\\)]*\\)/', '$1', $title)), 'value' => \Core\resolve_link($url)];
}
// And json the data.
$links = json_encode($links);
// Create the list of plugins
// Start with standard and tack on any custom ones.
$plugins = ['advlist', 'anchor', 'autolink', 'charmap', 'code', 'colorpicker', 'contextmenu', 'fullscreen', 'hr', 'image', 'imagetools', 'insertdatetime', 'link', 'lists', 'media', 'pagebreak', 'paste', 'preview', 'searchreplace', 'table', 'textcolor', 'visualblocks', 'visualchars', 'wordcount'];
$customIncludes = '';
foreach (self::$CustomPlugins as $name => $src) {
// The "-" is required to inform TinyMCE not to load the plugin again.
// It'll be loaded manually via the .load() method as it has a custom URL.
$plugins[] = '-' . $name;
// Resolve this src to an absolute URL
$src = \Core\resolve_asset($src);
$customIncludes .= 'tinymce.PluginManager.load("' . $name . '", "' . $src . '");';
}
// And make them something that javascript can understand.
$plugins = json_encode($plugins);
$script = <<<EOD
<script type="text/javascript">
\tCore.TinyMCEDefaults = {
\t\t// Location of TinyMCE script
\t\tscript_url : '{$loc}',
\t\t// General options
\t\tplugins: {$plugins},
\t toolbar: "undo redo | styleselect | forecolor backcolor bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image",
\t\ttheme : "modern",
\t\t// Required to not mungle links.
\t\tconvert_urls: false,
\t\t// Requires to support <script/> tags.
\t\textended_valid_elements : "script[language|type|src]",
\t\t// Core Media Manager integration
\t\tfile_browser_callback: {$filebrowsercallback},
\t\t// Example content CSS (should be your site CSS)
\t\tcontent_css : "{$content}",
\t\t// Drop lists for link/image/media/template dialogs
\t\t//template_external_list_url : "lists/template_list.js",
\t\t//external_link_list_url : "lists/link_list.js",
\t\t//external_image_list_url : "lists/image_list.js",
\t\t//media_external_list_url : "lists/media_list.js",
\t\t link_list: {$links},
\t\t// Replace values for the template plugin
\t\t//template_replace_values : {
\t\t//\tusername : "Some User",
\t\t//\tstaffid : "991234"
\t\t//}
\t\t__dummy: null
\t};
\t\$(function(){
\t\t{$customIncludes}
\t\t\$('textarea.tinymce').tinymce(Core.TinyMCEDefaults);
\t});
</script>\t
EOD;
// Add the necessary script
$view->addScript('assets/js/tinymce/coreplus_functions.js', 'head');
$view->addScript($script, 'foot');
// IMPORTANT! Tells the script that the include succeeded!
return true;
}