예제 #1
0
    function _link()
    {
        // display a button that pops up the boxchooser app
        static $included = false;
        if (!$included) {
            page_add_script(site_prefix() . '/js/dialog.js');
            page_add_script(loader_box('boxchooser/js', $this));
            $included = true;
        }
        return template_simple('
			<script language="javascript" type="text/javascript">

				function boxchooser_{name}_handler () {
					if (typeof dialogWin.returnedValue == \'object\') {
						url = dialogWin.returnedValue[\'src\'];
					} else {
						url = dialogWin.returnedValue;
					}
					boxchooser_{name}_form.elements[boxchooser_{name}_element].value = unescape (url);
				}

			</script>

			<input type="submit" onclick="boxchooser_{name}_get_file (this.form, \'{name}\'); return false" value="{intl Choose}" />
		', $this);
    }
예제 #2
0
 /**
  * Triggers the services for the specified $transition.  Can be called
  * as a static method.  Returns a string of the concatenated output
  * from all of the services.
  *
  * @access public
  * @param string
  * @param array hash
  * @return string
  *
  */
 function trigger($transition = 'global', $data = array())
 {
     if (@file_exists('inc/app/cms/conf/services/' . $transition . '.php')) {
         $services = ini_parse('inc/app/cms/conf/services/' . $transition . '.php');
         if (!is_array($services)) {
             $services = array();
         }
     } else {
         $services = array();
     }
     if ($transition != 'global' && $transition != 'error' && @file_exists('inc/app/cms/conf/services/global.php')) {
         $s2 = ini_parse('inc/app/cms/conf/services/global.php');
         if (is_array($s2)) {
             $services = array_merge($services, $s2);
         }
     }
     $out = '';
     $data['transition'] = $transition;
     foreach ($services as $service => $info) {
         if (strpos($info['handler'], 'box:') === 0) {
             $out .= loader_box(trim(substr($info['handler'], 4)), $data, 'service');
         } elseif (strpos($info['handler'], 'form:') === 0) {
             $out .= loader_form(trim(substr($info['handler'], 5)), 'service');
         }
     }
     return $out;
 }
예제 #3
0
 function onSubmit($vals)
 {
     loader_import('cms.Versioning.Rex');
     $collection = $vals['collection'];
     unset($vals['collection']);
     if (empty($collection)) {
         $collection = 'sitellite_page';
     }
     $return = $vals['_return'];
     unset($vals['_return']);
     $changelog = $vals['changelog'];
     unset($vals['changelog']);
     $rex = new Rex($collection);
     //$vals['sitellite_owner'] = session_username ();
     //$vals['sitellite_team'] = session_team ();
     unset($vals['submit_button']);
     unset($vals['tab1']);
     unset($vals['tab2']);
     unset($vals['tab3']);
     unset($vals['tab-end']);
     unset($vals['header_properties']);
     unset($vals['header_contact']);
     unset($vals['header_loc']);
     if ($vals['contact_url'] == 'http://') {
         $vals['contact_url'] = '';
     }
     if ($vals['loc_map'] == 'http://') {
         $vals['loc_map'] = '';
     }
     $res = $rex->create($vals, $changelog);
     if (isset($vals[$rex->key])) {
         $key = $vals[$rex->key];
     } elseif (!is_bool($res)) {
         $key = $res;
     } else {
         $key = 'Unknown';
     }
     if (!$res) {
         if (!$return) {
             $return = site_prefix() . '/index/cms-browse-action?collection=siteevent_event';
         }
         echo loader_box('cms/error', array('message' => $rex->error, 'collection' => $collection, 'key' => $key, 'action' => $method, 'data' => $vals, 'changelog' => $changelog, 'return' => $return));
     } else {
         loader_import('cms.Workflow');
         echo Workflow::trigger('add', array('collection' => $collection, 'key' => $key, 'data' => $vals, 'changelog' => intl_get('Item added.'), 'message' => 'Collection: ' . $collection . ', Item: ' . $key));
         session_set('sitellite_alert', intl_get('Your item has been created.'));
         if ($return) {
             header('Location: ' . $return);
             exit;
         }
     }
     header('Location: ' . site_prefix() . '/index/siteevent-app/id.' . $res);
     exit;
 }
예제 #4
0
 function onSubmit($vals)
 {
     page_add_script(site_prefix() . '/js/dialog.js');
     page_add_script(loader_box('boxchooser/js', $vals));
     echo '<script language="javascript" type="text/javascript">';
     echo 'boxchooser_' . $vals['name'] . '_select ("' . $vals['app'] . '/' . $vals['box'];
     $pre = '?';
     foreach ($this->_box_settings as $k => $v) {
         echo $pre . $k . '=' . urlencode($vals[$k]);
         $pre = '&';
     }
     echo '"); window.close (); </script>';
     //info ($vals);
 }
예제 #5
0
 function onSubmit($vals)
 {
     loader_import('cms.Versioning.Rex');
     $collection = $vals['collection'];
     unset($vals['collection']);
     if (empty($collection)) {
         $collection = 'sitellite_page';
     }
     $return = $vals['_return'];
     unset($vals['_return']);
     $changelog = $vals['changelog'];
     unset($vals['changelog']);
     $rex = new Rex($collection);
     //$vals['sitellite_owner'] = session_username ();
     //$vals['sitellite_team'] = session_team ();
     unset($vals['submit_button']);
     unset($vals['edit-top']);
     unset($vals['edit-middle']);
     unset($vals['edit-middle2']);
     unset($vals['edit-middle3']);
     unset($vals['edit-bottom']);
     unset($vals['cover_heading']);
     $vals['ts'] = date('YmdHis');
     $res = $rex->create($vals, $changelog);
     if (isset($vals[$rex->key])) {
         $key = $vals[$rex->key];
     } elseif (!is_bool($res)) {
         $key = $res;
     } else {
         $key = 'Unknown';
     }
     if (!$res) {
         if (!empty($return)) {
             $return = site_prefix() . '/index/cms-browse-action?collection=sitepresenter_presentation';
         }
         echo loader_box('cms/error', array('message' => $rex->error, 'collection' => $collection, 'key' => $key, 'action' => $method, 'data' => $vals, 'changelog' => $changelog, 'return' => $return));
     } else {
         loader_import('cms.Workflow');
         echo Workflow::trigger('add', array('collection' => $collection, 'key' => $key, 'data' => $vals, 'changelog' => intl_get('Item added.'), 'message' => 'Collection: ' . $collection . ', Item: ' . $key));
         session_set('sitellite_alert', intl_get('Your item has been created.'));
         //if ($return) {
         //	header ('Location: ' . $return);
         //	exit;
         //}
         header('Location: ' . site_prefix() . '/index/sitepresenter-slides-action/id.' . $res);
         exit;
     }
 }
예제 #6
0
 function onSubmit($vals)
 {
     loader_import('cms.Versioning.Rex');
     $rex = new Rex('siteglossary_term');
     $collection = $vals['collection'];
     unset($vals['collection']);
     if (empty($collection)) {
         $collection = 'sitellite_page';
     }
     $return = $vals['_return'];
     unset($vals['_return']);
     $changelog = $vals['changelog'];
     unset($vals['changelog']);
     unset($vals['section']);
     unset($vals['submit_button']);
     $res = $rex->create($vals, $changelog);
     if (isset($vals[$rex->key])) {
         $key = $vals[$rex->key];
     } elseif (!is_bool($res)) {
         $key = $res;
     } else {
         $key = 'Unknown';
     }
     if (!$res) {
         if (!$return) {
             $return = site_prefix() . '/index/siteglossary-app';
         }
         echo loader_box('cms/error', array('message' => $rex->error, 'collection' => $collection, 'key' => $key, 'action' => $method, 'data' => $vals, 'changelog' => $changelog, 'return' => $return));
     } else {
         loader_import('cms.Workflow');
         echo Workflow::trigger('add', array('collection' => $collection, 'key' => $key, 'data' => $vals, 'changelog' => intl_get('Item added.'), 'message' => 'Collection: ' . $collection . ', Item: ' . $key));
         session_set('sitellite_alert', intl_get('Your item has been created.'));
         if ($return) {
             header('Location: ' . $return);
             exit;
         }
     }
     header('Location: ' . site_prefix() . '/index/siteglossary-app#' . $vals['word']);
     exit;
 }
예제 #7
0
 function onSubmit($vals)
 {
     loader_import('cms.Versioning.Rex');
     $rex = new Rex('siteglossary_term');
     $collection = $vals['_collection'];
     unset($vals['_collection']);
     if (empty($collection)) {
         $collection = 'sitellite_page';
     }
     $key = $vals['_key'];
     unset($vals['_key']);
     $return = $vals['_return'];
     unset($vals['_return']);
     $changelog = $vals['changelog'];
     unset($vals['changelog']);
     unset($vals['section']);
     unset($vals['submit_button']);
     $method = $rex->determineAction($key);
     if (!$method) {
         die($rex->error);
     }
     $res = $rex->{$method}($key, $vals, $changelog);
     if (!$res) {
         if (empty($return)) {
             $return = site_prefix() . '/index/siteglossary-app#' . $vals['word'];
         }
         echo loader_box('cms/error', array('message' => $rex->error, 'collection' => $collection, 'key' => $key, 'action' => $method, 'data' => $vals, 'changelog' => $changelog, 'return' => $return));
     } else {
         loader_import('cms.Workflow');
         echo Workflow::trigger('edit', array('collection' => $collection, 'key' => $key, 'action' => $method, 'data' => $vals, 'changelog' => $changelog, 'message' => 'Collection: ' . $collection . ', Item: ' . $key));
         session_set('sitellite_alert', intl_get('Your item has been saved.'));
         if ($return) {
             header('Location: ' . $return);
             exit;
         }
     }
     header('Location: ' . site_prefix() . '/index/siteglossary-app#' . $vals['word']);
     exit;
 }
예제 #8
0
 function onSubmit($vals)
 {
     loader_import('cms.Versioning.Rex');
     $collection = $vals['_collection'];
     unset($vals['_collection']);
     if (empty($collection)) {
         $collection = 'sitellite_page';
     }
     $rex = new Rex($collection);
     // default: database, database
     unset($vals['submit_button']);
     $key = $vals['_key'];
     unset($vals['_key']);
     $return = $vals['_return'];
     unset($vals['_return']);
     $changelog = $vals['changelog'];
     unset($vals['changelog']);
     foreach ($vals as $k => $v) {
         if ($this->widgets[$k]->ignoreEmpty && empty($v)) {
             unset($vals[$k]);
         }
     }
     if (strpos($rex->key, ',') !== false) {
         $pkeys = preg_split('/, ?/', $rex->key);
         $pvals = explode('|', $key);
         $key = array();
         for ($i = 0; $i < count($pkeys); $i++) {
             $key[$pkeys[$i]] = $pvals[$i];
         }
     }
     $method = $rex->determineAction($key, $vals['sitellite_status']);
     if (!$method) {
         die($rex->error);
     }
     $res = $rex->{$method}($key, $vals, $changelog);
     if (!$res) {
         if (empty($return)) {
             $return = site_prefix() . '/index/cms-browse-action?collection=' . urlencode($collection);
         }
         echo loader_box('cms/error', array('message' => $rex->error, 'collection' => $collection, 'key' => $key, 'action' => $method, 'data' => $vals, 'changelog' => $changelog, 'return' => $return));
     } else {
         loader_import('cms.Workflow');
         echo Workflow::trigger('edit', array('collection' => $collection, 'key' => $key, 'action' => $method, 'data' => $vals, 'changelog' => $changelog, 'message' => 'Collection: ' . $collection . ', Item: ' . $key));
         session_set('sitellite_alert', intl_get('Your item has been saved.'));
         if (!empty($return)) {
             header('Location: ' . $return);
             exit;
         }
         if ($collection == 'sitellite_page') {
             header('Location: ' . site_prefix() . '/index/' . $key);
             exit;
         }
         header('Location: ' . site_prefix() . '/index/cms-browse-action?collection=' . urlencode($collection));
         exit;
     }
 }
예제 #9
0
 function onSubmit($vals)
 {
     loader_import('cms.Versioning.Rex');
     $collection = $vals['collection'];
     unset($vals['collection']);
     if (empty($collection)) {
         $collection = 'sitellite_page';
     }
     $return = $vals['_return'];
     unset($vals['_return']);
     $rex = new Rex($collection);
     // default: database, database
     unset($vals['submit_button']);
     foreach ($this->widgets as $k => $w) {
         if ($w->type == 'joiner') {
             unset($vals[$k]);
         }
     }
     $res = $rex->create($vals);
     if (isset($vals[$rex->key]) && $vals[$rex->key] != false) {
         $key = $vals[$rex->key];
     } elseif (!is_bool($res)) {
         $key = $res;
     } else {
         $key = 'Unknown';
     }
     if (!$res) {
         if (!$return) {
             $return = site_prefix() . '/index/cms-browse-action?collection=' . urlencode($collection);
         }
         echo loader_box('cms/error', array('message' => $rex->error, 'collection' => $collection, 'key' => $key, 'action' => $method, 'data' => $vals, 'changelog' => $changelog, 'return' => $return));
     } else {
         foreach ($this->widgets as $k => $w) {
             if ($w->type == 'joiner') {
                 $w->saveSelected($key);
             }
         }
         loader_import('cms.Workflow');
         echo Workflow::trigger('add', array('collection' => $collection, 'key' => $key, 'data' => $vals, 'changelog' => intl_get('Item added.'), 'message' => 'Collection: ' . $collection . ', Item: ' . $key));
         session_set('sitellite_alert', intl_get('Your item has been created.'));
         header('Location: ' . site_prefix() . '/index/cms-browse-action?collection=' . urlencode($collection));
         exit;
     }
 }
예제 #10
0
 function onSubmit($vals)
 {
     loader_import('cms.Versioning.Rex');
     $collection = $vals['_collection'];
     unset($vals['_collection']);
     if (empty($collection)) {
         $collection = 'sitellite_page';
     }
     $key = $vals['_key'];
     unset($vals['_key']);
     $return = $vals['_return'];
     unset($vals['_return']);
     $changelog = $vals['changelog'];
     unset($vals['changelog']);
     if (is_object($vals['file'])) {
         $vals['body'] =& $vals['file'];
         unset($vals['file']);
     } else {
         unset($vals['file']);
     }
     if (!empty($vals['name'])) {
         $vals['name'] = $vals['folder'] . '/' . $vals['name'];
     } elseif ($this->isNewFolder($vals['folder'], $key)) {
         $vals['name'] = $vals['folder'] . '/' . basename($key);
     } elseif (is_object($vals['body'])) {
         $vals['name'] = $vals['folder'] . '/' . $vals['body']->name;
     } else {
         unset($vals['name']);
     }
     if (strpos($vals['name'], '/') === 0) {
         $vals['name'] = substr($vals['name'], 1);
     }
     unset($vals['folder']);
     $rex = new Rex($collection);
     unset($vals['submit_button']);
     unset($vals['tab1']);
     unset($vals['tab2']);
     unset($vals['tab3']);
     unset($vals['tab-end']);
     $method = $rex->determineAction($key, $vals['sitellite_status']);
     if (!$method) {
         die($rex->error);
     }
     $res = $rex->{$method}($key, $vals, $changelog);
     // remove lock when editing is finished
     lock_remove($collection, $key);
     if (!empty($return)) {
         $return = site_prefix() . '/index/cms-browse-action?collection=sitellite_filesystem';
     }
     if (!$res) {
         echo loader_box('cms/error', array('message' => $rex->error, 'collection' => $collection, 'key' => $key, 'action' => $method, 'data' => $vals, 'changelog' => $changelog, 'return' => $return));
     } else {
         loader_import('cms.Workflow');
         echo Workflow::trigger('edit', array('collection' => $collection, 'key' => $key, 'action' => $method, 'data' => $vals, 'changelog' => $changelog, 'message' => 'Collection: ' . $collection . ', Item: ' . $key));
         session_set('sitellite_alert', intl_get('Your item has been saved.'));
         if (!empty($return)) {
             header('Location: ' . $return);
             exit;
         }
         header('Location: ' . site_prefix() . '/index/cms-browse-action?collection=sitellite_filesystem');
         exit;
     }
 }
예제 #11
0
$pg = new Pager($cgi->offset, $limit);
$pg->url = site_current() . '?collection=' . urlencode($cgi->collection);
$res = $rex->getDeleted($limit, $cgi->offset, $acl);
if (!$res) {
    $res = array();
    $rex->total = 0;
}
$pg->total = $rex->total;
$res2 = array();
foreach ($res as $k => $v) {
    $res2[$v->{$rex->key}] = $v;
}
function pretty_date($date)
{
    loader_import('saf.Date');
    return Date::timestamp($date, 'M j, Y - g:ia');
}
$pg->setData($res2);
$pg->update();
//page_title (intl_get ('Browsing') . ': ' . $rex->info['Collection']['display']);
$data['collection_name'] = $rex->info['Collection']['display'];
$data['title_field'] = $rex->info['Collection']['title_field'];
if (!session_allowed('approved', 'w', 'status')) {
    $data['restore'] = false;
} else {
    $data['restore'] = true;
}
echo template_simple(CMS_JS_ALERT_MESSAGE, $GLOBALS['cgi']);
echo loader_box('cms/nav');
template_simple_register('pager', $pg);
echo template_simple('deleted_items.spt', $data);
예제 #12
0
<?php

echo loader_box('siteinvoice/reminder');
예제 #13
0
    if (isset($cgi->username)) {
        echo '<p>' . intl_get('Invalid password.  Please try again.') . '</p>';
    } else {
        echo '<p>' . intl_get('Please enter your username and password to enter.') . '</p>';
    }
    echo template_simple('<form method="post" action="{site/prefix}/index/sitellite-user-login-action">
		<input type="hidden" name="goto" value="upgrade-app" />
		<table cellpadding="5" border="0">
			<tr>
				<td>{intl Username}</td>
				<td><input type="text" name="username" /></td>
			</tr>
			<tr>
				<td>{intl Password}</td>
				<td><input type="password" name="password" /></td>
			</tr>
			<tr>
				<td>&nbsp;</td>
				<td><input type="submit" value="{intl Enter}" /></td>
			</tr>
		</table>
		</form>');
    return;
}
page_title(intl_get('Upgrade Utility'));
if (!isset($parameters['run'])) {
    echo template_simple('index.spt', $parameters);
    return;
}
echo loader_box('upgrade/' . upgrade_box(), $parameters);
예제 #14
0
<?php

loader_import('multilingual.Translation');
loader_import('multilingual.Filters');
global $cgi;
if (!isset($cgi->_lang)) {
    page_title(intl_get('Select Language'));
    echo template_simple('select_lang.spt', multilingual_get_langs());
    return;
}
if (isset($rex->info['Collection']['translate'])) {
    list($call, $name) = explode(':', $rex->info['Collection']['translate']);
    if ($call == 'box') {
        echo loader_box($name);
    } elseif ($call == 'form') {
        echo loader_form($name);
    } else {
        echo loader_form($call);
    }
    return;
} else {
    class MultilingualTranslateForm extends MailForm
    {
        function MultilingualTranslateForm()
        {
            parent::MailForm();
            $this->autosave = true;
            global $page, $cgi, $intl;
            $intl->language = $cgi->_lang;
            $intl->charset = $intl->languages[$intl->language]['charset'];
            $this->extra = 'id="multilingual-translate-form"';
예제 #15
0
<?php

if (!session_admin()) {
    page_title(intl_get('DevNotes - Login'));
    if (isset($parameters['username'])) {
        echo '<p>' . intl_get('Invalid password.  Please try again.') . '</p>';
    } else {
        echo '<p>' . intl_get('Please enter your username and password to enter.') . '</p>';
    }
    echo loader_box('sitellite/user/login', array('goto' => 'devnotes-admin-action'));
    return;
}
loader_import('devnotes.DevNote');
$dn = new DevNote();
// list all apps
page_title('DevNotes - Admin Summary');
$apps = $dn->getApps();
echo template_simple('applist.spt', array('apps' => $apps));
예제 #16
0
    $sep = $parameters['separator'];
    if ($page->id == $item->id) {
        $item->active .= ' id="active"';
        echo template_simple($template, $item);
        $item->id = $page->id;
    } else {
        $item->active = '';
        echo template_simple($template, $item);
    }
    if ($parameters['dropmenus'] == 'yes') {
        // drop menu
        $params = array('top' => $item->id, 'xpos' => $xpos[$count], 'ypos' => $ypos[$count]);
        if (isset($width[$count])) {
            $params['width'] = $width[$count];
        }
        if (isset($parameters['over'])) {
            $params['over'] = $parameters['over'];
        }
        if (isset($parameters['out'])) {
            $params['out'] = $parameters['out'];
        }
        if (isset($parameters['levels'])) {
            $params['levels'] = $parameters['levels'];
        }
        if (isset($parameters['bgcolor'])) {
            $params['bgcolor'] = $parameters['bgcolor'];
        }
        echo loader_box('sitellite/nav/dropmenu', $params);
    }
    $count++;
}
예제 #17
0
    /**
     * Returns the display HTML for this widget.  The optional
     * parameter determines whether or not to automatically display the widget
     * nicely, or whether to simply return the widget (for use in a template).
     * 
     * @access	public
     * @param	boolean	$generate_html
     * @return	string
     * 
     */
    function display($generate_html = 0)
    {
        $_inner = new MF_Widget_pagebrowser('MF_' . $this->name . '_INNER');
        //$_inner->nullable = $this->nullable;
        //$_inner->table = 'sitellite_page';
        //$_inner->primary_key = 'id';
        //$_inner->display_column = 'if(nav_title != "", nav_title, if(title != "", title, id))';
        //$_inner->ref_column = 'below_page';
        //$_inner->self_ref = true;
        //$_inner->addblank = true;
        $_inner->alt = intl_get('Internal');
        $_inner->data_value = $this->data_value_INNER;
        $_extern = new MF_Widget_text('MF_' . $this->name . '_EXTERN');
        $_extern->nullable = $this->nullable;
        $_extern->alt = intl_get('External');
        $_extern->data_value = $this->data_value_EXTERN;
        //$_inner->extra = $this->extra;
        $_extern->extra = $this->extra;
        $_page = new MF_Widget_hidden($this->name);
        if ($generate_html) {
            page_add_script(site_prefix() . '/js/dialog.js');
            page_add_script(loader_box('filechooser/js'));
            $data = $_page->display(0) . "\n";
            $data .= "\t<tr>\n\t\t<td class=\"label\" valign=\"top\"><label for=\"" . $this->name . '" id="' . $this->name . '-label" ' . $this->invalid() . '>' . template_simple($this->label_template, $this, '', true) . "</label></td>\n\t\t<td class=\"field\">" . '<table border="0" cellpadding="2" cellspacing="2"><tr><td>' . intl_get('Internal') . '</td><td>' . $_inner->display(0) . '</td></tr><td>' . intl_get('External') . '</td><td>' . $_extern->display(0);
            $data .= template_simple('
				<script language="javascript" type="text/javascript">

					function filechooser_handler () {
						if (typeof dialogWin.returnedValue == \'object\') {
							url = \'{site/prefix}\' + dialogWin.returnedValue[\'src\'];
						} else {
							url = \'{site/prefix}\' + dialogWin.returnedValue;
						}
						filechooser_form.elements[\'MF_\' + filechooser_element + \'_EXTERN\'].value = url;
					}

					var bookmark_form = false;
					var bookmark_element = false;
					dialogWin.scrollbars = \'yes\';
					dialogWin.resizable = \'yes\';
					function bookmark () {
						openDGDialog (
							\'{site/prefix}/index/xed-bookmarks-action\',
							400,
							300,
							bookmark_handler
						);
					}

					function bookmarks (f, e) {
						bookmark_form = f;
						bookmark_element = e;
						bookmark ();
						return false;
					}

					function bookmark_handler () {
						if (typeof dialogWin.returnedValue == \'object\') {
							url = dialogWin.returnedValue[\'src\'];
						} else {
							url = dialogWin.returnedValue;
						}
						bookmark_form.elements[\'MF_\' + bookmark_element + \'_EXTERN\'].value = url;
					}

				</script>

				<input type="submit" onclick="bookmarks (this.form, \'{name}\'); return false" value="{intl Bookmarks}" />
				<input type="submit" onclick="filechooser_get_file (this.form, \'{name}\'); return false" value="{intl Files}" />
			', $this);
            $data .= '</td></tr></table>' . "</td>\n\t</tr>\n";
        } else {
            $data = $_page->display(0);
            $data .= $_inner->display(0) . '<br />' . $_extern->display(0);
        }
        return $data;
    }
예제 #18
0
    exit;
}
// END KEEPOUT CHECKING
// import any object we need from the global namespace
global $errno, $cgi;
// box logic begins here
$errors = conf('errors');
if (!$errno) {
    $errno = $cgi->code;
}
loader_import('cms.Workflow');
echo Workflow::trigger('error', array('message' => $errno . ' ' . $errors[$errno]['title'] . ': ' . site_current() . ', referrer: ' . $_SERVER['HTTP_REFERER']));
header('HTTP/1.1 ' . $errno . ' ' . $errors[$errno]['title']);
page_title($errors[$errno]['title']);
switch ($errno) {
    case 401:
        echo '<p>' . intl_get('You don\'t have the permission to access the requested page.') . '</p>';
        break;
    case 403:
        echo '<p>' . intl_get('You don\'t have the permission to access the requested page.') . '</p>';
        break;
    case 404:
        echo '<p>' . intl_get('The page you requested could not be found.') . '</p>';
        break;
    case 500:
        echo '<p>' . intl_get('The server has encountered an unknown internal error.') . '</p>';
        break;
}
echo '<p>' . intl_get('Perhaps you might find what you\'re looking for in the list below.') . '</p>';
echo loader_box('sitellite/nav/sitemap');
예제 #19
0
 function onSubmit($vals)
 {
     loader_import('cms.Versioning.Rex');
     $collection = $vals['collection'];
     unset($vals['collection']);
     if (empty($collection)) {
         $collection = 'sitellite_sidebar';
     }
     $return = $vals['_return'];
     unset($vals['_return']);
     $changelog = $vals['changelog'];
     unset($vals['changelog']);
     $rex = new Rex($collection);
     // default: database, database
     //$vals['sitellite_owner'] = session_username ();
     //$vals['sitellite_team'] = session_team ();
     unset($vals['submit_button']);
     unset($vals['tab1']);
     unset($vals['tab2']);
     unset($vals['tab3']);
     unset($vals['tab-end']);
     //unset ($vals['section1']);
     unset($vals['section3']);
     if (!$vals['show_on_pages']) {
         $vals['show_on_pages'] = '';
     }
     $res = $rex->create($vals, $changelog);
     if (isset($vals[$rex->key])) {
         $key = $vals[$rex->key];
     } elseif (!is_bool($res)) {
         $key = $res;
     } else {
         $key = 'Unknown';
     }
     if (!empty($return)) {
         $return = site_prefix() . '/index/cms-browse-action?collection=sitellite_sidebar';
     }
     if (!$res) {
         echo loader_box('cms/error', array('message' => $rex->error, 'collection' => $collection, 'key' => $key, 'action' => $method, 'data' => $vals, 'changelog' => $changelog, 'return' => $return));
     } else {
         loader_import('cms.Workflow');
         echo Workflow::trigger('add', array('collection' => $collection, 'key' => $key, 'data' => $vals, 'changelog' => $changelog, 'message' => 'Collection: ' . $collection . ', Item: ' . $key));
         session_set('sitellite_alert', intl_get('Your item has been created.'));
         if (!empty($return)) {
             header('Location: ' . $return);
             exit;
         }
         header('Location: ' . site_prefix() . '/index/cms-browse-action?collection=sitellite_sidebar');
         exit;
     }
 }
예제 #20
0
 /**
  * Returns the section name of the current page, or false if the page is
  * not in any section.  A section is a page that has its 'is_section'
  * property set to true in $menu, and is set under the 'Properties' tab
  * of the Sitellite web page editor in the field named 'Is This a Section
  * Index?'.  Section pages differ from ordinary pages in that their
  * template setting (also under the 'Properties' tab) will inherit to
  * all child pages, unless those pages explicitly declare their own
  * template.
  *
  * @return string
  */
 function getSection()
 {
     loader_box('sitellite/nav/init');
     global $menu;
     if ($menu->{'items_' . $this->id}->is_section) {
         return $this->id;
     }
     $parent = $this->below_page;
     while (true) {
         if ($menu->{'items_' . $parent}->is_section) {
             return $parent;
         } elseif (is_object($menu->{'items_' . $parent}->parent)) {
             $parent = $menu->{'items_' . $parent}->parent->id;
         } else {
             break;
         }
     }
     return false;
 }
예제 #21
0
파일: XT.php 프로젝트: vojtajina/sitellite
 /**
  * Executes the specified box using the Sitellite box API,
  * which is essentially just an include.  Note: This is now an alias
  * for the loader_box() function.
  * 
  * @access	public
  * @param	string	$name
  * @param	associative array	$parameters
  * @return	string
  * 
  */
 function box($name, $parameters = array())
 {
     if ($this->file) {
         $GLOBALS['_xte'] =& $this->exp;
     }
     $out = loader_box($name, $parameters);
     unset($GLOBALS['_xte']);
     if (empty($out)) {
         return html_marker('Empty Box: ' . $name);
     }
     return html_marker('Box: ' . $name) . $out;
 }
예제 #22
0
 function onSubmit($vals)
 {
     loader_import('cms.Versioning.Rex');
     unset($vals['collection']);
     $return = $vals['_return'];
     unset($vals['_return']);
     $changelog = $vals['changelog'];
     unset($vals['changelog']);
     $vals['body'] =& $vals['file'];
     unset($vals['file']);
     if (!empty($vals['name'])) {
         $vals['name'] = $vals['folder'] . '/' . $vals['name'];
     } else {
         $vals['name'] = $vals['folder'] . '/' . $vals['body']->name;
     }
     if (strpos($vals['name'], '/') === 0) {
         $vals['name'] = substr($vals['name'], 1);
     }
     unset($vals['folder']);
     $rex = new Rex('sitellite_filesystem');
     //$vals['sitellite_owner'] = session_username ();
     //$vals['sitellite_team'] = session_team ();
     unset($vals['submit_button']);
     unset($vals['tab1']);
     unset($vals['tab2']);
     unset($vals['tab3']);
     unset($vals['tab-end']);
     $res = $rex->create($vals, $changelog);
     if (isset($vals[$rex->key])) {
         $key = $vals[$rex->key];
     } elseif (!is_bool($res)) {
         $key = $res;
     } else {
         $key = 'Unknown';
     }
     if (!empty($return)) {
         $return = site_prefix() . '/index/cms-browse-action?collection=sitellite_filesystem';
     }
     if (!$res) {
         echo loader_box('cms/error', array('message' => $rex->error, 'collection' => $collection, 'key' => $key, 'action' => $method, 'data' => $vals, 'changelog' => $changelog, 'return' => $return));
     } else {
         loader_import('cms.Workflow');
         echo Workflow::trigger('add', array('collection' => $collection, 'key' => $key, 'data' => $vals, 'changelog' => $changelog, 'message' => 'Collection: ' . $collection . ', Item: ' . $key));
         session_set('sitellite_alert', intl_get('Your item has been created.'));
         if (!empty($return)) {
             header('Location: ' . $return);
             exit;
         }
         header('Location: ' . site_prefix() . '/index/cms-browse-action?collection=sitellite_filesystem');
         exit;
     }
 }
예제 #23
0
 function onSubmit($vals)
 {
     if ($vals['below_page'] == $vals['id']) {
         $this->invalid_field = 'below_page';
         $this->invalid['below_page'] = intl_getf('You cannot set this page to be a child of itself.');
         return $this->show();
     }
     loader_box('sitellite/nav/init');
     if (menu_is_child_of($vals['below_page'], $vals['id'])) {
         $this->invalid_field = 'below_page';
         $this->invalid['below_page'] = intl_getf('You cannot set this page to be a child of one of its own child pages.');
         return $this->show();
     }
     loader_import('cms.Versioning.Rex');
     $collection = $vals['_collection'];
     unset($vals['_collection']);
     if (empty($collection)) {
         $collection = 'sitellite_page';
     }
     $rex = new Rex($collection);
     // default: database, database
     unset($vals['submit_button']);
     unset($vals['tab1']);
     unset($vals['tab2']);
     unset($vals['tab3']);
     unset($vals['tab-end']);
     unset($vals['section1']);
     unset($vals['section3']);
     $key = $vals['_key'];
     unset($vals['_key']);
     $return = $vals['_return'];
     unset($vals['_return']);
     $changelog = $vals['changelog'];
     unset($vals['changelog']);
     $method = $rex->determineAction($key, $vals['sitellite_status']);
     if (!$method) {
         die($rex->error);
     }
     $res = $rex->{$method}($key, $vals, $changelog);
     // remove lock when editing is finished
     lock_remove($collection, $key);
     if ($key != $vals[$rex->key]) {
         if ($return == site_prefix() . '/index/' . $key || $return == site_prefix() . '/' . $key) {
             $return = '';
         }
     }
     if (!$res) {
         if (empty($return)) {
             $return = site_prefix() . '/index/' . $key;
         }
         echo loader_box('cms/error', array('message' => $rex->error, 'collection' => $collection, 'key' => $key, 'action' => $method, 'data' => $vals, 'changelog' => $changelog, 'return' => $return));
     } else {
         foreach (db_shift_array('select id from sitellite_page where below_page = ?', $key) as $child) {
             $method = $rex->determineAction($key);
             if (!$method) {
                 die($rex->error);
             }
             $rex->{$method}($child, array('below_page' => $vals['id']), 'Updating renamed parent reference');
         }
         loader_import('cms.Workflow');
         echo Workflow::trigger('edit', array('collection' => $collection, 'key' => $key, 'action' => $method, 'data' => $vals, 'changelog' => $changelog, 'message' => 'Collection: ' . $collection . ', Item: ' . $key));
         session_set('sitellite_alert', intl_get('Your item has been saved.'));
         if ($key != $vals[$rex->key]) {
             if ($return == site_prefix() . '/index/' . $key || $return == site_prefix() . '/' . $key) {
                 $return = '';
             }
         }
         if (!empty($return)) {
             header('Location: ' . $return);
             exit;
         }
         header('Location: ' . site_prefix() . '/index/' . $vals[$rex->key]);
         exit;
     }
 }
예제 #24
0
    function _link()
    {
        // display a button that pops up the filechooser app
        static $included = false;
        if (!$included) {
            page_add_script(site_prefix() . '/js/dialog.js');
            page_add_script(loader_box('filechooser/js'));
            $included = true;
        }
        return template_simple('
			<script language="javascript" type="text/javascript">

				function filechooser_handler () {
					if (typeof dialogWin.returnedValue == \'object\') {
						url = \'{site/url}\' + dialogWin.returnedValue[\'src\'];
					} else {
						url = \'{site/url}\' + dialogWin.returnedValue;
					}
					filechooser_form.elements[filechooser_element].value = url;
				}

				function filechooser_view_current (src) {
					if (src.length > 0) {
						filechooser_view (src);
					}
					return false;
				}

			</script>

			{if obj.view_current}
			<input type="submit" onclick="return filechooser_view_current (this.form.elements[\'{name}\'].value)" value="{intl View Current}" />
			{end if}
			<input type="submit" onclick="filechooser_get_file (this.form, \'{name}\'); return false" value="{intl Choose}" />
		', $this);
    }
예제 #25
0
 function onSubmit($vals)
 {
     loader_import('cms.Versioning.Rex');
     $collection = $vals['_collection'];
     unset($vals['_collection']);
     if (empty($collection)) {
         $collection = 'sitellite_page';
     }
     $key = $vals['_key'];
     unset($vals['_key']);
     $return = $vals['_return'];
     unset($vals['_return']);
     $changelog = $vals['changelog'];
     unset($vals['changelog']);
     $rex = new Rex($collection);
     unset($vals['submit_button']);
     unset($vals['edit-top']);
     unset($vals['edit-middle']);
     unset($vals['edit-middle2']);
     unset($vals['edit-middle3']);
     unset($vals['edit-bottom']);
     unset($vals['solution_header']);
     $method = $rex->determineAction($key, $vals['sitellite_status']);
     if (!$method) {
         die($rex->error);
     }
     $res = $rex->{$method}($key, $vals, $changelog);
     // remove lock when editing is finished
     lock_remove($collection, $key);
     if (!$res) {
         if (!empty($return)) {
             $return = site_prefix() . '/index/cms-browse-action?collection=sitestudy_item';
         }
         echo loader_box('cms/error', array('message' => $rex->error, 'collection' => $collection, 'key' => $key, 'action' => $method, 'data' => $vals, 'changelog' => $changelog, 'return' => $return));
     } else {
         loader_import('cms.Workflow');
         echo Workflow::trigger('edit', array('collection' => $collection, 'key' => $key, 'action' => $method, 'data' => $vals, 'changelog' => $changelog, 'message' => 'Collection: ' . $collection . ', Item: ' . $key));
         session_set('sitellite_alert', intl_get('Your item has been saved.'));
         if (!empty($return)) {
             header('Location: ' . $return);
             exit;
         }
         header('Location: ' . site_prefix() . '/index/sitestudy-app/case.' . $key);
         exit;
     }
 }
예제 #26
0
    /**
     * Returns the display HTML for this widget.  The optional
     * parameter determines whether or not to automatically display the widget
     * nicely, or whether to simply return the widget (for use in a template).
     * 
     * @access	public
     * @param	boolean	$generate_html
     * @return	string
     * 
     */
    function display($generate_html = 0)
    {
        $_inner = new MF_Widget_pagebrowser('MF_' . $this->name . '_INNER');
        //$_inner->nullable = $this->nullable;
        //$_inner->table = 'sitellite_page';
        //$_inner->primary_key = 'id';
        //$_inner->display_column = 'if(nav_title != "", nav_title, if(title != "", title, id))';
        //$_inner->ref_column = 'below_page';
        //$_inner->self_ref = true;
        //$_inner->addblank = true;
        $_inner->alt = intl_get('Internal');
        $_inner->data_value = $this->data_value_INNER;
        $_extern = new MF_Widget_text('MF_' . $this->name . '_EXTERN');
        $_extern->nullable = $this->nullable;
        $_extern->alt = intl_get('External');
        $_extern->data_value = $this->data_value_EXTERN;
        $this->extra .= ' size="35"';
        //$_inner->extra = $this->extra;
        $_extern->extra = $this->extra;
        $_page = new MF_Widget_hidden($this->name);
        if ($generate_html) {
            page_add_script(site_prefix() . '/js/dialog.js');
            page_add_script(loader_box('filechooser/js'));
            $data = $_page->display(0) . "\n";
            $data .= "\t<tr>\n\t\t<td class=\"label\" valign=\"top\"><label for=\"" . $this->name . '" id="' . $this->name . '-label" ' . $this->invalid() . '>' . template_simple($this->label_template, $this, '', true) . "</label>&nbsp;&nbsp;</td>\n\t\t<td class=\"field\">" . '<table border="0" cellpadding="2" cellspacing="2"><tr><td valign="top">' . $_inner->display(0) . '</td></tr><td valign="top">' . $_extern->display(0);
            $data .= template_simple('
				<script language="javascript" type="text/javascript">

					function filechooser_handler () {
						if (typeof dialogWin.returnedValue == \'object\') {
							url = \'{site/prefix}\' + dialogWin.returnedValue[\'src\'];
						} else {
							url = \'{site/prefix}\' + dialogWin.returnedValue;
						}
						filechooser_form.elements[\'MF_\' + filechooser_element + \'_EXTERN\'].value = url;
					}

					var bookmark_form = false;
					var bookmark_element = false;
					dialogWin.scrollbars = \'yes\';
					dialogWin.resizable = \'yes\';
					function bookmark () {
						openDGDialog (
							\'{site/prefix}/index/xed-bookmarks-action\',
							400,
							300,
							bookmark_handler
						);
					}

					function bookmarks (f, e) {
						bookmark_form = f;
						bookmark_element = e;
						bookmark ();
						return false;
					}

					function mailto (f, e) {
						v = f.elements[\'MF_\' + e + \'_EXTERN\'].value;
						i = v.indexOf (\'mailto:\', 0);
						if (i >= 0) {
							return false;
						}
						f.elements[\'MF_\' + e + \'_EXTERN\'].value = \'mailto:\' + v;
						return false;
					}

					function bookmark_handler () {
						if (typeof dialogWin.returnedValue == \'object\') {
							url = dialogWin.returnedValue[\'src\'];
						} else {
							url = dialogWin.returnedValue;
						}
						bookmark_form.elements[\'MF_\' + bookmark_element + \'_EXTERN\'].value = url;
					}

					var anchor_form = false;
					var anchor_element = false;
					dialogWin.scrollbars = \'yes\';
					dialogWin.resizable = \'yes\';
					function anchor (anchor_list) {
						params = \'\';
						sep = \'?\';
						for (i = 0; i < anchor_list.length; i++) {
							params += sep + anchor_list[i].name + \'=\' + anchor_list[i].value;
							sep = \'&\';
						}
						openDGDialog (
							\'{site/prefix}/index/xed-anchors-action\' + params,
							400,
							300,
							anchor_handler
						);
					}

					function go_anchors (f, e) {
						anchor_form = f;
						anchor_element = e;
						anchor_list = opener.document.getElementById (f.elements[\'ifname\'].value).xed_get_anchors (f.elements[\'ifname\'].value);
						anchor (anchor_list);
						return false;
					}

					function anchor_handler () {
						if (typeof dialogWin.returnedValue == \'object\') {
							a = dialogWin.returnedValue[\'src\'];
						} else {
							a = dialogWin.returnedValue;
						}
						anchor_form.elements[\'MF_\' + anchor_element + \'_EXTERN\'].value = \'#\' + a;
					}

				</script>

				{if obj.files}&nbsp;<a href="#" onclick="filechooser_get_file (document.forms[0], \'{name}\'); return false"><img src="{site/prefix}/inc/app/cms/pix/icons/files.gif" alt="{intl Files}" title="{intl Files}" border="0" /></a>{end if}
				{if obj.email}&nbsp;<a href="#" onclick="mailto (document.forms[0], \'{name}\'); return false"><img src="{site/prefix}/inc/app/cms/pix/icons/email.gif" alt="{intl Email}" title="{intl Email}" border="0" /></a>{end if}
				{if obj.bookmarks}&nbsp;<a href="#" onclick="bookmarks (document.forms[0], \'{name}\'); return false"><img src="{site/prefix}/inc/app/cms/pix/icons/bookmark-darker.gif" alt="{intl Bookmarks}" title="{intl Bookmarks}" border="0" /></a>{end if}
				{if obj.anchors}&nbsp;<a href="#" onclick="go_anchors (document.forms[0], \'{name}\'); return false"><img src="{site/prefix}/inc/app/cms/pix/icons/anchor.gif" alt="{intl Anchors}" title="{intl Anchors}" border="0" /></a>{end if}
				<!-- input type="submit" onclick="bookmarks (this.form, \'{name}\'); return false" value="{intl Bookmarks}" />
				<input type="submit" onclick="filechooser_get_file (this.form, \'{name}\'); return false" value="{intl Files}" / -->
			', $this);
            $data .= '</td></tr></table>' . "</td>\n\t</tr>\n";
        } else {
            $data = $_page->display(0);
            $data .= $_inner->display(0) . '<br />' . $_extern->display(0);
        }
        return $data;
    }
예제 #27
0
echo loader_box('cms/nav');
echo '<h1>' . intl_get('Tools') . '</h1>';
loader_import('saf.Misc.Alt');
$alt = new Alt('#fff', '#eee');
echo '<p align="center"><table border="0" cellpadding="10" cellspacing="1" width="100%">';
foreach ($list as $link => $name) {
    $count++;
    if ($count == 1) {
        echo '<tr style="background-color: ' . $alt->next() . '">';
    }
    list($short, $extra) = explode('-', $link);
    if (!@file_exists('inc/app/' . $short . '/pix/icon.gif')) {
        $img = site_prefix() . '/inc/app/cms/pix/default_icon.gif';
    } else {
        $img = site_prefix() . '/inc/app/' . $short . '/pix/icon.gif';
    }
    echo '<td align="center" valign="bottom" width="25%"><a href="' . site_prefix() . '/index/' . $link . '"><img src="' . $img . '" alt="" border="0" /><br />' . $name . '</a></td>';
    if ($count == 4) {
        $count = 0;
        echo '</tr>';
    }
}
if ($count > 0) {
    for ($i = $count; $i < 4; $i++) {
        echo '<td width="25%">&nbsp;</td>';
    }
    echo '</tr>';
}
echo '</table></p>';
echo loader_box('cms/admintools/uninstalled');
예제 #28
0
 function _fill($tpl, $obj)
 {
     global $simple_template_register, $simple_template_functions;
     if (empty($tpl)) {
         return '';
     }
     if (isset($this->cache[$tpl])) {
         $use = $this->cache[$tpl];
     } elseif (@is_file($this->getPath() . '/' . $tpl)) {
         $this->cache[$tpl] = @join('', @file($this->getPath() . '/' . $tpl));
         $use = $this->cache[$tpl];
     } else {
         $use = $tpl;
     }
     // Determine Delimiter
     if (preg_match('/^<\\!-- SIMPLE_TEMPLATE_DELIM_([A-Z0-9_]+) -->/', $use, $regs)) {
         $old_delim = $this->use_delim;
         $this->use_delim = constant('SIMPLE_TEMPLATE_DELIM_' . $regs[1]);
         $use = str_replace($regs[0], '', $use);
     }
     // Eval Inline PHP
     ob_start();
     eval(CLOSE_TAG . $use);
     $use = ob_get_contents();
     ob_end_clean();
     //$out = preg_replace ("/" . $this->delim[$this->use_delim][0] . "([a-zA-Z0-9\.:\/_-]+)" . $this->delim[$this->use_delim][1] . "/e", "\$this->determine ('$1', \$obj)", $use);
     $tokens = preg_split('/(' . $this->delim[$this->use_delim][0] . '[\\[\\]\\(\\)a-zA-Z0-9\\.,=<>\\?&#$\'":;\\!\\=\\/\\| _-]+' . $this->delim[$this->use_delim][1] . ')/s', $use, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
     $out = '';
     foreach ($tokens as $tok) {
         $_tok = substr($tok, strlen($this->delim_literal[$this->use_delim][0]), -strlen($this->delim_literal[$this->use_delim][1]));
         if (!empty($_tok) && strpos($tok, $this->delim_literal[$this->use_delim][0]) === 0 && strrpos($tok, $this->delim_literal[$this->use_delim][1]) === strlen($tok) - strlen($this->delim_literal[$this->use_delim][1])) {
             $_is_tag = true;
         } else {
             $_is_tag = false;
         }
         // HANDLE END-LOOP
         if ($this->_ignoreUntilEndLoop) {
             if (strpos($_tok, 'loop ') === 0) {
                 $this->_structCount++;
             } elseif ($_tok == 'end loop' && $this->_structCount > 0) {
                 $this->_structCount--;
                 continue;
             }
             if ($_tok == 'end loop') {
                 $this->_ignoreUntilEndLoop = false;
                 $this->_bufferUntilEndLoop = false;
             }
         } elseif ($this->_bufferUntilEndLoop) {
             if (strpos($_tok, 'loop ') === 0) {
                 $this->_structCount++;
                 $this->_loopBuffer .= $tok;
                 continue;
             } elseif ($_tok == 'end loop' && $this->_structCount > 0) {
                 $this->_structCount--;
                 $this->_loopBuffer .= $tok;
                 continue;
             }
             if ($_tok == 'end loop') {
                 $this->_bufferUntilEndLoop = false;
                 $tmp = isset($simple_template_register['loop']) ? $simple_template_register['loop'] : null;
                 $parent = isset($simple_template_register['parent']) ? $simple_template_register['parent'] : null;
                 $simple_template_register['parent'] = $tmp;
                 $index = 1;
                 $total = count($this->_loopList);
                 foreach ($this->_loopList as $key => $item) {
                     if (in_array($key, array('_properties', '_index', '_key', '_total'), true)) {
                         continue;
                     }
                     $simple_template_register['loop'] = $item;
                     if (is_object($item)) {
                         $simple_template_register['loop']->_properties = get_object_vars($simple_template_register['loop']);
                         $simple_template_register['loop']->_index = $index;
                         $simple_template_register['loop']->_key = $key;
                         $simple_template_register['loop']->_total = $total;
                     } elseif (is_array($item)) {
                         $simple_template_register['loop']['_properties'] = $simple_template_register['loop'];
                         $simple_template_register['loop']['_index'] = $index;
                         $simple_template_register['loop']['_key'] = $key;
                         $simple_template_register['loop']['_total'] = $total;
                     } else {
                         $simple_template_register['loop'] = (object) array('_value' => $item, '_index' => $index, '_key' => $key, '_total' => $total);
                     }
                     $out .= $this->fill($this->_loopBuffer, $obj);
                     $index++;
                 }
                 $simple_template_register['loop'] = $tmp;
                 $simple_template_register['parent'] = $parent;
             } else {
                 $this->_loopBuffer .= $tok;
             }
             // HANDLE END-IF
         } elseif ($this->_ignoreUntilEndIf) {
             if (strpos($_tok, 'if ') === 0) {
                 $this->_structCount++;
             } elseif ($_tok == 'end if' && $this->_structCount > 0) {
                 $this->_structCount--;
                 continue;
             }
             if ($_tok == 'end if') {
                 $this->_ignoreUntilEndIf = false;
             }
             // HANDLE INC AND SPT
         } elseif (strpos($_tok, 'inc ') === 0) {
             // include
             $file = substr($_tok, 4);
             if (@file_exists($this->getPath() . '/' . $file)) {
                 $out .= @join('', @file($this->getPath() . '/' . $file));
                 continue;
             }
             $val = $this->determine($file, $obj);
             if (@file_exists($this->getPath() . '/' . $val)) {
                 $out .= @join('', @file($this->getPath() . '/' . $val));
                 continue;
             } elseif (!empty($val)) {
                 $out .= $val;
                 continue;
             }
             $out .= $file;
             continue;
         } elseif (strpos($_tok, 'spt ') === 0) {
             // include another template
             $file = substr($_tok, 4);
             list($file, $param) = explode(' ', $file);
             if (!empty($param)) {
                 $param = $this->determine($param, $obj);
             } else {
                 $param = $obj;
             }
             if (@file_exists($this->getPath() . '/' . $file)) {
                 $out .= $this->fill(@join('', @file($this->getPath() . '/' . $file)), $param);
                 continue;
             }
             $val = $this->determine($file, $obj);
             if (@file_exists($this->getPath() . '/' . $val)) {
                 $out .= $this->fill(@join('', @file($this->getPath() . '/' . $val)), $param);
                 continue;
             } elseif (!empty($val)) {
                 $out .= $this->fill($val, $param);
                 continue;
             }
             $out .= $this->fill($file, $param);
             continue;
         } elseif ($_is_tag && strpos($_tok, 'form ') === 0) {
             // call loader_form ()
             $form = substr($_tok, 5);
             $out .= loader_form($form);
             continue;
         } elseif ($_is_tag && strpos($_tok, 'box ') === 0) {
             // call loader_box ()
             $box = substr($_tok, 4);
             if (strstr($box, '?')) {
                 $u = parse_url($box);
                 $box = $u['path'];
                 $param = array();
                 foreach (explode('&', $u['query']) as $pair) {
                     list($k, $v) = explode('=', $pair);
                     if ($v[0] == '[' && $v[strlen($v) - 1] == ']') {
                         $v = $this->determine(substr($v, 1, strlen($v) - 2), $obj);
                     }
                     $param[$k] = $v;
                 }
             } else {
                 $param = array();
             }
             $out .= loader_box($box, $param);
             continue;
         } elseif (strpos($_tok, 'info ') === 0) {
             ob_start();
             info($this->determine(substr($_tok, 5), $obj));
             $out .= ob_get_contents();
             ob_end_clean();
         } elseif ($_tok == 'end filter') {
             // return filter to default
             $this->filter = 'htmlentities_compat';
             // STANDARD TAG INTERPRETATION
         } elseif ($_is_tag) {
             if (strpos($_tok, '|') !== false) {
                 $_filters = explode('|', $_tok);
                 $_tok = array_shift($_filters);
                 $_prev_filter = $this->filter;
                 $this->filter = join('/', $_filters);
             }
             if ($this->filter == 'none') {
                 $out .= $this->determine($_tok, $obj);
             } else {
                 if (isset($simple_template_register['loop']) && is_object($simple_template_register['loop'])) {
                     $_name = $simple_template_register['loop']->_key;
                 } elseif (isset($simple_template_register['loop']) && is_array($simple_template_register['loop'])) {
                     $_name = $simple_template_register['loop']['_key'];
                 } else {
                     $_name = false;
                 }
                 $GLOBALS['simple_template_token_name'] = $_name;
                 if (strpos($this->filter, '/') !== false) {
                     $filters = explode('/', $this->filter);
                     $res = $this->determine($_tok, $obj);
                     foreach (array_reverse($filters) as $filter) {
                         $res = @call_user_func($filter, $res);
                     }
                     $out .= $res;
                 } else {
                     $out .= @call_user_func($this->filter, $this->determine($_tok, $obj));
                 }
             }
             if (isset($_filters)) {
                 $this->filter = $_prev_filter;
                 unset($_prev_filter);
                 unset($_filters);
             }
             // IN-BETWEEN TEXT
         } else {
             $out .= $tok;
         }
     }
     // Reset Delimiter
     if (isset($old_delim)) {
         $this->use_delim = $old_delim;
     }
     return $out;
 }
예제 #29
0
<?php

loader_box('sitellite/nav/init');
global $menu, $page;
if ($page->id != 'index') {
    if (!empty($parameters['caption'])) {
        $caption = $parameters['caption'] . ': ';
    } else {
        $caption = '';
    }
    if ($parameters['home_link'] == 'no') {
        $home = false;
    } else {
        $home = true;
    }
    if ($page->below_page && !isset($menu->{'items_' . $page->id})) {
        $menu->addItem($page->id, $page->title, $page->below_page);
        $added = true;
    } else {
        $added = false;
    }
    if ($menu->{'items_' . $page->id}) {
        echo '<p class="breadcrumb">' . '<span class="caption">' . $caption . '</span>' . $menu->trail($page->id, 'nav/breadcrumb/link.spt', $home, ' / ') . '</p>' . NEWLINEx2;
    } elseif (!empty($page->title)) {
        echo '<p class="breadcrumb">' . '<span class="caption">' . $caption . '</span>' . template_simple('nav/breadcrumb/link_home.spt', array('id' => 'index', 'title' => intl_get('Home'))) . ' / ' . $page->title . '</p>' . NEWLINEx2;
    }
    if ($added) {
        unset($menu->{'items_' . $page->id});
    }
}
예제 #30
0
<?php

// BEGIN KEEPOUT CHECKING
// Add these lines to the very top of any file you don't want people to
// be able to access directly.
if (!defined('SAF_VERSION')) {
    header('HTTP/1.1 404 Not Found');
    echo "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">\n" . "<html><head>\n<title>404 Not Found</title>\n</head><body>\n<h1>Not Found</h1>\n" . "The requested URL " . $PHP_SELF . " was not found on this server.<p>\n<hr>\n" . $_SERVER['SERVER_SIGNATURE'] . "</body></html>";
    exit;
}
// END KEEPOUT CHECKING
if (session_valid()) {
    $sidebar = appconf('sidebar');
    if ($sidebar == 'default') {
        echo template_simple('sidebar.spt', $parameters);
    } else {
        list($type, $call) = split(':', $sidebar);
        $func = 'loader_' . $type;
        echo $func(trim($call), array(), $box['context']);
    }
} else {
    echo loader_box('sitemember/login', $parameters);
}