当前位置: 首页>>代码示例>>PHP>>正文


PHP str::slug方法代码示例

本文整理汇总了PHP中str::slug方法的典型用法代码示例。如果您正苦于以下问题:PHP str::slug方法的具体用法?PHP str::slug怎么用?PHP str::slug使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在str的用法示例。


在下文中一共展示了str::slug方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: update

 public function update($id = '')
 {
     $page = $this->page($id);
     if (!$page) {
         return response::error(l('pages.error.missing'));
     }
     $blueprint = blueprint::find($page);
     $fields = $blueprint->fields($page);
     $oldTitle = (string) $page->title();
     // trigger the validation
     $form = new Form($fields->toArray());
     $form->validate();
     // fetch the data for the form
     $data = pagedata::createByInput($page, $form->serialize());
     // stop at invalid fields
     if (!$form->isValid()) {
         return response::error(l('pages.show.error.form'), 400, array('fields' => $form->fields()->filterBy('error', true)->pluck('name')));
     }
     try {
         $page->update($data, app::$language);
         // make sure that the sorting number is correct
         if ($page->isVisible()) {
             $num = api::createPageNum($page);
             if ($num !== $page->num()) {
                 if ($num > 0) {
                     $page->sort($num);
                 } else {
                     // update the slug
                     if ($data['title'] != $oldTitle) {
                         $uid = str::slug($data['title']);
                         $page->move($uid);
                     }
                 }
             }
         }
         history::visit($page->id());
         return response::success('success', array('file' => $page->content()->root(), 'data' => $data, 'uid' => $page->uid(), 'uri' => $page->id()));
     } catch (Exception $e) {
         return response::error($e->getMessage());
     }
 }
开发者ID:kompuser,项目名称:panel,代码行数:41,代码来源:pages.php

示例2: __construct

 /**
  * @param string $id
  * @param PageAbstract $product
  */
 public function __construct($id, PageAbstract $product, $quantity)
 {
     $variant = false;
     // Break cart ID into uri, variant, and option (:: is used as a delimiter)
     $id_array = explode('::', $id);
     // Set variant and option
     $variantName = $id_array[1];
     $variants = $product->variants()->yaml();
     foreach ($variants as $key => $array) {
         if (str::slug($array['name']) === $variantName) {
             $variant = $variants[$key];
         }
     }
     $this->id = $id;
     $this->sku = $variant['sku'];
     $this->uri = $product->uri();
     $this->name = $product->title()->value;
     $this->variant = str::slug($variant['name']);
     $this->option = $id_array[2];
     $this->amount = $variant['price'];
     $this->sale_amount = salePrice($variant);
     $this->weight = $variant['weight'];
     $this->quantity = $quantity;
     $this->noshipping = $product->noshipping()->value;
     $this->notax = $product->notax()->value;
 }
开发者ID:aguynamedirvin,项目名称:F-C,代码行数:30,代码来源:CartItem.php

示例3: create_post

function create_post($page, $blueprint, $title, $data)
{
    // Where we'll put the content.
    $PATH = get_content_path($page);
    $SLUG = str::slug($title);
    $dir = $PATH . DS . $SLUG;
    $dir_matches = glob($PATH . DS . "*" . $SLUG . "*");
    // If the directory already exists don't override it,
    // append a number to it, no matter its visibility.
    // 1-directory
    // directory_1
    // 8-directory_2
    if (count($dir_matches) > 0) {
        $dir .= "_" . count($dir_matches);
        $title .= "_" . count($dir_matches);
    }
    // Pass $title into the $data array for easiest manipulation.
    $data["title"] = $title;
    // Create the directory with read&write permissions.
    mkdir($dir, 0777, true);
    // Filename with (almost) multilingual support.
    // Peraphs you'll want to create different files for each
    // languages code.
    $filename = $blueprint . ".fr.txt";
    // Write the file.
    $file = fopen($dir . DS . $filename, 'w');
    if (flock($file, LOCK_EX)) {
        fwrite($file, parse_data(get_blueprint($blueprint), $data));
        flock($file, LOCK_EX);
    }
    fclose($file);
}
开发者ID:arnaudjuracek,项目名称:kirby-extensions,代码行数:32,代码来源:iftttbot.php

