本文整理汇总了PHP中Walker类的典型用法代码示例。如果您正苦于以下问题:PHP Walker类的具体用法?PHP Walker怎么用?PHP Walker使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Walker类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: expand
function expand(Environment $env, $code)
{
$walker = new Walker();
$forms = buildForms($code);
return array_map(function ($form) use($walker, $env) {
return $walker->expand($env, $form);
}, $forms);
}
示例2: expand
/**
* @test
* @dataProvider provideExpand
*/
public function expand($expected, $sexpr, array $macros = [])
{
$walker = new Walker();
$env = Environment::standard();
foreach ($macros as $name => $pair) {
list($argsSexpr, $bodySexpr) = $pair;
$macroArgs = $this->parseSexpr($argsSexpr);
$macroBody = $this->parseSexpr($bodySexpr);
$env[$name] = new SpecialOp\MacroOp($macroArgs, $macroBody);
}
$form = $this->parseSexpr($sexpr);
$expanded = $walker->expand($env, $form);
$this->assertEquals($expected, $expanded->getAst());
}
示例3: forgot_password
public function forgot_password()
{
$type = Input::get('type');
$email = Input::get('email');
if ($type == 1) {
// Walker
$walker_data = Walker::where('email', $email)->first();
if ($walker_data) {
$walker = Walker::find($walker_data->id);
$new_password = time();
$new_password .= rand();
$new_password = sha1($new_password);
$new_password = substr($new_password, 0, 8);
$walker->password = Hash::make($new_password);
$walker->save();
// send email
$settings = Settings::where('key', 'email_forgot_password')->first();
$pattern = $settings->value;
$pattern = str_replace('%password%', $new_password, $pattern);
$subject = "Your New Password";
email_notification($walker->id, 'walker', $pattern, $subject);
$response_array = array();
$response_array['success'] = true;
$response_code = 200;
$response = Response::json($response_array, $response_code);
return $response;
} else {
$response_array = array('success' => false, 'error' => 'This Email is not Registered', 'error_code' => 425);
$response_code = 200;
$response = Response::json($response_array, $response_code);
return $response;
}
} else {
$owner_data = Owner::where('email', $email)->first();
if ($owner_data) {
$owner = Owner::find($owner_data->id);
$new_password = time();
$new_password .= rand();
$new_password = sha1($new_password);
$new_password = substr($new_password, 0, 8);
$owner->password = Hash::make($new_password);
$owner->save();
$settings = Settings::where('key', 'email_forgot_password')->first();
$pattern = $settings->value;
$pattern = str_replace('%password%', $new_password, $pattern);
$subject = "Your New Password";
email_notification($owner->id, 'owner', $pattern, $subject);
$response_array = array();
$response_array['success'] = true;
$response_code = 200;
$response = Response::json($response_array, $response_code);
return $response;
} else {
$response_array = array('success' => false, 'error' => 'This Email is not Registered', 'error_code' => 425);
$response_code = 200;
$response = Response::json($response_array, $response_code);
return $response;
}
}
}
示例4: walk
public function walk()
{
$walked = [];
//walk know pathes
foreach ($this->map->paths(['where' => ['path', $this->curPath]]) as $path) {
if (isset($this->data[$path->item])) {
if ($path->type == 'container') {
//create walker for container
$walker = new Walker();
$walker->migration = $this->migration;
$walker->map = $this->map;
$walker->data =& $this->data[$path->item];
$walker->curPath = $this->curPath . $path->item . '/';
$walker->mapPath = $path;
$walker->mapPathParent = $this->mapPath;
$walker->migtarionLog = $this->migtarionLog;
$walker->walk();
} elseif ($path->type == 'object') {
//start parse path data
$this->startObjectParse($path->object_id, $this->data[$path->item]);
}
}
$walked[$path->item] = true;
}
//check unparsed paths
foreach ($this->data as $key => &$data) {
//skip parsed and attribtes
if ($key == '@attributes' || !empty($walked[$key])) {
continue;
}
//search object for parse
$object = Migration\Object::get([['code', $key], ['migration_id', $this->migration->id]]);
if ($object) {
//parse as object
$this->startObjectParse($object, $data);
} else {
//create new map path for configure unknown path
$this->mapPath = new Migration\Map\Path();
$this->mapPath->parent_id = $this->mapPathParent ? $this->mapPathParent->id : 0;
$this->mapPath->path = $this->curPath;
$this->mapPath->item = $key;
$this->mapPath->migration_map_id = $this->map->id;
$this->mapPath->save();
}
}
}
示例5: display_element
/**
* Taken from WordPress's Walker_Comment::display_element()
*
* This function is designed to enhance Walker::display_element() to
* display children of higher nesting levels than selected inline on
* the highest depth level displayed. This prevents them being orphaned
* at the end of the comment list.
*
* Example: max_depth = 2, with 5 levels of nested content.
* 1
* 1.1
* 1.1.1
* 1.1.1.1
* 1.1.1.1.1
* 1.1.2
* 1.1.2.1
* 2
* 2.2
*
* @see Walker_Comment::display_element()
* @see Walker::display_element()
* @see wp_list_comments()
*/
public function display_element($element, &$children_elements, $max_depth, $depth, $args, &$output)
{
if (!$element) {
return;
}
$id_field = $this->db_fields['id'];
$id = $element->{$id_field};
parent::display_element($element, $children_elements, $max_depth, $depth, $args, $output);
// If we're at the max depth, and the current element still has children, loop over those and display them at this level
// This is to prevent them being orphaned to the end of the list.
if ($max_depth <= $depth + 1 && isset($children_elements[$id])) {
foreach ($children_elements[$id] as $child) {
$this->display_element($child, $children_elements, $max_depth, $depth, $args, $output);
}
unset($children_elements[$id]);
}
}
示例6: foreach
/**
* This modifies the default display_element() function to "flatten" any replies that exceed the max_depth.
*
* This function is taken from the Walker_Comment class in WordPress core.
*
* @see Walker::display_element()
*
* @param object $element Data object.
* @param array $children_elements List of elements to continue traversing.
* @param int $max_depth Max depth to traverse.
* @param int $depth Depth of current element.
* @param array $args An array of arguments. @see wp_list_comments()
* @param string $output Passed by reference. Used to append additional content.
* @return null Null on failure with no changes to parameters.
*/
function display_element($element, &$children_elements, $max_depth, $depth, $args, &$output)
{
// Do nothing if $element is false...
if (!$element) {
return;
}
$id_field = $this->db_fields['id'];
$id = $element->{$id_field};
// Run the standard display_element() function now...
parent::display_element($element, $children_elements, $max_depth, $depth, $args, $output);
// If we're at the max depth, and the current element still has children, loop over those and display them at
// this level. This is to prevent them being orphaned to the end of the comment list.
if ($max_depth <= $depth + 1 && isset($children_elements[$id])) {
foreach ($children_elements[$id] as $child) {
$this->display_element($child, $children_elements, $max_depth, $depth, $args, $output);
}
unset($children_elements[$id]);
}
}
示例7: fire
/**
* Execute the console command.
*
* @return mixed
*/
public function fire()
{
$this->info('Working');
$date1 = date('Y-m-d h:i:s');
$this->info($date1);
$date = date_create($date1);
$msgtime = $date->add(new DateInterval('P0Y0M0DT0H30M0S'))->format('Y-m-d H:i:s');
$requests = Requests::where('later', 1)->where('is_started', 0)->where('request_start_time', '<=', $msgtime)->get();
if ($requests->count() > 0) {
$this->info('hola');
foreach ($requests as $request) {
$provider = Walker::where('id', $request->confirmed_walker)->first();
$owner = Owner::where('id', $request->owner_id)->first();
$message = "You have a ride scheduled in 30 mins from now. Client name is {$owner->first_name} {$owner->last_name} and phone no. is {$owner->phone}";
$this->info($request->id);
$this->info($message);
send_notifications($provider->id, 'provider', 'Ride in 30 min', $message);
$request->later = 0;
$request->save();
}
}
}
示例8: userTripDetail
public function userTripDetail()
{
$id = Request::segment(3);
$owner_id = Session::get('user_id');
$request = Requests::find($id);
if ($request->owner_id == $owner_id) {
$locations = WalkLocation::where('request_id', $id)->orderBy('id')->get();
$start = WalkLocation::where('request_id', $id)->orderBy('id')->first();
$end = WalkLocation::where('request_id', $id)->orderBy('id', 'desc')->first();
$map = "https://maps-api-ssl.google.com/maps/api/staticmap?size=249x249&style=feature:landscape|visibility:off&style=feature:poi|visibility:off&style=feature:transit|visibility:off&style=feature:road.highway|element:geometry|lightness:39&style=feature:road.local|element:geometry|gamma:1.45&style=feature:road|element:labels|gamma:1.22&style=feature:administrative|visibility:off&style=feature:administrative.locality|visibility:on&style=feature:landscape.natural|visibility:on&scale=2&markers=shadow:false|scale:2|icon:http://d1a3f4spazzrp4.cloudfront.net/receipt-new/marker-start@2x.png|{$start->latitude},{$start->longitude}&markers=shadow:false|scale:2|icon:http://d1a3f4spazzrp4.cloudfront.net/receipt-new/marker-finish@2x.png|{$end->latitude},{$end->longitude}&path=color:0x2dbae4ff|weight:4";
foreach ($locations as $location) {
$map .= "|{$location->latitude},{$location->longitude}";
}
$start_location = json_decode(file_get_contents("https://maps.googleapis.com/maps/api/geocode/json?latlng={$start->latitude},{$start->longitude}"), TRUE);
$start_address = $start_location['results'][0]['formatted_address'];
$end_location = json_decode(file_get_contents("https://maps.googleapis.com/maps/api/geocode/json?latlng={$end->latitude},{$end->longitude}"), TRUE);
$end_address = $end_location['results'][0]['formatted_address'];
$walker = Walker::find($request->confirmed_walker);
$walker_review = WalkerReview::where('request_id', $id)->first();
if ($walker_review) {
$rating = round($walker_review->rating);
} else {
$rating = 0;
}
return View::make('web.userTripDetail')->with('title', 'My Trips')->with('request', $request)->with('start_address', $start_address)->with('end_address', $end_address)->with('start', $start)->with('end', $end)->with('map_url', $map)->with('walker', $walker)->with('rating', $rating);
} else {
echo "false";
}
}
示例9: display_element
/**
* Traverse elements to create list from elements.
*
* Calls parent function in wp-includes/class-wp-walker.php
*/
function display_element($element, &$children_elements, $max_depth, $depth = 0, $args, &$output)
{
if (!$element) {
return;
}
//Add indicators for top level menu items with submenus
$id_field = $this->db_fields['id'];
if ($depth == 0 && !empty($children_elements[$element->{$id_field}])) {
$element->classes[] = 'mega-with-sub';
}
if (!empty($children_elements[$element->{$id_field}])) {
$element->classes[] = 'item-parent';
}
Walker::display_element($element, $children_elements, $max_depth, $depth, $args, $output);
}
示例10: schedule_request
public function schedule_request()
{
$time = date("Y-m-d H:i:s");
$query = "SELECT id,owner_id,current_walker,TIMESTAMPDIFF(SECOND,request_start_time, '{$time}') as diff from request where status = 0 and is_cancelled = 0";
$results = DB::select(DB::raw($query));
foreach ($results as $result) {
$settings = Settings::where('key', 'provider_timeout')->first();
$timeout = $settings->value;
if ($result->diff >= $timeout) {
// Archiving Old Walker
RequestMeta::where('request_id', '=', $result->id)->where('walker_id', '=', $result->current_walker)->update(array('status' => 2));
$request_meta = RequestMeta::where('request_id', '=', $result->id)->where('status', '=', 0)->orderBy('created_at')->first();
// update request
if (isset($request_meta->walker_id)) {
// assign new walker
Requests::where('id', '=', $result->id)->update(array('current_walker' => $request_meta->walker_id, 'request_start_time' => date("Y-m-d H:i:s")));
// Send Notification
$walker = Walker::find($request_meta->walker_id);
$owner_data = Owner::find($result->owner_id);
$msg_array = array();
$msg_array['request_id'] = $result->id;
$msg_array['id'] = $request_meta->walker_id;
if ($walker) {
$msg_array['token'] = $walker->token;
}
$msg_array['client_profile'] = array();
$msg_array['client_profile']['name'] = $owner_data->first_name . " " . $owner_data->last_name;
$msg_array['client_profile']['picture'] = $owner_data->picture;
$msg_array['client_profile']['bio'] = $owner_data->bio;
$msg_array['client_profile']['address'] = $owner_data->address;
$msg_array['client_profile']['phone'] = $owner_data->phone;
$title = "New Request";
$message = $msg_array;
send_notifications($request_meta->walker_id, "walker", $title, $message);
} else {
// request ended
Requests::where('id', '=', $result->id)->update(array('current_walker' => 0, 'status' => 1));
$settings = Settings::where('key', 'sms_request_unanswered')->first();
$pattern = $settings->value;
$pattern = str_replace('%id%', $result->id, $pattern);
sms_notification(1, 'admin', $pattern);
// send email
$settings = Settings::where('key', 'email_request_unanswered')->first();
$pattern = $settings->value;
$pattern = str_replace('%id%', $result->id, $pattern);
$pattern = str_replace('%url%', web_url() . "/admin/request/map/" . $result->id, $pattern);
$subject = "New Request Unansweres";
email_notification(1, 'admin', $pattern, $subject);
}
}
}
}
示例11: create_manual_request
public function create_manual_request()
{
$latitude = Input::get('latitude');
$longitude = Input::get('longitude');
$d_latitude = Input::get('d_latitude');
$d_longitude = Input::get('d_longitude');
$type = Input::get('type');
$provider = Input::get('provider');
$user_id = Session::get('user_id');
$time = date("Y-m-d H:i:s");
$provider_details = Walker::where('id', '=', $provider)->first();
$user = Owner::where('id', '=', $user_id)->first();
$request = new Requests();
$request->owner_id = $user_id;
$request->request_start_time = $time;
$request->confirmed_walker = $provider;
if ($d_longitude != '' && $d_latitude != '') {
$request->D_latitude = $d_latitude;
$request->D_longitude = $d_longitude;
}
$request->current_walker = $provider;
$request->status = 1;
$request->save();
$reqid = $request->id;
$request_service = new RequestServices();
$request_service->type = $type;
$request_service->request_id = $request->id;
$request_service->save();
$owner = Owner::find($user_id);
$owner->latitude = $latitude;
$owner->longitude = $longitude;
$owner->save();
$walkerlocation = new WalkLocation();
$walkerlocation->request_id = $request->id;
$walkerlocation->distance = 0.0;
$walkerlocation->latitude = $latitude;
$walkerlocation->longitude = $longitude;
$walkerlocation->save();
if ($request->save()) {
$current_request = Requests::where('id', '=', $reqid)->first();
return Redirect::to('/user/request-trip');
}
}
示例12: check_banking
public function check_banking()
{
$token = Input::get('token');
$walker_id = Input::get('id');
$is_admin = $this->isAdmin($token);
if ($walker_data = $this->getWalkerData($walker_id, $token, $is_admin)) {
// check for token validity
if (is_token_active($walker_data->token_expiry) || $is_admin) {
// do
$default_banking = Config::get('app.default_payment');
$resp = array();
$resp['default_banking'] = $default_banking;
$walker = Walker::where('id', $walker_id)->first();
if ($walker->merchant_id != NULL) {
$resp['walker']['merchant_id'] = $walker->merchant_id;
}
$response_array = array('success' => true, 'details' => $resp);
$response_code = 200;
}
}
$response = Response::json($response_array, $response_code);
return $response;
}
示例13: forgot_password
public function forgot_password()
{
$type = Input::get('type');
$email = Input::get('email');
if ($type == 1) {
// Walker
$walker_data = Walker::where('email', $email)->first();
if ($walker_data) {
$walker = Walker::find($walker_data->id);
$new_password = time();
$new_password .= rand();
$new_password = sha1($new_password);
$new_password = substr($new_password, 0, 8);
$walker->password = Hash::make($new_password);
$walker->save();
/* $subject = "Your New Password";
$email_data = array();
$email_data['password'] = $new_password;
send_email($walker->id, 'walker', $email_data, $subject, 'forgotpassword'); */
$settings = Settings::where('key', 'admin_email_address')->first();
$admin_email = $settings->value;
$login_url = web_url() . "/provider/signin";
$pattern = array('name' => $walker->first_name . " " . $walker->last_name, 'admin_eamil' => $admin_email, 'new_password' => $new_password, 'login_url' => $login_url);
$subject = "Your New Password";
email_notification($walker->id, 'walker', $pattern, $subject, 'forgot_password', "imp");
$response_array = array();
$response_array['success'] = true;
$response_code = 200;
$response = Response::json($response_array, $response_code);
return $response;
} else {
$response_array = array('success' => false, 'error' => 'This Email is not Registered', 'error_code' => 425);
$response_code = 200;
$response = Response::json($response_array, $response_code);
return $response;
}
} else {
$owner_data = Owner::where('email', $email)->first();
if ($owner_data) {
$owner = Owner::find($owner_data->id);
$new_password = time();
$new_password .= rand();
$new_password = sha1($new_password);
$new_password = substr($new_password, 0, 8);
$owner->password = Hash::make($new_password);
$owner->save();
/* $subject = "Your New Password";
$email_data = array();
$email_data['password'] = $new_password;
send_email($owner->id, 'owner', $email_data, $subject, 'forgotpassword'); */
$settings = Settings::where('key', 'admin_email_address')->first();
$admin_email = $settings->value;
$login_url = web_url() . "/user/signin";
$pattern = array('name' => $owner->first_name . " " . $owner->last_name, 'admin_eamil' => $admin_email, 'new_password' => $new_password, 'login_url' => $login_url);
$subject = "Your New Password";
email_notification($owner->id, 'owner', $pattern, $subject, 'forgot_password', "imp");
$response_array = array();
$response_array['success'] = true;
$response_code = 200;
$response = Response::json($response_array, $response_code);
return $response;
} else {
$response_array = array('success' => false, 'error' => 'This Email is not Registered', 'error_code' => 425);
$response_code = 200;
$response = Response::json($response_array, $response_code);
return $response;
}
}
}
示例14: display_element
/**
* Traverse elements to create list from elements.
*
* Display one element if the element doesn't have any children otherwise,
* display the element and its children. Will only traverse up to the max.
* depth and no ignore elements under that depth. It is possible to set the.
* max depth to include all depths, see walk() method.
*
* This method shouldn't be called directly, use the walk() method instead.
*
* @since 2.5.0
*
* @param object $element Data object
* @param array $children_elements List of elements to continue traversing.
* @param int $max_depth Max depth to traverse.
* @param int $depth Depth of current element.
* @param array $args
* @param string $output Passed by reference. Used to append additional content.
* @return null Null on failure with no changes to parameters.
*/
public function display_element($element, &$children_elements, $max_depth, $depth = 0, $args, &$output)
{
if (!$element || 0 === $element->count && !empty($args[0]['hide_empty'])) {
return;
}
parent::display_element($element, $children_elements, $max_depth, $depth, $args, $output);
}
示例15: walk
function walk($elements, $args = array())
{
$output = '';
$args = wp_parse_args($args, array('value' => 'slug', 'name' => 'lang_choice'));
if (!empty($args['flag'])) {
$current = wp_list_filter($elements, array($args['value'] => $args['selected']));
$lang = reset($current);
$output = sprintf('<span class="pll-select-flag">%s</span>', empty($lang->flag) ? esc_html($lang->slug) : $lang->flag);
}
$output .= sprintf('<select name="%1$s" %2$s%3$s%4$s>' . "\n" . '%5$s' . "\n" . '</select>' . "\n", $name = esc_attr($args['name']), isset($args['id']) && !$args['id'] ? '' : ' id="' . (empty($args['id']) ? $name : esc_attr($args['id'])) . '"', empty($args['class']) ? '' : ' class="' . esc_attr($args['class']) . '"', empty($args['disabled']) ? '' : ' disabled="disabled"', parent::walk($elements, -1, $args));
return $output;
}