本文整理汇总了PHP中Smarty::_get_plugin_filepath方法的典型用法代码示例。如果您正苦于以下问题:PHP Smarty::_get_plugin_filepath方法的具体用法?PHP Smarty::_get_plugin_filepath怎么用?PHP Smarty::_get_plugin_filepath使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Smarty
的用法示例。
在下文中一共展示了Smarty::_get_plugin_filepath方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: smarty_function_breadcrumbs
/**
* Get the path to the resource as (breadcrumbs)
*
* @param array $params
* @param Smarty $smarty
*
* @return string
*/
function smarty_function_breadcrumbs($params, $smarty)
{
$defaultParams = array('trail' => array(), 'separator' => ' > ', 'truncate' => 40);
// initialize the parameters
foreach ($defaultParams as $k => $v) {
if (!isset($params[$k])) {
$params[$k] = $v;
}
}
// load the truncate modifier
if ($params['truncate'] > 0) {
require_once $smarty->_get_plugin_filepath('modifier', 'truncate');
}
$links = array();
$numSteps = count($params['trail']);
for ($i = 0; $i < $numSteps; $i++) {
$step = $params['trail'][$i];
// truncate the title if required
if ($params['truncate'] > 0) {
$step['title'] = smarty_modifier_truncate($step['title'], $params['truncate']);
}
// build the link if it's set and isn't the last step
if (strlen($step['link']) > 0 && $i < $numSteps - 1) {
$links[] = sprintf('<a href="%s" title="%s">%s</a>', htmlSpecialChars($step['link']), htmlSpecialChars($step['title']), htmlSpecialChars($step['title']));
} else {
// either the link isn't set, or it's the last step
$links[] = htmlSpecialChars($step['title']);
}
}
// join the links using the specified separator
return join($params['separator'], $links);
}
示例2: smarty_block_wrap
/**
* Wrap form field into a DIV
*
* Properties:
*
* - field - field name
* - errors - errors container (ValidationErrors instance)
* - show_errors - show errors list inside of field wrapper
*
* @param array $params
* @param string $content
* @param Smarty $smarty
* @param boolean $repeat
* @return null
*/
function smarty_block_wrap($params, $content, &$smarty, &$repeat)
{
$field = array_var($params, 'field');
if (empty($field)) {
return new InvalidParamError('field', $field, "'field' property is required for 'wrap_field' helper", true);
}
// if
$classes = array();
if (isset($params['class'])) {
$classes = explode(' ', $params['class']);
unset($params['class']);
}
// if
if (!in_array('ctrlHolder', $classes)) {
$classes[] = 'ctrlHolder';
}
// if
$error_messages = null;
if (isset($params['errors'])) {
$errors = $params['errors'];
} else {
$errors = $smarty->get_template_vars('errors');
}
// if
if (instance_of($errors, 'ValidationErrors')) {
if ($errors->hasError($field)) {
$classes[] = 'error';
$error_messages = $errors->getFieldErrors($field);
}
// if
}
// if
$show_errors = array_var($params, 'show_errors', true);
$listed_errors = '';
if (is_foreachable($error_messages) && $show_errors) {
require_once $smarty->_get_plugin_filepath('function', 'field_errors');
$listed_errors = smarty_function_field_errors(array('field' => $field, 'errors' => $errors), $smarty);
}
// if
$aid = array_var($params, 'aid');
if ($aid) {
$aid = '<p class="aid">' . clean(lang($aid)) . '</p>';
}
// if
// Unset helper properties, we need this for attributes
unset($params['field']);
unset($params['errors']);
unset($params['show_errors']);
unset($params['aid']);
$params['class'] = implode(' ', $classes);
return open_html_tag('div', $params) . "\n{$listed_errors}\n" . $content . $aid . "\n</div>";
}
示例3: smarty_function_imagefilename
/**
* Get an image file
*
* @param array $params
* @param Smarty $smarty
* @return string
*/
function smarty_function_imagefilename($params, $smarty)
{
if (!isset($params['id'])) {
$params['id'] = 0;
}
if (!isset($params['w'])) {
$params['w'] = 0;
}
if (!isset($params['w'])) {
$params['h'] = 0;
}
require_once $smarty->_get_plugin_filepath('function', 'geturl');
$hash = Default_Model_DbTable_BlogPostImage::GetImageHash($params['id'], $params['w'], $params['h']);
$options = array('controller' => 'utility', 'action' => 'image');
return sprintf('%s?username=%s&id=%d&w=%d&h=%d&hash=%s', smarty_function_geturl($options, $smarty), $params['username'], $params['id'], $params['w'], $params['h'], $hash);
}
示例4: smarty_function_scaffold
/**
* Smarty {scaffold} function plugin
*
* Type: function<br>
* Name: scaffold<br>
* Purpose: scaffold
*
* @param $params
* @param \Smarty $smarty
* @return bool
*/
function smarty_function_scaffold($params, &$smarty)
{
if (isset($params['model'])) {
global $db;
require_once $smarty->_get_plugin_filepath('function', 'control');
$table = $db->getDataDefinition($params['model']);
foreach ($table as $key => $col) {
if ($key != 'created_at' && $key != 'edited_at' && $key != 'poster' && $key != 'editor' && $key != 'location_data') {
$ctl = array();
//Get the default value
if (isset($params['item'])) {
$ctl['value'] = isset($params['item']->{$key}) ? $params['item']->{$key} : "";
}
//Get the base control
if ($key == 'id') {
$ctl['type'] = 'hidden';
} else {
$ctl['type'] = expTemplate::guessControlType($col, $default_value, $key);
}
//format the values if needed
if (isset($col[FORM_FIELD_FILTER])) {
switch ($col[FORM_FIELD_FILTER]) {
case MONEY:
case DECIMAL_MONEY:
$ctl['value'] = expCore::getCurrencySymbol('USD') . number_format($ctl['value'], 2, '.', ',');
$ctl['filter'] = 'money';
break;
}
}
//write out the control itself...and then we're done.
if (isset($col[FORM_FIELD_ONCLICK])) {
$ctl['onclick'] = $col[FORM_FIELD_ONCLICK];
}
$ctl['label'] = isset($col[FORM_FIELD_LABEL]) ? $col[FORM_FIELD_LABEL] : $key;
$ctl['name'] = isset($col[FORM_FIELD_NAME]) ? $col[FORM_FIELD_NAME] : $key;
echo smarty_function_control($ctl, $smarty);
//echo $control->controlToHTML($control_label, $control_name);
}
}
}
$submit = new buttongroupcontrol(gt('Submit'), gt('Reset'), gt('Cancel'));
echo $submit->controlToHTML('submit');
}
示例5: smarty_function_html_select_locales
/**
* Zikula_View function to display a drop down list of languages
*
* Available parameters:
* - assign: If set, the results are assigned to the corresponding variable instead of printed out
* - name: Name for the control
* - id: ID for the control
* - selected: Selected value
* - installed: if set only show languages existing in languages folder
* - all: show dummy entry '_ALL' on top of the list with empty value
*
* Example
* {html_select_locales name=locale selected=en}
*
* @param array $params All attributes passed to this function from the template.
* @param Smarty $view Reference to the Zikula_View object.
*
* @return string The value of the last status message posted, or void if no status message exists.
*/
function smarty_function_html_select_locales($params, Smarty $view)
{
if (!isset($params['name']) || empty($params['name'])) {
$view->trigger_error(__f('Error! in %1$s: the %2$s parameter must be specified.', array('html_select_locales', 'name')));
return false;
}
require_once $view->_get_plugin_filepath('function', 'html_options');
$values = $output = array();
if (isset($params['all']) && $params['all']) {
$values[] = '';
$output[] = DataUtil::formatForDisplay(__('All'));
}
$installed = ZLanguage::getInstalledLanguageNames();
$output = array_merge($output, DataUtil::formatForDisplay(array_values($installed)));
$values = array_merge($values, DataUtil::formatForDisplay(array_keys($installed)));
$html_result = smarty_function_html_options(array('output' => $output, 'values' => $values, 'selected' => isset($params['selected']) ? $params['selected'] : null, 'id' => isset($params['id']) ? $params['id'] : null, 'name' => $params['name']), $view);
if (isset($params['assign']) && !empty($params['assign'])) {
$view->assign($params['assign'], $html_result);
} else {
return $html_result;
}
}
示例6: smarty_function_prod_images
/**
* Smarty {prod_images} function plugin
*
* Type: function<br>
* Name: prod_images<br>
* Purpose: display product images
*
* @param $params
* @param \Smarty $smarty
* @return bool
*/
function smarty_function_prod_images($params, &$smarty)
{
//load up the img plugin
require_once $smarty->_get_plugin_filepath('function', 'img');
$rec = $params['record'];
if ($rec->main_image_functionality == 'iws') {
$images = $rec->expFile['imagesforswatches'];
} else {
$images = $rec->expFile['mainimage'];
}
//ref for additional images so we can play with the array
$additionalImages = !empty($rec->expFile['images']) ? $rec->expFile['images'] : array();
$mainImages = !empty($additionalImages) ? array_merge($images, $additionalImages) : $images;
$mainthmb = !empty($rec->expFile['mainthumbnail'][0]) ? $rec->expFile['mainthumbnail'][0] : $mainImages[0];
$addImgs = array_merge(array($mainthmb), $additionalImages);
//pulling in store configs. This is a placeholder for now, so we'll manually set them til we get that worked in.
$config = $smarty->getTemplateVars('config');
// $config = array(
// "listing-width"=>148,
// "listing-height"=>148,
// "disp-width"=>200,
// "disp-height"=>250,
// "thmb-box"=>40,
// "swatch-box"=>30,
// "swatch-pop"=>100
// );
switch ($params['display']) {
case 'single':
$html = '<a class="prod-img" href="' . makelink(array("controller" => "store", "action" => "showByTitle", "title" => $rec->title)) . '">';
$width = !empty($params['width']) ? $params['width'] : 100;
$imgparams = array("constraint" => 1, "file_id" => $images[0]->id, "w" => $config["listingwidth"], "h" => $config["listingheight"], "return" => 1, "class" => "ecom-image");
if (!$images[0]->id) {
unset($imgparams['file_id']);
$imgparams['src'] = 'framework/modules/ecommerce/assets/images/no-image.jpg';
$imgparams['alt'] = gt('No image found for') . ' ' . $rec->title;
}
$img = smarty_function_img($imgparams, &$smarty);
$html .= $img;
$html .= '</a>';
break;
case 'main':
// if we have only 1 image to display, left do a little math to figure out how tall to make our display box
if (count($addImgs) <= 1) {
$config['displayheight'] = ceil($mainImages[0]->image_height * $config['displaywidth'] / $mainImages[0]->image_width);
}
if (count($addImgs) > 1) {
$adi .= '<ul class="thumbnails">';
for ($i = 0; $i < count($addImgs); $i++) {
$thumbparams = array("h" => $config['addthmbw'], "w" => $config['addthmbh'], "zc" => 1, "file_id" => $addImgs[$i]->id, "return" => 1, "class" => "thumnail");
$thmb .= '<li>' . smarty_function_img($thumbparams, &$smarty) . '</li>';
}
$adi .= $thmb;
$adi .= '</ul>';
}
// shrink shrink the display window to fit the selected image if no height is set
if ($config['displayheight'] == 0) {
$config['displayheight'] = $config['displaywidth'] * $mainImages[0]->image_height / $mainImages[0]->image_width;
}
$html = '<div class="ecom-images loading-images" style="width:' . $config['displaywidth'] . 'px;">';
// if configured, the additional thumb images will display at the bottom
$html .= $config['thumbsattop'] == 1 ? $adi : '';
$html .= '<ul class="enlarged" style="height:' . $config['displayheight'] . 'px;width:' . $config['displaywidth'] . 'px;">';
for ($i = 0; $i < count($mainImages); $i++) {
$imgparams = array("w" => $config['displaywidth'], "file_id" => $mainImages[$i]->id, "return" => 1, "class" => "large-img");
$img .= '<li>' . smarty_function_img($imgparams, &$smarty) . '</li>';
}
$html .= $img;
$html .= '</ul>';
// if configured, the additional thumb images will display at the bottom
$html .= $config['thumbsattop'] != 1 ? $adi : '';
$html .= '</div>';
// javascripting
$js = "\n YUI(EXPONENT.YUI3_CONFIG).use('node','anim', function(Y) {\n // set up the images with correct z-indexes to put the first image on top\n var imgs = Y.all('.ecom-images img.large-img');\n var thumbs = Y.all('.thumbnails img');\n var swatches = Y.all('.swatches .swatch');\n\n //remove loading\n Y.one('.loading-images').removeClass('loading-images');\n\n var resetZ = function(n,y){\n n.setStyles({'zIndex':0,'display':'none'});\n n.set('id','exp-ecom-msi-'+y);\n }\n\n imgs.each(resetZ);\n imgs.item(0).setStyles({'zIndex':'1','display':'block'});\n \n swatches.each(function(n,y){\n n.set('id','exp-ecom-ms-'+y)\n });\n \n swatches.on('click',function(e){\n imgs.each(resetZ);\n var curImg = imgs.item(swatches.indexOf(e.target));\n var imgWin = curImg.ancestor('ul.enlarged');\n imgWin.setStyle('height',curImg.get('height')+'px');\n //animImgWin(imgWin,curImg.get('height'));\n curImg.setStyles({'zIndex':'1','display':'block'});\n });\n \n thumbs.on('click',function(e){\n imgs.each(resetZ);\n \n if (swatches.size()!=0) {\n var processedIndex = thumbs.indexOf(e.target)==0 ? 0 : swatches.size()+thumbs.indexOf(e.target)-1;\n } else {\n var processedIndex = thumbs.indexOf(e.target);\n }\n var curImg = imgs.item(processedIndex); \n curImg.ancestor('ul.enlarged').setStyle('height',curImg.get('height')+'px'); \n curImg.setStyles({'zIndex':'1','display':'block'});\n });\n \n // animation... too much for now, but we'll leave the code\n var animImgWin = function (node,h) {\n var hAnim = new Y.Anim({\n node: node,\n to: {height: h},\n easing:Y.Easing.easeOut,\n duration:0.5\n });\n hAnim.run();\n }\n \n });\n ";
expJavascript::pushToFoot(array("unique" => 'imgswatches', "yui2mods" => null, "yui3mods" => null, "content" => $js, "src" => ""));
break;
case 'swatches':
$html = '<ul class="swatches">';
$swatches = $rec->expFile['swatchimages'];
for ($i = 0; $i < count($swatches); $i++) {
$small = array("h" => $config['swatchsmh'], "w" => $config['swatchsmw'], "zc" => 1, "file_id" => $swatches[$i]->id, "return" => 1, "class" => 'swatch');
$med = array("h" => $config['swatchpoph'], "w" => $config['swatchpopw'], "zc" => 1, "file_id" => $swatches[$i]->id, "return" => 1);
$swtch .= '<li>' . smarty_function_img($small, &$smarty);
$swtch .= '<div>' . smarty_function_img($med, &$smarty) . '<strong>' . $swatches[$i]->title . '</strong></div>';
$swtch .= '</li>';
}
$html .= $swtch;
$html .= '</ul>';
break;
}
//.........这里部分代码省略.........