示例4: inspectOptions

 protected function inspectOptions($options)
 {
     $page = page('docs/cheatsheet/options');
     $children = $page->children();
     foreach ($options as $key => $value) {
         if (!$children->find(str::slug($key))) {
             $this->results[] = 'Missing option: ' . $key;
         }
     }
 }
开发者ID:mzur,项目名称:getkirby.com,代码行数:10,代码来源:inspector.php

示例5: store

 /**
  * Save the submission
  *
  * @return void
  */
 public function store($page)
 {
     $timestamp = date('YmdHis', $this->data['timestamp']);
     $title = $this->data['business_name'] . '-' . $timestamp;
     $uid = String::slug($title);
     $data = $this->data;
     $data['title'] = $title;
     $data['date'] = date('Y-m-d', $this->data['timestamp']);
     $page->children()->create($uid, 'list-request', $data);
 }
开发者ID:evendev,项目名称:grg-kirby,代码行数:15,代码来源:ListRequest.php

示例6: updateQty

 private function updateQty($id, $newQty)
 {
     // $id is formatted uri::variantslug::optionslug
     $idParts = explode('::', $id);
     $uri = $idParts[0];
     $variantSlug = $idParts[1];
     $optionSlug = $idParts[2];
     // Get combined quantity of this option's siblings
     $siblingsQty = 0;
     foreach ($this->data as $key => $qty) {
         if (strpos($key, $uri . '::' . $variantSlug) === 0 and $key != $id) {
             $siblingsQty += $qty;
         }
     }
     foreach (page($uri)->variants()->toStructure() as $variant) {
         if (str::slug($variant->name()) === $variantSlug) {
             // Store the stock in a variable for quicker processing
             $stock = inStock($variant);
             // If there are no siblings
             if ($siblingsQty === 0) {
                 // If there is enough stock
                 if ($stock === true or $stock >= $newQty) {
                     return $newQty;
                 } else {
                     if ($stock === false) {
                         return 0;
                     } else {
                         return $stock;
                     }
                 }
             } else {
                 // If the siblings plus $newQty won't exceed the max stock, go ahead
                 if ($stock === true or $stock >= $siblingsQty + $newQty) {
                     return $newQty;
                 } else {
                     if ($stock === false or $stock <= $siblingsQty) {
                         return 0;
                     } else {
                         if ($stock > $siblingsQty and $stock <= $siblingsQty + $newQty) {
                             return $stock - $siblingsQty;
                         }
                     }
                 }
             }
         }
     }
     // The script should never get to this point
     return 0;
 }
开发者ID:jenniferhail,项目名称:kirbypine,代码行数:49,代码来源:Cart.php

示例7: updateStock

/**
 * After a successful transaction, update product stock
 * Expects an array
 * $items = [
 *   [uri, variant, quantity]
 * ]
 */
function updateStock($items)
{
    foreach ($items as $i => $item) {
        $product = page($item['uri']);
        $variants = $product->variants()->yaml();
        foreach ($variants as $key => $variant) {
            if (str::slug($variant['name']) === $item['variant']) {
                // Edit stock in the original $variants array. If $newStock is false/blank, that means it's unlimited.
                $newStock = $variant['stock'] - $item['quantity'];
                $variants[$key]['stock'] = $newStock ? $newStock : '';
                // Update the entire variants field (only one variant has changed)
                $product->update(array('variants' => yaml::encode($variants)));
            }
        }
    }
}
开发者ID:jenniferhail,项目名称:kirbypine,代码行数:23,代码来源:shopkit.php

