本文整理汇总了PHP中S::doToken方法的典型用法代码示例。如果您正苦于以下问题:PHP S::doToken方法的具体用法?PHP S::doToken怎么用?PHP S::doToken使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类S
的用法示例。
在下文中一共展示了S::doToken方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getSiteURL
/**
* Will get the siteURL, concatenated or not with a pageSuffix, which can be NULL. The method will return the current URL, which
* can be used to determine the current page the client is on. Either you can use this function from inside a child of the
* current one or you can use the {@link URL::rewriteURL} method to retrieve such information.
*
* @return S Will return the current website URL string
* @author Elena Ramona <no_reply@raphpframework.ro>
* @copyright Under the terms of the GNU General Public License v3
* @version $Id: 09_URL.php 313 2009-10-09 13:27:52Z catalin.zamfir $
* @since Version 1.0
* @access protected
* @static
* @final
*/
protected static final function getSiteURL(S $websiteURL = NULL, S $pageSuffix = NULL)
{
// Make a switch ...
switch ($pageSuffix != NULL) {
case TRUE:
$objURL = new S(DOCUMENT_HOST . $pageSuffix . _WS . $websiteURL);
break;
case FALSE:
$pageSuffix = new S(str_replace(DOCUMENT_ROOT, _NONE, $_SERVER['SCRIPT_FILENAME']));
$objURL = new S(DOCUMENT_HOST . $pageSuffix . _WS . $websiteURL);
break;
}
// Do return ...
return REWRITE_ENGINE == TRUE && strpos($_SERVER['REQUEST_URI'], _WS . ADMIN_DIR . _WS) === FALSE ? $objURL->doToken($pageSuffix . _WS, _NONE) : $objURL;
}
示例2: renderForm
/**
* Will render a specified form, the name of the form given by the first parameter;
*
* This method will render one of the forms for our object, invoked by giving the proper form identifier to the current form. We
* have chosen this method of invoking forms, because we just had too many this->renderSomethingMethod (), which really had
* an impact on code massiveness. Also, having code organized in switch/case statements leads us to be able to share common
* settings between different forms, as we've done with the methods defined in the __CALL method above;
*
* For example, if we wanted to share some common configuration between a create and an edit form, we could have introduced
* two switches in this method, one that would have set the common options, and the second, would have just passed through
* again, and get the already set configuration options, using them. This means that if we needed to change behavior of
* some interconnected forms, that would mean modifying the needed code one place only, which is a big advantage over
* having separated methods for each form. Maybe if we extended this object, you guys could understand the functionality better;
*
* @param string $objFormToRender The name of the form to render;
* @return mixed Depends on the rendered form if it returns something or not;
*/
public function renderForm(S $objFormToRender, A $objFormArray = NULL)
{
// Make them defaults ...
if ($objFormArray == NULL) {
$objFormArray = new A();
}
// Do a switch ...
switch ($objFormToRender) {
case 'countryCreate':
// The URL to go back too;
$objURLToGoBack = URL::rewriteURL();
// Do the form, make it happen;
$this->setMethod(new S('POST'))->setFieldset(new S(SETTINGS_ADD_COUNTRY))->setSQLAction(new S('update'))->setTableName(self::$objSettingsCountryTable);
// Make the ISO ...
if ($this->checkPOST()->toBoolean() == TRUE) {
$this->setUpdateId($this->getPOST(self::$objSettingsCountryTableFIso))->setExtraUpdateData(self::$objSettingsCountryTableFName, $this->getPOST(self::$objSettingsCountryTableFPrnt)->toUpper());
}
// Continue;
$this->setUpdateField(self::$objSettingsCountryTableFIso)->setName($objFormToRender)->setRedirect($objURLToGoBack)->setInputType(new S('submit'))->setValue(new S(SETTINGS_ADD_COUNTRY))->setInputInfoMessage($this->getHELP($objFormToRender))->setContainerDiv(new B(TRUE))->setInputType(new S('text'))->setName(self::$objSettingsCountryTableFIso)->setLabel(new S(SETTINGS_COUNTRY_ISO))->setInputType(new S('text'))->setName(self::$objSettingsCountryTableFPrnt)->setLabel(new S(SETTINGS_COUNTRY_NAME))->setInputType(new S('text'))->setName(self::$objSettingsCountryTableFIsoT)->setJSRegExpReplace(new S('[^A-Z]'))->setLabel(new S(SETTINGS_COUNTRY_ISO3))->setInputType(new S('text'))->setName(self::$objSettingsCountryTableFCode)->setJSRegExpReplace(new S('[^0-9]'))->setLabel(new S(SETTINGS_COUNTRY_CODE))->setFormEndAndExecute(new B(TRUE));
break;
case 'countryEdit':
// The URL to go back too;
$objURLToGoBack = URL::rewriteURL(new A(array(ADMIN_ACTION, ADMIN_ACTION_ID)));
// Do the form, make it happen;
$this->setMethod(new S('POST'))->setFieldset(new S(SETTINGS_EDIT_COUNTRY))->setSQLAction(new S('update'))->setTableName(self::$objSettingsCountryTable)->setUpdateId($_GET[ADMIN_ACTION_ID]);
// Set the printable country name;
if ($this->checkPOST()->toBoolean() == TRUE) {
$objCountryName = clone $this->getPOST(self::$objSettingsCountryTableFPrnt);
$this->setExtraUpdateData(self::$objSettingsCountryTableFName, $objCountryName->toUpper());
}
// Continue;
$this->setUpdateField(self::$objSettingsCountryTableFIso)->setName($objFormToRender)->setRedirect($objURLToGoBack)->setInputType(new S('submit'))->setValue(new S(SETTINGS_EDIT_COUNTRY))->setInputInfoMessage($this->getHELP($objFormToRender))->setContainerDiv(new B(TRUE))->setInputType(new S('text'))->setName(self::$objSettingsCountryTableFPrnt)->setLabel(new S(SETTINGS_COUNTRY_NAME))->setInputType(new S('text'))->setName(self::$objSettingsCountryTableFIsoT)->setJSRegExpReplace(new S('[^A-Z]'))->setLabel(new S(SETTINGS_COUNTRY_ISO3))->setInputType(new S('text'))->setName(self::$objSettingsCountryTableFCode)->setJSRegExpReplace(new S('[^0-9]'))->setLabel(new S(SETTINGS_COUNTRY_CODE))->setFormEndAndExecute(new B(TRUE));
break;
case 'countryErase':
// The URL to go back too;
$objURLToGoBack = URL::rewriteURL(new A(array(ADMIN_ACTION, ADMIN_ACTION_ID)));
// Set some requirements;
$objSQLConditionForUsers = new S('WHERE %objAuthUsersTableFCountry = "%cId"');
if (self::$objAuthenticationMech->getUserCount($objSQLConditionForUsers->doToken('%cId', $_GET[ADMIN_ACTION_ID]))->toInt() == 0) {
// Do ERASE;
$this->_Q(_QS('doDELETE')->doToken('%table', self::$objSettingsCountryTable)->doToken('%condition', new S('%objSettingsCountryTableFIso = "%sId"'))->doToken('%sId', $_GET[ADMIN_ACTION_ID]));
// Redirect;
$this->setHeaderKey($objURLToGoBack, new S('Location'));
} else {
// Do me, ERROR;
self::$objAdministration->setErrorMessage(new S(SETTINGS_CANNOT_DELETE_COUNTRY), $objURLToGoBack);
}
break;
case 'errorPageCreate':
// The URL to go back too;
$objURLToGoBack = URL::rewriteURL();
// Check CODE is unique;
if ($this->checkPOST(self::$objSettingsErrTableFCode)->toBoolean() == TRUE) {
if ($this->checkErrorPageCodeIsUnique($this->getPOST(self::$objSettingsErrTableFCode))->toBoolean() == FALSE) {
$this->setErrorOnInput(self::$objSettingsErrTableFCode, new S(SETTINGS_ERROR_CODE_MUST_BE_UNIQUE));
}
}
// Do the form, make it happen;
$this->setMethod(new S('POST'))->setFieldset(new S(SETTINGS_ADD_ERROR_PAGE))->setSQLAction(new S('update'))->setTableName(self::$objSettingsErrTable)->setUpdateId(new S('#nextTableAutoIncrement'))->setUpdateField(self::$objSettingsErrTableFId)->setName($objFormToRender)->setRedirect($objURLToGoBack)->setInputType(new S('submit'))->setValue(new S(SETTINGS_ADD_ERROR_PAGE))->setInputInfoMessage($this->getHELP($objFormToRender))->setContainerDiv(new B(TRUE))->setInputType(new S('text'))->setName(self::$objSettingsErrTableFCode)->setLabel(new S(SETTINGS_ERROR_PAGE_CODE))->setJSRegExpReplace(new S('[^0-9]'))->setContainerDiv(new B(TRUE))->setInputType(new S('text'))->setName(self::$objSettingsErrTableFTitle)->setLabel(new S(SETTINGS_ERROR_PAGE_TITLE))->setContainerDiv(new B(TRUE))->setInputType(new S('textarea'))->setName(self::$objSettingsErrTableFContent)->setLabel(new S(SETTINGS_ERROR_PAGE_CONTENT))->setTinyMCETextarea(new B(TRUE))->setContainerDiv(new B(TRUE))->setFormEndAndExecute(new B(TRUE));
break;
case 'errorPageEdit':
// The URL to go back too;
$objURLToGoBack = URL::rewriteURL(new A(array(ADMIN_ACTION, ADMIN_ACTION_ID)));
// Check CODE is unique;
if ($this->checkPOST(self::$objSettingsErrTableFCode)->toBoolean() == TRUE) {
if ($this->getPOST(self::$objSettingsErrTableFCode) != $this->getErrorPageById($_GET[ADMIN_ACTION_ID], self::$objSettingsErrTableFCode)) {
if ($this->checkErrorPageCodeIsUnique($this->getPOST(self::$objSettingsErrTableFCode))->toBoolean() == FALSE) {
$this->setErrorOnInput(self::$objSettingsErrTableFCode, new S(SETTINGS_ERROR_CODE_MUST_BE_UNIQUE));
}
}
}
// Do the form, make it happen;
$this->setMethod(new S('POST'))->setFieldset(new S(SETTINGS_EDIT_ERROR_PAGE))->setSQLAction(new S('update'))->setTableName(self::$objSettingsErrTable)->setUpdateId($_GET[ADMIN_ACTION_ID])->setUpdateField(self::$objSettingsErrTableFId)->setName($objFormToRender)->setRedirect($objURLToGoBack)->setInputType(new S('submit'))->setValue(new S(SETTINGS_EDIT_ERROR_PAGE))->setInputInfoMessage($this->getHELP($objFormToRender))->setContainerDiv(new B(TRUE))->setInputType(new S('text'))->setName(self::$objSettingsErrTableFCode)->setLabel(new S(SETTINGS_ERROR_PAGE_CODE))->setJSRegExpReplace(new S('[^0-9]'))->setContainerDiv(new B(TRUE))->setInputType(new S('text'))->setName(self::$objSettingsErrTableFTitle)->setLabel(new S(SETTINGS_ERROR_PAGE_TITLE))->setContainerDiv(new B(TRUE))->setInputType(new S('textarea'))->setName(self::$objSettingsErrTableFContent)->setLabel(new S(SETTINGS_ERROR_PAGE_CONTENT))->setTinyMCETextarea(new B(TRUE))->setContainerDiv(new B(TRUE))->setFormEndAndExecute(new B(TRUE));
break;
case 'errorPageErase':
// The URL to go back too;
$objURLToGoBack = URL::rewriteURL(new A(array(ADMIN_ACTION, ADMIN_ACTION_ID)));
// Make the erase, than redirect;
$this->_Q(_QS('doDELETE')->doToken('%table', self::$objSettingsErrTable)->doToken('%condition', new S('%objSettingsErrTableFId = "%sId"'))->doToken('%sId', $_GET[ADMIN_ACTION_ID]));
// Redirect;
$this->setHeaderKey($objURLToGoBack, new S('Location'));
break;
case 'configurationEdit':
//.........这里部分代码省略.........
示例3: getFieldsFromTable
/**
* Will return an array containing field names of the given string table name. This method is used to find out what fields a table
* has so we can use that information for example in the development of our auto-forms. Other uses can also be found easily when
* knowing or not knowing the table structure;
*
* @param S $queryTable The table to query for fields
* @return A An array containing the fields from the table
* @author Catalin Z. Alexandru <catalin.zamfir@raphpframework.ro>
* @copyright Under the terms of the GNU General Public License v3
* @version $Id: 11_SQL.php 313 2009-10-09 13:27:52Z catalin.zamfir $
* @since Version 1.0
* @access protected
* @static
*/
protected static function getFieldsFromTable(S $queryTable)
{
$ex = new R(mysql_list_fields(self::$objSQLD, $queryTable->doToken(SQL_PREFIX, self::$objSQLR)));
$tableFieldColumns = new I(mysql_num_fields($ex->toResource()));
for ($i = 0, $tableFieldArray = new A(); $i < $tableFieldColumns->toInt(); ++$i) {
$tableFieldArray[$i] = new S(mysql_field_name($ex->toResource(), $i));
}
// We already know what it is, return it;
return $tableFieldArray;
}
示例4: renderBackendPage
/**
* Will render a specified form, the name of the form given by the first parameter;
*
* This method will render one of the forms for our object, invoked by giving the proper form identifier to the current form.
* We have chosen this method of invoking forms, because we just had too many this->renderSomethingMethod (), which really had
* an impact on code massiveness. Also, having code organized in switch/case statements leads us to be able to share common
* settings between different forms, as we've done with the methods defined in the __CALL method above;
*
* For example, if we wanted to share some common configuration between a create and an edit form, we could have introduced
* two switches in this method, one that would have set the common options, and the second, would have just passed through
* again, and get the already set configuration options, using them. This means that if we needed to change behavior of
* some interconnected forms, that would mean modifying the needed code one place only, which is a big advantage over
* having separated methods for each form. Maybe if we extended this object, you guys could understand the functionality ...
*
* @param string $objFormToRender The name of the form to render;
* @return mixed Depends on the rendered form if it returns something or not;
*/
public function renderBackendPage(S $objPageToRender)
{
// Get a specific CSS file for this controller ...
TPL::manageCSS(new FilePath($this->getPathToSkinCSS()->toRelativePath() . $objPageToRender . CSS_EXTENSION), $objPageToRender);
// Do pagination ...
if (isset($_GET[ADMIN_PAGINATION])) {
$objLowerLimit = (int) $_GET[ADMIN_PAGINATION]->toString() * 10 - 10;
$objUpperLimit = 10;
} else {
$objLowerLimit = 0;
$objUpperLimit = 10;
}
// Do a switch on the rendered page ...
switch ($objPageToRender) {
case 'welcomePage':
// Set the template file ...
$tpF = new FilePath($this->getPathToSkin()->toRelativePath() . 'welcomePage.tp');
TPL::tpSet(self::$objAdministration->getWidget(NULL), new S('objWidgets'), $tpF);
TPL::tpExe($tpF);
break;
case 'manageUsers':
// Do specific actions, based on _GET parameters;
if (isset($_GET[ADMIN_ACTION])) {
// Switch ...
switch ($_GET[ADMIN_ACTION]) {
case ADMIN_ACTION_EDIT:
$this->renderForm(new S('userEdit'));
break;
case ADMIN_ACTION_ERASE:
$this->renderForm(new S('userErase'));
break;
}
} else {
// Show them ordered by DESC;
if (!isset($_GET[ADMIN_ACTION_SORT])) {
$this->setHeaderKey(URL::rewriteURL(new A(array(ADMIN_ACTION_SORT)), new A(array('DescByRegistered'))), new S('Location'));
}
// Set some requirements;
$objGetCondition = new S();
if (isset($_GET[ADMIN_ACTION_BY])) {
// Do a switch ...
switch ($_GET[ADMIN_ACTION_BY]) {
case AUTHENTICATION_PROFILE_USERNAME:
$objGetCondition->appendString('WHERE %objAuthUsersTableFUName');
break;
case AUTHENTICATION_PROFILE_EMAIL:
$objGetCondition->appendString('WHERE %objAuthUsersTableFEML');
break;
case AUTHENTICATION_PROFILE_GROUP:
$objGetCondition->appendString('AS t1 LEFT JOIN %objAuthGroupTable
AS t2 ON t1.%objAuthUsersTableFUGId = t2.%objAuthGroupTableFId
WHERE t2.%objAuthGroupTableFName');
break;
}
// Add LIKE searching ...
$objGetCondition->appendString(_SP)->appendString('LIKE "%%Search%"')->doToken('%Search', $_GET[ADMIN_ACTION_SEARCH]);
}
if (isset($_GET[ADMIN_ACTION_SORT])) {
// Switch ...
switch ($_GET[ADMIN_ACTION_SORT]) {
case 'AscByUsername':
case 'DescByUsername':
// Set the order ...
$objGetCondition->appendString(_SP)->appendString('ORDER BY %objAuthUsersTableFUName');
// Switch ...
switch ($_GET[ADMIN_ACTION_SORT]) {
case 'AscByUsername':
$objGetCondition->appendString(_SP)->appendString('ASC');
break;
case 'DescByUsername':
$objGetCondition->appendString(_SP)->appendString('DESC');
break;
}
break;
case 'AscByEMail':
case 'DescByEMail':
// Set the order ...
$objGetCondition->appendString(_SP)->appendString('ORDER BY %objAuthUsersTableFEML');
// Switch ...
switch ($_GET[ADMIN_ACTION_SORT]) {
case 'AscByEMail':
$objGetCondition->appendString(_SP)->appendString('ASC');
break;
//.........这里部分代码省略.........
示例5: S
/**
* Will execute necessary SQL operations on the current form ...
*
* This method, setSQLOperationsOnForm, you don't need to know the internal workings of it. This is because, as you can see
* it is a private method, and thus, it's used internally by the class, to achieve it's goals of execution. Just pass on
* and read any other 'public' or 'protected' method out there ...
*
* @param array $inputAttributes The core attributes (found in every HTML element) that can be set;
* @param string $tp The path to the .tp file where to set those variables;
*/
private static final function updateObjectPropertiesonSQLUpdateorInsert()
{
if (isset(self::$objFormDataContainer['update_or_insert']) && isset(self::$objFormDataContainer['table_name'])) {
if (isset(self::$objFormDataContainer['update_where'])) {
// Set it to what ever the developer wants it set to ...
self::$objUpdateWhere = self::$objFormDataContainer['update_where'];
} else {
self::$objUpdateWhere = new S('%who = "%what"');
self::$objUpdateWhere->doToken('%who', self::$objUpdateUpdateField);
self::$objUpdateWhere->doToken('%what', self::$objUpdateUpdateId);
}
// Check to see which operation to execute ...
if (self::$objFormDataContainer['update_or_insert'] == new S('update')) {
// Do we have multiple or simple updates ...
if (isset(self::$objFormDataContainer['table_join_on']) && isset(self::$objFormDataContainer['table_save_into'])) {
self::$objUpdateTableName = new S(self::$objFormDataContainer['table_name'] . _SP . self::$objFormDataContainer['table_join_on']);
$updateTable = self::$objFormDataContainer['table_save_into']->toValues();
$updateTableCount = count($updateTable);
$updateTable[$updateTableCount++] = self::$objFormDataContainer['table_name'];
for ($i = 0; $i < $updateTableCount; ++$i) {
self::$objUpdateTableFields = new A(array_merge(self::$objUpdateTableFields->toArray(), self::getFieldsFromTable(new S($updateTable[$i]))->toArray()));
}
} else {
self::$objUpdateTableName = self::$objFormDataContainer['table_name'];
self::$objUpdateTableFields = self::getFieldsFromTable(self::$objUpdateTableName);
}
}
if (!self::checkPOST()->toBoolean() == TRUE) {
$q = new S('SELECT * FROM %table WHERE %condition LIMIT 1');
$q->doToken('%table', self::$objUpdateTableName)->doToken('%condition', self::$objUpdateWhere);
self::$objUpdateSELECTData = self::getQuery($q);
}
}
}