diff options
-rwxr-xr-x | boot.php | 2 | ||||
-rw-r--r-- | include/comanche.php | 48 | ||||
-rw-r--r-- | version.inc | 2 |
3 files changed, 50 insertions, 2 deletions
@@ -462,7 +462,7 @@ define ( 'ITEM_UNPUBLISHED', 0x0020); define ( 'ITEM_WEBPAGE', 0x0040); // is a static web page, not a conversational item define ( 'ITEM_DELAYED_PUBLISH', 0x0080); define ( 'ITEM_BUILDBLOCK', 0x0100); // Named thusly to make sure nobody confuses this with ITEM_BLOCKED - +define ( 'ITEM_PDL', 0x0200); // Page Description Language - e.g. Comanche /** * Item Flags */ diff --git a/include/comanche.php b/include/comanche.php new file mode 100644 index 000000000..33e93d2c9 --- /dev/null +++ b/include/comanche.php @@ -0,0 +1,48 @@ +<?php /** @file */ + +require_once('include/security.php'); + +// When editing a webpage - a dropdown is needed to select a page layout +// On submit, the pdl_select value (which is the mid of an item with item_restrict = ITEM_PDL) is stored in +// the webpage's resource_id, with resource_type 'pdl'. + +// Then when displaying a webpage, we can see if it has a pdl attached. If not we'll +// use the default site/page layout. + +// If it has a pdl we'll load it as we know the mid and pass the body through comanche_parser() which will generate the +// page layout from the given description + + +function pdl_selector($uid,$current="") { + + $o = ''; + + // You can use anybody's Comanche layouts on this site that haven't been protected in some way + + $sql_extra = item_permissions_sql($uid); + + // By default order by title (therefore at this time pdl's need a unique title across this system), + // though future work may allow categorisation + // based on taxonomy terms + + $r = q("select title, mid from item where (item_restrict & %d) $sql_extra order by title", + intval(ITEM_PDL) + ); + + $arr = array('channel_id' => $uid, 'current' => $current, 'entries' => $r); + call_hooks('pdl_selector',$arr); + + $entries = $arr['entries']; + $current = $arr['current']; + + $o .= "<select name=\"pdl_select\" id=\"pdl_select\" size=\"1\" >"; + $entries[] = array('title' => t('Default'), 'mid' => ''); + foreach($entries as $selection) { + $selected = (($selection == $current) ? ' selected="selected" ' : ''); + $o .= "<option value=\"{$selection['mid']}\" $selected >{$selection['title']}</option>"; + } + + $o .= '</select>'; + return $o; +} + diff --git a/version.inc b/version.inc index 9f3318c88..6733945d4 100644 --- a/version.inc +++ b/version.inc @@ -1 +1 @@ -2013-08-27.418 +2013-08-28.419 |