示例8: update

 public function update($id = '')
 {
     $page = $this->page($id);
     if (!$page) {
         return response::error(l('pages.error.missing'));
     }
     $blueprint = blueprint::find($page);
     $fields = $blueprint->fields($page);
     $oldTitle = (string) $page->title();
     // trigger the validation
     $form = new Form($fields->toArray());
     $form->validate();
     // fetch the data for the form
     $data = pagedata::createByInput($page, $form->serialize());
     // stop at invalid fields
     if (!$form->isValid()) {
         return response::error(l('pages.show.error.form'), 400, array('fields' => $form->fields()->filterBy('error', true)->pluck('name')));
     }
     try {
         PageStore::discard($page);
         $page->update($data);
         // make sure that the sorting number is correct
         if ($page->isVisible()) {
             $num = api::createPageNum($page);
             if ($num !== $page->num()) {
                 if ($num > 0) {
                     $page->sort($num);
                 }
             }
         }
         // get the blueprint of the parent page to find the
         // correct sorting mode for this page
         $parentBlueprint = blueprint::find($page->parent());
         // auto-update the uid if the sorting mode is set to zero
         if ($parentBlueprint->pages()->num()->mode() == 'zero') {
             $uid = str::slug($page->title());
             $page->move($uid);
         }
         history::visit($page->id());
         kirby()->trigger('panel.page.update', $page);
         return response::success('success', array('file' => $page->content()->root(), 'data' => $data, 'uid' => $page->uid(), 'uri' => $page->id()));
     } catch (Exception $e) {
         return response::error($e->getMessage());
     }
 }
开发者ID:madebypost,项目名称:Gulp-Neat-KirbyCMS,代码行数:45,代码来源:pages.php

示例9: slug

 /**
  * Returns the slug for the page
  * The slug is the last part of the URL path
  * For multilang sites this can be translated with a URL-Key field
  * in the text file for this page.
  *
  * @param string $lang Optional language code to get the translated slug
  * @return string i.e. 01-projects returns projects
  */
 public function slug($lang = null)
 {
     $default = $this->site->defaultLanguage->code;
     $current = $this->site->language->code;
     // get the slug for the current language
     if (is_null($lang)) {
         // the current language's slug can be cached
         if (isset($this->cache['slug'])) {
             return $this->cache['slug'];
         }
         // if the current language is the default language
         // simply return the uid
         if ($current == $default) {
             return $this->cache['slug'] = $this->uid();
         }
         // geth the translated url key if available
         $key = (string) a::get((array) $this->content()->data(), 'url_key');
         // return the translated slug or otherwise the uid
         return empty($key) ? $this->uid() : $key;
     } else {
         // if the passed language code is the current language code
         // we can simply return the slug method without a language code specified
         if ($lang == $current) {
             return $this->slug();
         }
         // the slug for the default language is just the name of the folder
         if ($lang == $default) {
             return $this->uid();
         }
         // search for content in the specified language
         if ($content = $this->content($lang)) {
             // search for a translated url_key in that language
             if ($slug = a::get((array) $content->data(), 'url_key')) {
                 // if available, use the translated url key as slug
                 return str::slug($slug);
             }
         }
         // use the uid if no translation could be found
         return $this->uid();
     }
 }
开发者ID:gBokiau,项目名称:kirby,代码行数:50,代码来源:page.php

示例10: fetchMethod

 public function fetchMethod($className, $method)
 {
     $phpdoc = new DocBlock($method->getDocComment());
     $call = array();
     $params = array();
     $return = null;
     // build the call example string
     foreach ($method->getParameters() as $param) {
         if ($param->isOptional()) {
             try {
                 $value = var_export($param->getDefaultValue(), true);
                 $value = str_replace(PHP_EOL, '', $value);
                 $value = str_replace('NULL', 'null', $value);
                 $value = str_replace('array ()', 'array()', $value);
                 $call[] = '$' . $param->getName() . ' = ' . $value;
             } catch (Exception $e) {
                 $call[] = '$' . $param->getName();
             }
         } else {
             $call[] = '$' . $param->getName();
         }
     }
     // get all parameter docs
     foreach ($phpdoc->getTags() as $tag) {
         switch ($tag->getName()) {
             case 'param':
                 $params[] = array('name' => $tag->getVariableName(), 'type' => $tag->getType(), 'text' => $tag->getDescription());
                 break;
             case 'return':
                 $return = array('type' => $tag->getType(), 'text' => $tag->getDescription());
                 break;
         }
     }
     // a::first
     $methodName = strtolower($className) . '::' . $method->getName();
     $methodSlug = str::slug($method->getName());
     // build the full method array
     return array('name' => $methodName, 'slug' => $methodSlug, 'excerpt' => str_replace(PHP_EOL, ' ', $phpdoc->getShortDescription()), 'call' => $methodName . '(' . implode(', ', $call) . ')', 'return' => $return, 'params' => $params);
 }
开发者ID:mzur,项目名称:getkirby.com,代码行数:39,代码来源:documentor.php

示例11: createPage

 public static function createPage($uri, $title, $template, $uid)
 {
     $parent = empty($uri) ? site() : page($uri);
     $uid = empty($uid) ? str::slug($title) : str::slug($uid);
     if (empty($title)) {
         throw new Exception(l('pages.add.error.title'));
     }
     if (empty($template)) {
         throw new Exception(l('pages.add.error.template'));
     }
     $data = pagedata::createByBlueprint($template, array('title' => $title));
     $page = $parent->children()->create($uid, $template, $data);
     $blueprint = blueprint::find($page);
     if (is_array($blueprint->pages()->build())) {
         foreach ($blueprint->pages()->build() as $build) {
             $missing = a::missing($build, array('title', 'template', 'uid'));
             if (!empty($missing)) {
                 continue;
             }
             static::createPage($page->uri(), $build['title'], $build['template'], $build['uid']);
         }
     }
     return $page;
 }
开发者ID:madebypost,项目名称:Gulp-Neat-KirbyCMS,代码行数:24,代码来源:api.php

示例12: testSlug

 /**
  * @param string $originalString String to be sluggified
  * @param string $expectedResult What we expect our slug result to be
  *
  * @dataProvider strProvider
  */
 public function testSlug($originalString, $expectedString)
 {
     $result = str::slug($originalString);
     $this->assertEquals($expectedString, $result);
 }
开发者ID:hao1987,项目名称:dorne,代码行数:11,代码来源:str.test.php

示例13: setSlugAttribute

 public function setSlugAttribute($value)
 {
     $this->attributes['slug'] = str::slug($value);
 }
开发者ID:HEERLIJKNL,项目名称:WeRotterdam,代码行数:4,代码来源:product.php

示例14: itemId

 /**
  * Generate file slug
  *
  * @since 1.0.0
  *
  * @param  \File $file
  * @return string
  */
 public function itemId($file)
 {
     return $this->name() . '-' . str::slug($file->filename());
 }
开发者ID:starckio,项目名称:Userskit,代码行数:12,代码来源:selector.php

示例15: move

 /**
  * Changes the uid for the page
  *
  * @param string $uid
  */
 public function move($uid)
 {
     $uid = str::slug($uid);
     if (empty($uid)) {
         throw new Exception('The uid is missing');
     }
     // don't do anything if the uid exists
     if ($this->uid() === $uid) {
         return true;
     }
     // check for an existing page with the same UID
     if ($this->siblings()->not($this)->find($uid)) {
         throw new Exception('A page with this uid already exists');
     }
     $dir = $this->isVisible() ? $this->num() . '-' . $uid : $uid;
     $root = dirname($this->root()) . DS . $dir;
     if (!dir::move($this->root(), $root)) {
         throw new Exception('The directory could not be moved');
     }
     $this->dirname = $dir;
     $this->root = $root;
     $this->uid = $uid;
     // assign a new id and uri
     $this->id = $this->uri = ltrim($this->parent->id() . '/' . $this->uid, '/');
     // clean the cache
     $this->kirby->cache()->flush();
     $this->reset();
     return true;
 }
开发者ID:LucasFyl,项目名称:korakia,代码行数:34,代码来源:page.php


注:本文中的str::slug方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。