├── .gitignore ├── img ├── clock.png ├── select2.png ├── summary.png ├── admin_icon.png ├── preloader.gif ├── select2x2.png ├── select-icons.png ├── admin_icon_full.png ├── checkboxes-bkg.png ├── radioselect-bkg.png ├── select2-spinner.gif ├── settings_icon.png ├── select-icons-date.png ├── select-icons-time.png └── settings_icon_full.png ├── less ├── sln-bootstrap.less └── bootstrap_scaffolding.less ├── src └── SLN │ ├── Helper │ ├── AvailabilityFuncs.php │ ├── AvailabilityItemNull.php │ ├── Availability │ │ ├── Basic │ │ │ └── DayBookings.php │ │ └── Advanced │ │ │ └── DayBookings.php │ └── AvailabilityItems.php │ ├── Action │ ├── Sms │ │ ├── Twilio │ │ │ ├── HttpException.php │ │ │ ├── Rest │ │ │ │ ├── Token.php │ │ │ │ ├── Addresses.php │ │ │ │ ├── Sandbox.php │ │ │ │ ├── Conferences.php │ │ │ │ ├── ConnectApp.php │ │ │ │ ├── Recordings.php │ │ │ │ ├── ShortCode.php │ │ │ │ ├── SmsMessage.php │ │ │ │ ├── UsageRecord.php │ │ │ │ ├── Application.php │ │ │ │ ├── Monitor │ │ │ │ │ ├── Alerts.php │ │ │ │ │ ├── Events.php │ │ │ │ │ ├── Alert.php │ │ │ │ │ └── Event.php │ │ │ │ ├── Notification.php │ │ │ │ ├── Notifications.php │ │ │ │ ├── Transcriptions.php │ │ │ │ ├── UsageTrigger.php │ │ │ │ ├── Lookups │ │ │ │ │ ├── PhoneNumber.php │ │ │ │ │ └── PhoneNumbers.php │ │ │ │ ├── Transcription.php │ │ │ │ ├── OutgoingCallerId.php │ │ │ │ ├── TaskRouter │ │ │ │ │ ├── Event.php │ │ │ │ │ ├── Events.php │ │ │ │ │ ├── Worker.php │ │ │ │ │ ├── Activity.php │ │ │ │ │ ├── Reservations.php │ │ │ │ │ ├── TaskQueue.php │ │ │ │ │ ├── Workflow.php │ │ │ │ │ ├── Reservation.php │ │ │ │ │ ├── TaskQueuesStatistics.php │ │ │ │ │ ├── WorkerStatistics.php │ │ │ │ │ ├── WorkersStatistics.php │ │ │ │ │ ├── WorkflowStatistics.php │ │ │ │ │ ├── TaskQueueStatistics.php │ │ │ │ │ ├── WorkspaceStatistics.php │ │ │ │ │ ├── Task.php │ │ │ │ │ ├── Workers.php │ │ │ │ │ ├── Workspaces.php │ │ │ │ │ ├── Tasks.php │ │ │ │ │ ├── Workspace.php │ │ │ │ │ ├── Workflows.php │ │ │ │ │ ├── TaskQueues.php │ │ │ │ │ └── Activities.php │ │ │ │ ├── AuthorizedConnectApp.php │ │ │ │ ├── DependentPhoneNumber.php │ │ │ │ ├── DependentPhoneNumbers.php │ │ │ │ ├── Pricing │ │ │ │ │ ├── VoiceCountry.php │ │ │ │ │ ├── VoiceNumber.php │ │ │ │ │ ├── PhoneNumberCountry.php │ │ │ │ │ ├── VoiceNumbers.php │ │ │ │ │ ├── VoiceCountries.php │ │ │ │ │ └── PhoneNumberCountries.php │ │ │ │ ├── AvailablePhoneNumber.php │ │ │ │ ├── Participant.php │ │ │ │ ├── Queue.php │ │ │ │ ├── Recording.php │ │ │ │ ├── ConnectApps.php │ │ │ │ ├── Conference.php │ │ │ │ ├── Address.php │ │ │ │ ├── AuthorizedConnectApps.php │ │ │ │ ├── ShortCodes.php │ │ │ │ ├── Applications.php │ │ │ │ ├── OutgoingCallerIds.php │ │ │ │ ├── Participants.php │ │ │ │ ├── SmsMessages.php │ │ │ │ ├── Queues.php │ │ │ │ ├── Sip.php │ │ │ │ ├── Tokens.php │ │ │ │ ├── Member.php │ │ │ │ ├── Credential.php │ │ │ │ ├── CredentialLists.php │ │ │ │ ├── IpAddress.php │ │ │ │ ├── Accounts.php │ │ │ │ ├── CredentialListMapping.php │ │ │ │ ├── IpAccessControlListMapping.php │ │ │ │ ├── CredentialListMappings.php │ │ │ │ ├── Domains.php │ │ │ │ ├── IpAccessControlLists.php │ │ │ │ ├── IpAccessControlListMappings.php │ │ │ │ ├── Credentials.php │ │ │ │ ├── Members.php │ │ │ │ ├── Feedback.php │ │ │ │ ├── CredentialList.php │ │ │ │ ├── FeedbackSummary.php │ │ │ │ ├── Account.php │ │ │ │ ├── MediaInstance.php │ │ │ │ ├── Media.php │ │ │ │ ├── IpAccessControlList.php │ │ │ │ ├── UsageRecords.php │ │ │ │ ├── IpAddresses.php │ │ │ │ ├── UsageTriggers.php │ │ │ │ └── Message.php │ │ │ ├── SIPListResource.php │ │ │ ├── PricingListResource.php │ │ │ ├── PricingInstanceResource.php │ │ │ ├── LookupsInstanceResource.php │ │ │ ├── MonitorInstanceResource.php │ │ │ ├── TaskRouterInstanceResource.php │ │ │ ├── MonitorListResource.php │ │ │ ├── TaskRouterListResource.php │ │ │ ├── UsageResource.php │ │ │ ├── NextGenInstanceResource.php │ │ │ ├── RequestValidator.php │ │ │ ├── NumberType.php │ │ │ ├── LICENSE │ │ │ ├── PartialApplicationHelper.php │ │ │ ├── TimeRangeResource.php │ │ │ ├── RestException.php │ │ │ └── LookupsListResource.php │ │ ├── Fake.php │ │ ├── Twilio.php │ │ ├── Abstract.php │ │ ├── Plivo.php │ │ ├── Ip1SmsWebservice.php │ │ └── Ip1SmsHttp.php │ ├── Ajax │ │ ├── RedirectException.php │ │ ├── Abstract.php │ │ ├── ResendNotification.php │ │ ├── SalonStep.php │ │ └── UpdateUser.php │ └── Install.php │ ├── Third │ └── google-api-php-client │ │ ├── gc.p12 │ │ ├── tests │ │ ├── README │ │ ├── general │ │ │ ├── testdata │ │ │ │ ├── cert.p12 │ │ │ │ ├── test.ini │ │ │ │ ├── privkey.pem │ │ │ │ ├── service-rsa-12345.json │ │ │ │ ├── cacert.json │ │ │ │ ├── cacert.pem │ │ │ │ ├── service-12345.json │ │ │ │ └── test_public_key.pem │ │ │ └── Http │ │ │ │ └── RequestTest.php │ │ ├── bootstrap.php │ │ ├── pagespeed │ │ │ └── PageSpeedTest.php │ │ └── urlshortener │ │ │ └── UrlShortenerTests.php │ │ ├── composer.json │ │ ├── src │ │ └── Google │ │ │ ├── Exception.php │ │ │ ├── Auth │ │ │ ├── Exception.php │ │ │ └── Abstract.php │ │ │ ├── Cache │ │ │ ├── Exception.php │ │ │ └── Null.php │ │ │ ├── Task │ │ │ ├── Exception.php │ │ │ └── Retryable.php │ │ │ ├── Logger │ │ │ ├── Exception.php │ │ │ └── Null.php │ │ │ ├── Signer │ │ │ └── Abstract.php │ │ │ ├── Verifier │ │ │ └── Abstract.php │ │ │ ├── autoload.php │ │ │ ├── Service.php │ │ │ └── Service │ │ │ ├── Genomics.php │ │ │ ├── Cloudsearch.php │ │ │ └── Playmoviespartner.php │ │ ├── examples │ │ └── index.php │ │ ├── autoload.php │ │ ├── .travis.yml │ │ └── phpunit.xml.dist │ ├── Wrapper │ ├── BookingAvailability.php │ ├── Abstract.php │ └── BookingAvailabilities.php │ ├── TaxonomyType │ └── Abstract.php │ ├── DateTime.php │ ├── Shortcode │ └── Salon │ │ ├── DateStep.php │ │ ├── AttendantStep.php │ │ ├── ServicesStep.php │ │ └── SecondaryStep.php │ ├── UserRole │ └── SalonStaff.php │ ├── Admin │ └── Calendar.php │ ├── PostType │ └── Abstract.php │ ├── Metabox │ ├── Abstract.php │ └── BookingActions.php │ └── Enum │ ├── TimeFormat.php │ ├── DateFormat.php │ ├── AvailabilityModeProvider.php │ └── BookingStatus.php ├── fonts ├── glyphicons-halflings-regular.eot ├── glyphicons-halflings-regular.ttf └── glyphicons-halflings-regular.woff ├── views ├── admin │ ├── _calendar_title.php │ └── _calendar_event.php ├── shortcode │ ├── _errors.php │ ├── salon_secondary.php │ ├── salon_attendant.php │ └── salon_services.php ├── mail │ ├── _footer.php │ ├── summary.php │ ├── payment_confirmed.php │ ├── summary_admin.php │ ├── status_canceled.php │ └── status_confirmed.php ├── trial │ ├── admin_end.php │ └── admin_near.php ├── sms │ ├── remind.php │ └── summary.php ├── metabox │ └── booking_actions.php ├── js │ └── calendar │ │ ├── week-days.html │ │ ├── events-list.html │ │ ├── month-day.html │ │ ├── year-month.html │ │ ├── modal.html │ │ ├── week.html │ │ ├── month.html │ │ └── year.html ├── settings │ └── tab_homepage.php └── admin_notices.php ├── languages ├── index.php └── readme.txt ├── bower.json ├── scss ├── _admin_config.scss └── _typo.scss ├── js ├── datepicker_language │ ├── bootstrap-datetimepicker.ja.js │ ├── bootstrap-datetimepicker.zh-CN.js │ ├── bootstrap-datetimepicker.zh-TW.js │ ├── bootstrap-datetimepicker.hr.js │ ├── bootstrap-datetimepicker.ko.js │ ├── bootstrap-datetimepicker.id.js │ ├── bootstrap-datetimepicker.ua.js │ ├── bootstrap-datetimepicker.ms.js │ ├── bootstrap-datetimepicker.he.js │ ├── bootstrap-datetimepicker.no.js │ ├── bootstrap-datetimepicker.tr.js │ ├── bootstrap-datetimepicker.bg.js │ ├── bootstrap-datetimepicker.ca.js │ ├── bootstrap-datetimepicker.da.js │ ├── bootstrap-datetimepicker.el.js │ ├── bootstrap-datetimepicker.rs.js │ ├── bootstrap-datetimepicker.sl.js │ ├── bootstrap-datetimepicker.sv.js │ ├── bootstrap-datetimepicker.th.js │ ├── bootstrap-datetimepicker.es.js │ ├── bootstrap-datetimepicker.nl.js │ ├── bootstrap-datetimepicker.rs-latin.js │ ├── bootstrap-datetimepicker.ru.js │ ├── bootstrap-datetimepicker.nb.js │ ├── bootstrap-datetimepicker.uk.js │ ├── bootstrap-datetimepicker.hu.js │ ├── bootstrap-datetimepicker.is.js │ ├── bootstrap-datetimepicker.ro.js │ ├── bootstrap-datetimepicker.ar.js │ ├── bootstrap-datetimepicker.pt-BR.js │ ├── bootstrap-datetimepicker.de.js │ ├── bootstrap-datetimepicker.fi.js │ ├── bootstrap-datetimepicker.sk.js │ ├── bootstrap-datetimepicker.fr.js │ ├── bootstrap-datetimepicker.pl.js │ ├── bootstrap-datetimepicker.it.js │ ├── bootstrap-datetimepicker.pt.js │ ├── bootstrap-datetimepicker.lv.js │ ├── bootstrap-datetimepicker.cs.js │ ├── bootstrap-datetimepicker.ee.js │ ├── bootstrap-datetimepicker.lt.js │ └── bootstrap-datetimepicker.sw.js └── calendar_language │ ├── ko-KR.js │ └── no-NO.js └── salon.php /.gitignore: -------------------------------------------------------------------------------- 1 | bower_components 2 | log.txt 3 | node_modules 4 | nbproject 5 | *.scssc 6 | -------------------------------------------------------------------------------- /img/clock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wp-plugins/salon-booking-system/HEAD/img/clock.png -------------------------------------------------------------------------------- /less/sln-bootstrap.less: -------------------------------------------------------------------------------- 1 | #sln-salon { 2 | @import (less) url("../css/bootstrap.css"); 3 | } -------------------------------------------------------------------------------- /img/select2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wp-plugins/salon-booking-system/HEAD/img/select2.png -------------------------------------------------------------------------------- /img/summary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wp-plugins/salon-booking-system/HEAD/img/summary.png -------------------------------------------------------------------------------- /img/admin_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wp-plugins/salon-booking-system/HEAD/img/admin_icon.png -------------------------------------------------------------------------------- /img/preloader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wp-plugins/salon-booking-system/HEAD/img/preloader.gif -------------------------------------------------------------------------------- /img/select2x2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wp-plugins/salon-booking-system/HEAD/img/select2x2.png -------------------------------------------------------------------------------- /src/SLN/Helper/AvailabilityFuncs.php: -------------------------------------------------------------------------------- 1 | getDisplayName()?> 2 | getStartsAt()->format('d/m/Y h:i') ?> 3 | (getServices()) ?>) 4 | 5 | -------------------------------------------------------------------------------- /languages/index.php: -------------------------------------------------------------------------------- 1 | update('Muted', 'true'); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /views/admin/_calendar_event.php: -------------------------------------------------------------------------------- 1 | getDisplayName()?>| 2 | getStartsAt()->format('d/m/Y') ?>| 3 | getStartsAt()->format('H:i') ?> 4 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/Rest/Queue.php: -------------------------------------------------------------------------------- 1 | setupSubresources('members'); 8 | } 9 | } 10 | 11 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/Rest/Recording.php: -------------------------------------------------------------------------------- 1 | setupSubresources('transcriptions'); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/Rest/TaskRouter/Task.php: -------------------------------------------------------------------------------- 1 | setupSubresources('reservations'); 7 | } 8 | 9 | } 10 | -------------------------------------------------------------------------------- /views/shortcode/_errors.php: -------------------------------------------------------------------------------- 1 | 2 |
3 | 8 |
9 | -------------------------------------------------------------------------------- /bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "wordpress-plugin-salon", 3 | "private": "true", 4 | "dependencies": { 5 | "bootstrap": "3.2.*", 6 | "bootstrap-calendar": "0.2.4", 7 | "smalot-bootstrap-datetimepicker": "2.3.0" 8 | }, 9 | "resolutions": { 10 | "bootstrap": "3.2.*" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/Rest/ConnectApps.php: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Fake.php: -------------------------------------------------------------------------------- 1 | setupSubresources( 9 | 'participants' 10 | ); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/Rest/Address.php: -------------------------------------------------------------------------------- 1 | setupSubresources( 9 | 'dependent_phone_numbers' 10 | ); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/Rest/AuthorizedConnectApps.php: -------------------------------------------------------------------------------- 1 | plugin = $plugin; 11 | } 12 | 13 | abstract public function execute(); 14 | } 15 | -------------------------------------------------------------------------------- /views/trial/admin_end.php: -------------------------------------------------------------------------------- 1 |
2 |

3 | 4 | Please upgrade Salon Booking to a Premium version

','sln');?> 5 |
6 | 7 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/Rest/ShortCodes.php: -------------------------------------------------------------------------------- 1 | $name 10 | ) + $params); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/Rest/TaskRouter/Workers.php: -------------------------------------------------------------------------------- 1 | $phoneNumber, 10 | ) + $params); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/Rest/Participants.php: -------------------------------------------------------------------------------- 1 | 2 |

3 | 4 | Please upgrade Salon Booking to a Premium version

','sln');?> 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/Rest/Pricing/VoiceNumbers.php: -------------------------------------------------------------------------------- 1 | instance_name($this->client, $this->uri . "/$number"); 8 | $instance->number = $number; 9 | return $instance; 10 | } 11 | } -------------------------------------------------------------------------------- /views/sms/remind.php: -------------------------------------------------------------------------------- 1 | getId() 7 | . ' ' . $plugin->format()->date($booking->getDate()) 8 | . ' ' . $plugin->format()->time($booking->getTime()) 9 | . ' ' . $booking->getFirstname() . ' ' . $booking->getLastname(); 10 | -------------------------------------------------------------------------------- /src/SLN/Wrapper/BookingAvailability.php: -------------------------------------------------------------------------------- 1 | data = $data; 10 | } 11 | 12 | public function toArray() 13 | { 14 | return $this->data; 15 | } 16 | 17 | public function getIntervals() 18 | { 19 | 20 | } 21 | } -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/Rest/TaskRouter/Tasks.php: -------------------------------------------------------------------------------- 1 | 6 |

7 | 8 | 10 |
11 | 12 | -------------------------------------------------------------------------------- /src/SLN/Wrapper/Abstract.php: -------------------------------------------------------------------------------- 1 | object = $object; 13 | } 14 | 15 | function getId() 16 | { 17 | return $this->object->ID; 18 | } 19 | } -------------------------------------------------------------------------------- /views/js/calendar/week-days.html: -------------------------------------------------------------------------------- 1 | <% _.each(events, function(event){ %> 2 |
3 |
4 | <%= event.title %> 5 |
6 |
7 | <% }); %> 8 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/Rest/TaskRouter/Workspace.php: -------------------------------------------------------------------------------- 1 | setupSubresources( 8 | 'activities', 9 | 'events', 10 | 'tasks', 11 | 'task_queues', 12 | 'workers', 13 | 'workflows' 14 | ); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/SIPListResource.php: -------------------------------------------------------------------------------- 1 | getFirstname() . ' ' . $booking->getLastname() 8 | . __(' has booked at ','sln') . $plugin->getSettings()->getSalonName() . __(' on ','sln') 9 | . ' ' . $plugin->format()->date($booking->getDate()) 10 | . ' ' . $plugin->format()->time($booking->getTime()) 11 | . ' - ' .$booking->getId(); 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/PricingListResource.php: -------------------------------------------------------------------------------- 1 | getResourceName(true); 6 | 7 | if (!isset($this->instance_name)) { 8 | $this->instance_name = 'Services_Twilio_Rest_Pricing_'. rtrim($name, 's'); 9 | } 10 | 11 | parent::__construct($client, $uri); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/Rest/TaskRouter/Workflows.php: -------------------------------------------------------------------------------- 1 | 2 |
3 |

This operation can\'t be undone.', 'sln'); ?>

4 |
5 | 8 |
9 | 10 | -------------------------------------------------------------------------------- /views/mail/summary.php: -------------------------------------------------------------------------------- 1 | getEmail(); 8 | } 9 | 10 | $data['subject'] = 'New booking ' 11 | .' '. $plugin->format()->date($booking->getDate()) 12 | . ' - ' . $plugin->format()->time($booking->getTime()); 13 | $forAdmin = false; 14 | include dirname(__FILE__) . '/_header.php'; 15 | include dirname(__FILE__) . '/_summary_content.php'; 16 | include dirname(__FILE__) . '/_footer.php'; 17 | -------------------------------------------------------------------------------- /views/js/calendar/events-list.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | 13 |
14 | -------------------------------------------------------------------------------- /scss/_admin_config.scss: -------------------------------------------------------------------------------- 1 | $cl_main: #004664; 2 | $cl_main--medium: #4c7186; 3 | $cl_main--light: #c7dff3; 4 | $cl_main--emphasis: #0C6EB6; 5 | $cl_problem: #D22221; 6 | $cl_problem--light: #e63f24; 7 | $cl_warning: #f5b025; 8 | $cl_warning--light: #f7c65f; 9 | $cl_ok: #5bc24c; 10 | 11 | 12 | $browser-context: 16; 13 | 14 | @function em($pixels, $context: $browser-context) { 15 | @if (unitless($pixels)) { 16 | $pixels: $pixels * 1px; 17 | } 18 | 19 | @if (unitless($context)) { 20 | $context: $context * 1px; 21 | } 22 | 23 | @return $pixels / $context * 1em; 24 | } -------------------------------------------------------------------------------- /src/SLN/Third/google-api-php-client/tests/general/testdata/privkey.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIIBOwIBAAJBAM4Aozh3TMZYcPx7MHlnD8MtyVUjzo6OdT32JwRHzHHNMMm88lNV 3 | fLYIT9C/jgXlDqG0h5wSClMvTQbdihNdFOkCAwEAAQJBAJuMo7KpcpF6iqY7Jtkk 4 | 1yQb2KCvTvMZ4rGMwt1akaeDW2noyqCeO675gFBtlizgcRsybealQVQgGX4E5VqF 5 | UJkCIQDzJZZi2jloDXcyyy2rEa4mj4RnrnIYsDMJ55XMWJ9c9wIhANjkY97FSRX3 6 | WSdRFqXd3Pc4URUho+rCcPibafMOwAUfAiAa58ngXm2DyhmqkTkYePhgY/kuz+ro 7 | OHctXWcCGbxouQIgLC5qAakieC0Ipi+oc2U8a8e3DJzrrRiqtpnB/VcV2nUCIQC2 8 | DXrpyt6jjVIzs4jI5Cl3QGLL6TZ8FqpyonU/1ARuhA== 9 | -----END RSA PRIVATE KEY----- -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/PricingInstanceResource.php: -------------------------------------------------------------------------------- 1 | subresources[$name] = new $type( 10 | $this->client, $this->uri . "/$constantized" 11 | ); 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/LookupsInstanceResource.php: -------------------------------------------------------------------------------- 1 | subresources[$name] = new $type( 10 | $this->client, $this->uri . "/$constantized" 11 | ); 12 | } 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/MonitorInstanceResource.php: -------------------------------------------------------------------------------- 1 | subresources[$name] = new $type( 10 | $this->client, $this->uri . "/$constantized" 11 | ); 12 | } 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/Rest/SmsMessages.php: -------------------------------------------------------------------------------- 1 | $from, 14 | 'To' => $to, 15 | 'Body' => $body 16 | ) + $params); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/Rest/TaskRouter/Activities.php: -------------------------------------------------------------------------------- 1 | instance_name = "Services_Twilio_Rest_TaskRouter_Activity"; 7 | parent::__construct($client, $uri); 8 | } 9 | 10 | public function create($friendlyName, $available) { 11 | $params['FriendlyName'] = $friendlyName; 12 | $params['Available'] = $available; 13 | return parent::_create($params); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/TaskRouterInstanceResource.php: -------------------------------------------------------------------------------- 1 | subresources[$name] = new $type( 10 | $this->client, $this->uri . "/$constantized" 11 | ); 12 | } 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /languages/readme.txt: -------------------------------------------------------------------------------- 1 | ******************************************************** 2 | 3 | Salon Booking System I18n 4 | ============================ 5 | 6 | Do not put your custom translations here. They will be deleted 7 | on Salon booking system updates. 8 | 9 | Keep custom salon-booking-system translations in /wp-content/languages/plugins/ 10 | 11 | If you want to translate, help, or improve a translation please visit: 12 | 13 | https://www.transifex.com/projects/p/salon-booking-system/ 14 | 15 | 16 | 17 | 18 | 19 | ******************************************************** 20 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/Rest/Queues.php: -------------------------------------------------------------------------------- 1 | $friendly_name, 16 | ) + $params); 17 | } 18 | } 19 | 20 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/Rest/Sip.php: -------------------------------------------------------------------------------- 1 | setupSubresources( 10 | 'domains', 11 | 'ip_access_control_lists', 12 | 'credential_lists' 13 | ); 14 | } 15 | 16 | public function getResourceName($camelized = false) { 17 | return "SIP"; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /views/shortcode/salon_secondary.php: -------------------------------------------------------------------------------- 1 | getBookingBuilder(); 9 | $services = $step->getServices(); 10 | ?> 11 |

12 |
13 | 14 | 15 |
16 | -------------------------------------------------------------------------------- /views/shortcode/salon_attendant.php: -------------------------------------------------------------------------------- 1 | getBookingBuilder(); 9 | $attendants = $step->getAttendants(); 10 | ?> 11 |

12 |
13 | 14 | 15 |
16 | -------------------------------------------------------------------------------- /views/mail/payment_confirmed.php: -------------------------------------------------------------------------------- 1 | getEmail(); 7 | $data['subject'] = 'Payment for booking #'.$booking->getId().' has been confirmed'; 8 | include dirname(__FILE__).'/_header.php'; 9 | ?> 10 |

11 | getFirstname()) . ' ' . esc_attr($booking->getLastname()); ?> 12 |
13 | 14 |

15 | 18 | -------------------------------------------------------------------------------- /js/datepicker_language/bootstrap-datetimepicker.ja.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Japanese translation for bootstrap-datetimepicker 3 | * Norio Suzuki 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['ja'] = { 7 | days: ["日曜", "月曜", "火曜", "水曜", "木曜", "金曜", "土曜", "日曜"], 8 | daysShort: ["日", "月", "火", "水", "木", "金", "土", "日"], 9 | daysMin: ["日", "月", "火", "水", "木", "金", "土", "日"], 10 | months: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"], 11 | monthsShort: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"], 12 | today: "今日", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); 17 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/Rest/Tokens.php: -------------------------------------------------------------------------------- 1 | account->tokens->create(array( 13 | * "Ttl" => 100, 14 | * )); 15 | * 16 | * :param array $params: a single array of parameters which is serialized and 17 | * sent directly to the Twilio API. 18 | * 19 | */ 20 | public function create($params = array()) { 21 | return parent::_create($params); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /views/js/calendar/month-day.html: -------------------------------------------------------------------------------- 1 |
2 | <%= day %> 3 | <% if (events.length > 0) { %> 4 |
5 | <% _.each(events, function(event) { %> 6 | 9 | <% }); %> 10 |
11 | <% } %> 12 |
13 | -------------------------------------------------------------------------------- /js/datepicker_language/bootstrap-datetimepicker.zh-CN.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Simplified Chinese translation for bootstrap-datetimepicker 3 | * Yuan Cheung 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['zh-CN'] = { 7 | days: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"], 8 | daysShort: ["周日", "周一", "周二", "周三", "周四", "周五", "周六", "周日"], 9 | daysMin: ["日", "一", "二", "三", "四", "五", "六", "日"], 10 | months: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], 11 | monthsShort: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], 12 | today: "今天", 13 | suffix: [], 14 | meridiem: ["上午", "下午"] 15 | }; 16 | }(jQuery)); 17 | -------------------------------------------------------------------------------- /js/datepicker_language/bootstrap-datetimepicker.zh-TW.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Traditional Chinese translation for bootstrap-datetimepicker 3 | * Rung-Sheng Jang 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['zh-TW'] = { 7 | days: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"], 8 | daysShort: ["周日", "周一", "周二", "周三", "周四", "周五", "周六", "周日"], 9 | daysMin: ["日", "一", "二", "三", "四", "五", "六", "日"], 10 | months: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], 11 | monthsShort: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], 12 | today: "今天", 13 | suffix: [], 14 | meridiem: ["上午", "下午"] 15 | }; 16 | }(jQuery)); 17 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/Rest/Member.php: -------------------------------------------------------------------------------- 1 | $url, 19 | 'Method' => $method, 20 | )); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/SLN/Third/google-api-php-client/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "google/apiclient", 3 | "type": "library", 4 | "description": "Client library for Google APIs", 5 | "keywords": ["google"], 6 | "homepage": "http://developers.google.com/api-client-library/php", 7 | "license": "Apache-2.0", 8 | "require": { 9 | "php": ">=5.2.1" 10 | }, 11 | "require-dev": { 12 | "phpunit/phpunit": "3.7.*", 13 | "squizlabs/php_codesniffer": "~2.3" 14 | }, 15 | "autoload": { 16 | "classmap": [ 17 | "src/" 18 | ] 19 | }, 20 | "extra": { 21 | "branch-alias": { 22 | "dev-master": "1.1.x-dev" 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /views/js/calendar/year-month.html: -------------------------------------------------------------------------------- 1 | <%= month_name %> 2 | <% if (events.length > 0) { %> 3 | <%= events.length %> 4 |
5 | <% _.each(events, function(event) { %> 6 | 9 | <% }); %> 10 |
11 | <% } %> 12 | -------------------------------------------------------------------------------- /js/datepicker_language/bootstrap-datetimepicker.hr.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Croatian localisation 3 | */ 4 | ;(function($){ 5 | $.fn.datetimepicker.dates['hr'] = { 6 | days: ["Nedjelja", "Ponedjelja", "Utorak", "Srijeda", "Četrtak", "Petak", "Subota", "Nedjelja"], 7 | daysShort: ["Ned", "Pon", "Uto", "Srr", "Čet", "Pet", "Sub", "Ned"], 8 | daysMin: ["Ne", "Po", "Ut", "Sr", "Če", "Pe", "Su", "Ne"], 9 | months: ["Siječanj", "Veljača", "Ožujak", "Travanj", "Svibanj", "Lipanj", "Srpanj", "Kolovoz", "Rujan", "Listopad", "Studeni", "Prosinac"], 10 | monthsShort: ["Sije", "Velj", "Ožu", "Tra", "Svi", "Lip", "Jul", "Kol", "Ruj", "Lis", "Stu", "Pro"], 11 | today: "Danas", 12 | suffix: [], 13 | meridiem: [] 14 | }; 15 | }(jQuery)); 16 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio.php: -------------------------------------------------------------------------------- 1 | getAccount(), $this->getPassword()); 12 | // $client->account->messages->sendMessage( 13 | // $this->getFrom(), 14 | // $this->processTo($to), 15 | // $message 16 | // ); 17 | $client->account->sms_messages->create( 18 | $this->getFrom(), 19 | $this->processTo($to), 20 | $message 21 | ); 22 | } 23 | } -------------------------------------------------------------------------------- /src/SLN/Wrapper/BookingAvailabilities.php: -------------------------------------------------------------------------------- 1 | items = new SLN_Wrapper_Availability($row); 11 | } 12 | } 13 | 14 | public function getItems() 15 | { 16 | return $this->items; 17 | } 18 | 19 | public function toArray() 20 | { 21 | $ret = array(); 22 | foreach ($this->items as $item) { 23 | $ret[] = $item->toArray(); 24 | } 25 | 26 | return $ret; 27 | } 28 | 29 | public function toStrings() 30 | { 31 | 32 | } 33 | } -------------------------------------------------------------------------------- /views/mail/summary_admin.php: -------------------------------------------------------------------------------- 1 | getSettings()->get('attendant_email') 8 | && ($attendant = $booking->getAttendant()) 9 | && ($email = $attendant->getEmail()) 10 | ) { 11 | $data['to'] = array($data['to'], $email); 12 | } 13 | $data['subject'] = 'New booking for ' 14 | . $plugin->format()->date($booking->getDate()) 15 | . ' - ' . $plugin->format()->time($booking->getTime()); 16 | $forAdmin = true; 17 | include dirname(__FILE__) . '/_header.php'; 18 | include dirname(__FILE__) . '/_summary_content.php'; 19 | include dirname(__FILE__) . '/_footer.php'; 20 | -------------------------------------------------------------------------------- /js/datepicker_language/bootstrap-datetimepicker.ko.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Korean translation for bootstrap-datetimepicker 3 | * Gu Youn 4 | * Baekjoon Choi 5 | */ 6 | ;(function($){ 7 | $.fn.datetimepicker.dates['ko'] = { 8 | days: ["일요일", "월요일", "화요일", "수요일", "목요일", "금요일", "토요일", "일요일"], 9 | daysShort: ["일", "월", "화", "수", "목", "금", "토", "일"], 10 | daysMin: ["일", "월", "화", "수", "목", "금", "토", "일"], 11 | months: ["1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"], 12 | monthsShort: ["1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"], 13 | suffix: [], 14 | meridiem: ["오전", "오후"], 15 | today: "오늘", 16 | }; 17 | }(jQuery)); 18 | -------------------------------------------------------------------------------- /views/shortcode/salon_services.php: -------------------------------------------------------------------------------- 1 | getBookingBuilder(); 9 | $currencySymbol = $plugin->getSettings()->getCurrencySymbol(); 10 | $services = $step->getServices(); 11 | ?> 12 |

13 | 14 |
15 | 16 | 17 |
18 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/MonitorListResource.php: -------------------------------------------------------------------------------- 1 | getResourceName(true); 7 | /* 8 | * By default trim the 's' from the end of the list name to get the 9 | * instance name (ex Accounts -> Account). This behavior can be 10 | * overridden by child classes if the rule doesn't work. 11 | */ 12 | if (!isset($this->instance_name)) { 13 | $this->instance_name = "Services_Twilio_Rest_Monitor_" . rtrim($name, 's'); 14 | } 15 | 16 | parent::__construct($client, $uri); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /js/datepicker_language/bootstrap-datetimepicker.id.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Bahasa translation for bootstrap-datetimepicker 3 | * Azwar Akbar 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['id'] = { 7 | days: ["Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu", "Minggu"], 8 | daysShort: ["Mgu", "Sen", "Sel", "Rab", "Kam", "Jum", "Sab", "Mgu"], 9 | daysMin: ["Mg", "Sn", "Sl", "Ra", "Ka", "Ju", "Sa", "Mg"], 10 | months: ["Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember"], 11 | monthsShort: ["Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Ags", "Sep", "Okt", "Nov", "Des"], 12 | suffix: [], 13 | meridiem: [] 14 | }; 15 | }(jQuery)); 16 | -------------------------------------------------------------------------------- /js/datepicker_language/bootstrap-datetimepicker.ua.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ukrainian translation for bootstrap-datepicker 3 | * Igor Polynets 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['ua'] = { 7 | days: ["Неділя", "Понеділок", "Вівторок", "Середа", "Четверг", "П'ятниця", "Субота", "Неділя"], 8 | daysShort: ["Нед", "Пнд", "Втр", "Срд", "Чтв", "Птн", "Суб", "Нед"], 9 | daysMin: ["Нд", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб", "Нд"], 10 | months: ["Cічень", "Лютий", "Березень", "Квітень", "Травень", "Червень", "Липень", "Серпень", "Вересень", "Жовтень", "Листопад", "Грудень"], 11 | monthsShort: ["Січ", "Лют", "Бер", "Квт", "Трв", "Чер", "Лип", "Сер", "Вер", "Жов", "Лис", "Грд"], 12 | today: "Сьогодні", 13 | weekStart: 1 14 | }; 15 | }(jQuery)); 16 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/Rest/Credential.php: -------------------------------------------------------------------------------- 1 | getResourceName(true); 7 | /* 8 | * By default trim the 's' from the end of the list name to get the 9 | * instance name (ex Accounts -> Account). This behavior can be 10 | * overridden by child classes if the rule doesn't work. 11 | */ 12 | if (!isset($this->instance_name)) { 13 | $this->instance_name = "Services_Twilio_Rest_TaskRouter_" . rtrim($name, 's'); 14 | } 15 | 16 | parent::__construct($client, $uri); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /less/bootstrap_scaffolding.less: -------------------------------------------------------------------------------- 1 | .sln-bootstrap{ 2 | // 3 | // Scaffolding 4 | // -------------------------------------------------- 5 | 6 | 7 | // Reset the box-sizing 8 | // 9 | // Heads up! This reset may cause conflicts with some third-party widgets. 10 | // For recommendations on resolving such conflicts, see 11 | // http://getbootstrap.com/getting-started/#third-box-sizing 12 | * { 13 | .box-sizing(border-box); 14 | } 15 | *:before, 16 | *:after { 17 | .box-sizing(border-box); 18 | } 19 | // Links 20 | 21 | a { 22 | color: @link-color; 23 | text-decoration: none; 24 | 25 | &:hover, 26 | &:focus { 27 | color: @link-hover-color; 28 | text-decoration: underline; 29 | } 30 | 31 | &:focus { 32 | .tab-focus(); 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/SLN/TaxonomyType/Abstract.php: -------------------------------------------------------------------------------- 1 | plugin = $plugin; 12 | $this->taxonomyType = $taxonomyType; 13 | $this->postTypes = $postTypes; 14 | add_action('init', array($this, 'init')); 15 | add_action( 'admin_menu', array($this, 'initAdmin')); 16 | } 17 | 18 | public function init() 19 | { 20 | register_taxonomy( $this->taxonomyType, $this->postTypes, $this->getTaxonomyTypeArgs() ); 21 | } 22 | abstract protected function getTaxonomyTypeArgs(); 23 | } 24 | -------------------------------------------------------------------------------- /views/admin_notices.php: -------------------------------------------------------------------------------- 1 |
2 |

3 | 4 | A new "Salon" section has been created into the left sidebar
There you can find "Services", "Bookings", "Settings" sections
We have also created "services" and "bookings" for demo purpose. Feel free to delete them
Go to "Salon > Settings" section in order to set your own salon booking system

','sln');?> 5 | 6 |

7 | 9 | 10 |

11 |
12 | -------------------------------------------------------------------------------- /js/datepicker_language/bootstrap-datetimepicker.ms.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Malay translation for bootstrap-datetimepicker 3 | * Ateman Faiz 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['ms'] = { 7 | days: ["Ahad", "Isnin", "Selasa", "Rabu", "Khamis", "Jumaat", "Sabtu", "Ahad"], 8 | daysShort: ["Aha", "Isn", "Sel", "Rab", "Kha", "Jum", "Sab", "Aha"], 9 | daysMin: ["Ah", "Is", "Se", "Ra", "Kh", "Ju", "Sa", "Ah"], 10 | months: ["Januari", "Februari", "Mac", "April", "Mei", "Jun", "Julai", "Ogos", "September", "Oktober", "November", "Disember"], 11 | monthsShort: ["Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Ogo", "Sep", "Okt", "Nov", "Dis"], 12 | today: "Hari Ini", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); 17 | -------------------------------------------------------------------------------- /js/datepicker_language/bootstrap-datetimepicker.he.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Hebrew translation for bootstrap-datetimepicker 3 | * Sagie Maoz 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['he'] = { 7 | days: ["ראשון", "שני", "שלישי", "רביעי", "חמישי", "שישי", "שבת", "ראשון"], 8 | daysShort: ["א", "ב", "ג", "ד", "ה", "ו", "ש", "א"], 9 | daysMin: ["א", "ב", "ג", "ד", "ה", "ו", "ש", "א"], 10 | months: ["ינואר", "פברואר", "מרץ", "אפריל", "מאי", "יוני", "יולי", "אוגוסט", "ספטמבר", "אוקטובר", "נובמבר", "דצמבר"], 11 | monthsShort: ["ינו", "פבר", "מרץ", "אפר", "מאי", "יונ", "יול", "אוג", "ספט", "אוק", "נוב", "דצמ"], 12 | today: "היום", 13 | suffix: [], 14 | meridiem: [], 15 | rtl: true 16 | }; 17 | }(jQuery)); 18 | -------------------------------------------------------------------------------- /js/datepicker_language/bootstrap-datetimepicker.no.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Norwegian translation for bootstrap-datetimepicker 3 | * Rune Warhuus 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['no'] = { 7 | days: ["Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag", "Søndag"], 8 | daysShort: ["Søn", "Man", "Tir", "Ons", "Tor", "Fre", "Lør", "Søn"], 9 | daysMin: ["Sø", "Ma", "Ti", "On", "To", "Fr", "Lø", "Sø"], 10 | months: ["Januar", "Februar", "Mars", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Desember"], 11 | monthsShort: ["Jan", "Feb", "Mar", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Des"], 12 | today: "I Dag", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); 17 | -------------------------------------------------------------------------------- /js/datepicker_language/bootstrap-datetimepicker.tr.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Turkish translation for bootstrap-datetimepicker 3 | * Serkan Algur 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['tr'] = { 7 | days: ["Pazar", "Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma", "Cumartesi", "Pazar"], 8 | daysShort: ["Pz", "Pzt", "Sal", "Çrş", "Prş", "Cu", "Cts", "Pz"], 9 | daysMin: ["Pz", "Pzt", "Sa", "Çr", "Pr", "Cu", "Ct", "Pz"], 10 | months: ["Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık"], 11 | monthsShort: ["Oca", "Şub", "Mar", "Nis", "May", "Haz", "Tem", "Ağu", "Eyl", "Eki", "Kas", "Ara"], 12 | today: "Bugün", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); 17 | 18 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/UsageResource.php: -------------------------------------------------------------------------------- 1 | 6 | * @license http://creativecommons.org/licenses/MIT/ MIT 7 | * @link http://pear.php.net/package/Services_Twilio 8 | */ 9 | class Services_Twilio_UsageResource extends Services_Twilio_ListResource { 10 | public function getResourceName($camelized = false) { 11 | $this->instance_name = 'Services_Twilio_Rest_UsageRecord'; 12 | return $camelized ? 'UsageRecords' : 'usage_records'; 13 | } 14 | 15 | public function __construct($client, $uri) { 16 | $uri = preg_replace("#UsageRecords#", "Usage/Records", $uri); 17 | parent::__construct($client, $uri); 18 | } 19 | } 20 | 21 | -------------------------------------------------------------------------------- /src/SLN/Third/google-api-php-client/src/Google/Exception.php: -------------------------------------------------------------------------------- 1 | getEmail(); 8 | } 9 | if ($plugin->getSettings()->get('attendant_email') 10 | && ($attendant = $booking->getAttendant()) 11 | && ($email = $attendant->getEmail()) 12 | ) { 13 | $data['to'] = array($data['to'], $email); 14 | } 15 | 16 | $data['subject'] = __('Booking Canceled','sln') 17 | . ' ' . $plugin->format()->date($booking->getDate()) 18 | . ' - ' . $plugin->format()->time($booking->getTime()); 19 | 20 | include dirname(__FILE__).'/_header.php'; 21 | include dirname(__FILE__).'/_summary_content.php'; 22 | include dirname(__FILE__).'/_footer.php'; -------------------------------------------------------------------------------- /js/datepicker_language/bootstrap-datetimepicker.bg.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Bulgarian translation for bootstrap-datetimepicker 3 | * Apostol Apostolov 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['bg'] = { 7 | days: ["Неделя", "Понеделник", "Вторник", "Сряда", "Четвъртък", "Петък", "Събота", "Неделя"], 8 | daysShort: ["Нед", "Пон", "Вто", "Сря", "Чет", "Пет", "Съб", "Нед"], 9 | daysMin: ["Н", "П", "В", "С", "Ч", "П", "С", "Н"], 10 | months: ["Януари", "Февруари", "Март", "Април", "Май", "Юни", "Юли", "Август", "Септември", "Октомври", "Ноември", "Декември"], 11 | monthsShort: ["Ян", "Фев", "Мар", "Апр", "Май", "Юни", "Юли", "Авг", "Сеп", "Окт", "Ное", "Дек"], 12 | today: "днес", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); 17 | -------------------------------------------------------------------------------- /js/datepicker_language/bootstrap-datetimepicker.ca.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Catalan translation for bootstrap-datetimepicker 3 | * J. Garcia 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['ca'] = { 7 | days: ["Diumenge", "Dilluns", "Dimarts", "Dimecres", "Dijous", "Divendres", "Dissabte", "Diumenge"], 8 | daysShort: ["Diu", "Dil", "Dmt", "Dmc", "Dij", "Div", "Dis", "Diu"], 9 | daysMin: ["dg", "dl", "dt", "dc", "dj", "dv", "ds", "dg"], 10 | months: ["Gener", "Febrer", "Març", "Abril", "Maig", "Juny", "Juliol", "Agost", "Setembre", "Octubre", "Novembre", "Desembre"], 11 | monthsShort: ["Gen", "Feb", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Oct", "Nov", "Des"], 12 | today: "Avui", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); 17 | -------------------------------------------------------------------------------- /js/datepicker_language/bootstrap-datetimepicker.da.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Danish translation for bootstrap-datetimepicker 3 | * Christian Pedersen 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['da'] = { 7 | days: ["Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag", "Søndag"], 8 | daysShort: ["Søn", "Man", "Tir", "Ons", "Tor", "Fre", "Lør", "Søn"], 9 | daysMin: ["Sø", "Ma", "Ti", "On", "To", "Fr", "Lø", "Sø"], 10 | months: ["Januar", "Februar", "Marts", "April", "Maj", "Juni", "Juli", "August", "September", "Oktober", "November", "December"], 11 | monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"], 12 | today: "I Dag", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); -------------------------------------------------------------------------------- /js/datepicker_language/bootstrap-datetimepicker.el.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Greek translation for bootstrap-datetimepicker 3 | */ 4 | ;(function($){ 5 | $.fn.datetimepicker.dates['el'] = { 6 | days: ["Κυριακή", "Δευτέρα", "Τρίτη", "Τετάρτη", "Πέμπτη", "Παρασκευή", "Σάββατο", "Κυριακή"], 7 | daysShort: ["Κυρ", "Δευ", "Τρι", "Τετ", "Πεμ", "Παρ", "Σαβ", "Κυρ"], 8 | daysMin: ["Κυ", "Δε", "Τρ", "Τε", "Πε", "Πα", "Σα", "Κυ"], 9 | months: ["Ιανουάριος", "Φεβρουάριος", "Μάρτιος", "Απρίλιος", "Μάιος", "Ιούνιος", "Ιούλιος", "Αύγουστος", "Σεπτέμβριος", "Οκτώβριος", "Νοέμβριος", "Δεκέμβριος"], 10 | monthsShort: ["Ιαν", "Φεβ", "Μαρ", "Απρ", "Μάι", "Ιουν", "Ιουλ", "Αυγ", "Σεπ", "Οκτ", "Νοε", "Δεκ"], 11 | today: "Σήμερα", 12 | suffix: [], 13 | meridiem: [] 14 | }; 15 | }(jQuery)); -------------------------------------------------------------------------------- /js/datepicker_language/bootstrap-datetimepicker.rs.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Serbian cyrillic translation for bootstrap-datetimepicker 3 | * Bojan Milosavlević 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['rs'] = { 7 | days: ["Недеља","Понедељак", "Уторак", "Среда", "Четвртак", "Петак", "Субота", "Недеља"], 8 | daysShort: ["Нед", "Пон", "Уто", "Сре", "Чет", "Пет", "Суб", "Нед"], 9 | daysMin: ["Н", "По", "У", "Ср", "Ч", "Пе", "Су", "Н"], 10 | months: ["Јануар", "Фебруар", "Март", "Април", "Мај", "Јун", "Јул", "Август", "Септембар", "Октобар", "Новембар", "Децембар"], 11 | monthsShort: ["Јан", "Феб", "Мар", "Апр", "Мај", "Јун", "Јул", "Авг", "Сеп", "Окт", "Нов", "Дец"], 12 | today: "Данас", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); 17 | -------------------------------------------------------------------------------- /js/datepicker_language/bootstrap-datetimepicker.sl.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Slovene translation for bootstrap-datetimepicker 3 | * Gregor Rudolf 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['sl'] = { 7 | days: ["Nedelja", "Ponedeljek", "Torek", "Sreda", "Četrtek", "Petek", "Sobota", "Nedelja"], 8 | daysShort: ["Ned", "Pon", "Tor", "Sre", "Čet", "Pet", "Sob", "Ned"], 9 | daysMin: ["Ne", "Po", "To", "Sr", "Če", "Pe", "So", "Ne"], 10 | months: ["Januar", "Februar", "Marec", "April", "Maj", "Junij", "Julij", "Avgust", "September", "Oktober", "November", "December"], 11 | monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Avg", "Sep", "Okt", "Nov", "Dec"], 12 | today: "Danes", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); 17 | -------------------------------------------------------------------------------- /js/datepicker_language/bootstrap-datetimepicker.sv.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Swedish translation for bootstrap-datetimepicker 3 | * Patrik Ragnarsson 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['sv'] = { 7 | days: ["Söndag", "Måndag", "Tisdag", "Onsdag", "Torsdag", "Fredag", "Lördag", "Söndag"], 8 | daysShort: ["Sön", "Mån", "Tis", "Ons", "Tor", "Fre", "Lör", "Sön"], 9 | daysMin: ["Sö", "Må", "Ti", "On", "To", "Fr", "Lö", "Sö"], 10 | months: ["Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", "Oktober", "November", "December"], 11 | monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"], 12 | today: "I Dag", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); 17 | -------------------------------------------------------------------------------- /js/datepicker_language/bootstrap-datetimepicker.th.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Thai translation for bootstrap-datetimepicker 3 | * Suchau Jiraprapot 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['th'] = { 7 | days: ["อาทิตย์", "จันทร์", "อังคาร", "พุธ", "พฤหัส", "ศุกร์", "เสาร์", "อาทิตย์"], 8 | daysShort: ["อา", "จ", "อ", "พ", "พฤ", "ศ", "ส", "อา"], 9 | daysMin: ["อา", "จ", "อ", "พ", "พฤ", "ศ", "ส", "อา"], 10 | months: ["มกราคม", "กุมภาพันธ์", "มีนาคม", "เมษายน", "พฤษภาคม", "มิถุนายน", "กรกฎาคม", "สิงหาคม", "กันยายน", "ตุลาคม", "พฤศจิกายน", "ธันวาคม"], 11 | monthsShort: ["ม.ค.", "ก.พ.", "มี.ค.", "เม.ย.", "พ.ค.", "มิ.ย.", "ก.ค.", "ส.ค.", "ก.ย.", "ต.ค.", "พ.ย.", "ธ.ค."], 12 | today: "วันนี้", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); 17 | -------------------------------------------------------------------------------- /js/datepicker_language/bootstrap-datetimepicker.es.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Spanish translation for bootstrap-datetimepicker 3 | * Bruno Bonamin 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['es'] = { 7 | days: ["Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo"], 8 | daysShort: ["Dom", "Lun", "Mar", "Mié", "Jue", "Vie", "Sáb", "Dom"], 9 | daysMin: ["Do", "Lu", "Ma", "Mi", "Ju", "Vi", "Sa", "Do"], 10 | months: ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"], 11 | monthsShort: ["Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic"], 12 | today: "Hoy", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); 17 | -------------------------------------------------------------------------------- /js/datepicker_language/bootstrap-datetimepicker.nl.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Dutch translation for bootstrap-datetimepicker 3 | * Reinier Goltstein 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['nl'] = { 7 | days: ["Zondag", "Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrijdag", "Zaterdag", "Zondag"], 8 | daysShort: ["Zo", "Ma", "Di", "Wo", "Do", "Vr", "Za", "Zo"], 9 | daysMin: ["Zo", "Ma", "Di", "Wo", "Do", "Vr", "Za", "Zo"], 10 | months: ["Januari", "Februari", "Maart", "April", "Mei", "Juni", "Juli", "Augustus", "September", "Oktober", "November", "December"], 11 | monthsShort: ["Jan", "Feb", "Mrt", "Apr", "Mei", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"], 12 | today: "Vandaag", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); 17 | -------------------------------------------------------------------------------- /js/datepicker_language/bootstrap-datetimepicker.rs-latin.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Serbian latin translation for bootstrap-datetimepicker 3 | * Bojan Milosavlević 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['rs'] = { 7 | days: ["Nedelja","Ponedeljak", "Utorak", "Sreda", "Četvrtak", "Petak", "Subota", "Nedelja"], 8 | daysShort: ["Ned", "Pon", "Uto", "Sre", "Čet", "Pet", "Sub", "Ned"], 9 | daysMin: ["N", "Po", "U", "Sr", "Č", "Pe", "Su", "N"], 10 | months: ["Januar", "Februar", "Mart", "April", "Maj", "Jun", "Jul", "Avgust", "Septembar", "Oktobar", "Novembar", "Decembar"], 11 | monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Avg", "Sep", "Okt", "Nov", "Dec"], 12 | today: "Danas", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); 17 | -------------------------------------------------------------------------------- /js/datepicker_language/bootstrap-datetimepicker.ru.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Russian translation for bootstrap-datetimepicker 3 | * Victor Taranenko 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['ru'] = { 7 | days: ["Воскресенье", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота", "Воскресенье"], 8 | daysShort: ["Вск", "Пнд", "Втр", "Срд", "Чтв", "Птн", "Суб", "Вск"], 9 | daysMin: ["Вс", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб", "Вс"], 10 | months: ["Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"], 11 | monthsShort: ["Янв", "Фев", "Мар", "Апр", "Май", "Июн", "Июл", "Авг", "Сен", "Окт", "Ноя", "Дек"], 12 | today: "Сегодня", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); -------------------------------------------------------------------------------- /js/datepicker_language/bootstrap-datetimepicker.nb.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Norwegian (bokmål) translation for bootstrap-datetimepicker 3 | * Fredrik Sundmyhr 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['nb'] = { 7 | days: ["Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag", "Søndag"], 8 | daysShort: ["Søn", "Man", "Tir", "Ons", "Tor", "Fre", "Lør", "Søn"], 9 | daysMin: ["Sø", "Ma", "Ti", "On", "To", "Fr", "Lø", "Sø"], 10 | months: ["Januar", "Februar", "Mars", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Desember"], 11 | monthsShort: ["Jan", "Feb", "Mar", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Des"], 12 | today: "I Dag", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); -------------------------------------------------------------------------------- /src/SLN/Action/Ajax/ResendNotification.php: -------------------------------------------------------------------------------- 1 | sendMail( 12 | 'mail/summary', 13 | compact('booking','to') 14 | ); 15 | return ['success' => __('E-mail sent')]; 16 | }else{ 17 | return ['error' => __('Please specify an email')]; 18 | } 19 | 20 | return $ret; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /views/mail/status_confirmed.php: -------------------------------------------------------------------------------- 1 | getEmail(); 8 | } 9 | 10 | if ($plugin->getSettings()->get('attendant_email') 11 | && ($attendant = $booking->getAttendant()) 12 | && ($email = $attendant->getEmail()) 13 | ) { 14 | $data['to'] = array($data['to'], $email); 15 | } 16 | 17 | $data['subject'] = __('Booking confirmed','sln') 18 | . ' ' . $plugin->format()->date($booking->getDate()) 19 | . ' - ' . $plugin->format()->time($booking->getTime()); 20 | include dirname(__FILE__).'/_header.php'; 21 | include dirname(__FILE__).'/_summary_content.php'; 22 | include dirname(__FILE__).'/_footer.php'; 23 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/Rest/Pricing/VoiceCountries.php: -------------------------------------------------------------------------------- 1 | instance_name = "Services_Twilio_Rest_Pricing_VoiceCountry"; 16 | parent::__construct($client, $uri); 17 | } 18 | 19 | public function get($isoCountry) { 20 | $instance = new $this->instance_name($this->client, $this->uri . "/$isoCountry"); 21 | $instance->iso_country = $isoCountry; 22 | return $instance; 23 | } 24 | } -------------------------------------------------------------------------------- /js/datepicker_language/bootstrap-datetimepicker.uk.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ukrainian translation for bootstrap-datetimepicker 3 | * Andrey Vityuk 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['uk'] = { 7 | days: ["Неділя", "Понеділок", "Вівторок", "Середа", "Четвер", "П'ятниця", "Субота", "Неділя"], 8 | daysShort: ["Нед", "Пнд", "Втр", "Срд", "Чтв", "Птн", "Суб", "Нед"], 9 | daysMin: ["Нд", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб", "Нд"], 10 | months: ["Січень", "Лютий", "Березень", "Квітень", "Травень", "Червень", "Липень", "Серпень", "Вересень", "Жовтень", "Листопад", "Грудень"], 11 | monthsShort: ["Січ", "Лют", "Бер", "Кві", "Тра", "Чер", "Лип", "Сер", "Вер", "Жов", "Лис", "Гру"], 12 | today: "Сьогодні", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); -------------------------------------------------------------------------------- /src/SLN/Helper/Availability/Basic/DayBookings.php: -------------------------------------------------------------------------------- 1 | getDate()->format('H'); 13 | } 14 | 15 | $now = clone $this->getDate(); 16 | $now->setTime($hour, $minutes); 17 | $ret = array(); 18 | foreach ($this->getBookings() as $b) { 19 | if ($b->getStartsAt() <= $now && $b->getStartsAt() >= $now) { 20 | $ret[] = $b; 21 | } 22 | } 23 | 24 | return $ret; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /js/datepicker_language/bootstrap-datetimepicker.hu.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Hungarian translation for bootstrap-datetimepicker 3 | * darevish 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['hu'] = { 7 | days: ["Vasárnap", "Hétfő", "Kedd", "Szerda", "Csütörtök", "Péntek", "Szombat", "Vasárnap"], 8 | daysShort: ["Vas", "Hét", "Ked", "Sze", "Csü", "Pén", "Szo", "Vas"], 9 | daysMin: ["V", "H", "K", "Sze", "Cs", "P", "Szo", "V"], 10 | months: ["Január", "Február", "Március", "Április", "Május", "Június", "Július", "Augusztus", "Szeptember", "Október", "November", "December"], 11 | monthsShort: ["Jan", "Feb", "Már", "Ápr", "Máj", "Jún", "Júl", "Aug", "Sze", "Okt", "Nov", "Dec"], 12 | today: "Ma", 13 | suffix: [], 14 | meridiem: [], 15 | weekStart: 1 16 | }; 17 | }(jQuery)); 18 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/Rest/Pricing/PhoneNumberCountries.php: -------------------------------------------------------------------------------- 1 | instance_name = 'Services_Twilio_Rest_Pricing_PhoneNumberCountry'; 8 | parent::__construct($client, $uri); 9 | } 10 | 11 | public function getResourceName($camelized = false) { 12 | if ($camelized) { 13 | return 'Countries'; 14 | } 15 | return 'countries'; 16 | } 17 | 18 | public function get($isoCountry) { 19 | $instance = new $this->instance_name($this->client, $this->uri . "/$isoCountry"); 20 | $instance->iso_country = $isoCountry; 21 | return $instance; 22 | } 23 | } -------------------------------------------------------------------------------- /js/datepicker_language/bootstrap-datetimepicker.is.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Icelandic translation for bootstrap-datetimepicker 3 | * Hinrik Örn Sigurðsson 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['is'] = { 7 | days: ["Sunnudagur", "Mánudagur", "Þriðjudagur", "Miðvikudagur", "Fimmtudagur", "Föstudagur", "Laugardagur", "Sunnudagur"], 8 | daysShort: ["Sun", "Mán", "Þri", "Mið", "Fim", "Fös", "Lau", "Sun"], 9 | daysMin: ["Su", "Má", "Þr", "Mi", "Fi", "Fö", "La", "Su"], 10 | months: ["Janúar", "Febrúar", "Mars", "Apríl", "Maí", "Júní", "Júlí", "Ágúst", "September", "Október", "Nóvember", "Desember"], 11 | monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maí", "Jún", "Júl", "Ágú", "Sep", "Okt", "Nóv", "Des"], 12 | today: "Í Dag", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); 17 | -------------------------------------------------------------------------------- /js/datepicker_language/bootstrap-datetimepicker.ro.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Romanian translation for bootstrap-datetimepicker 3 | * Cristian Vasile 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['ro'] = { 7 | days: ["Duminică", "Luni", "Marţi", "Miercuri", "Joi", "Vineri", "Sâmbătă", "Duminică"], 8 | daysShort: ["Dum", "Lun", "Mar", "Mie", "Joi", "Vin", "Sâm", "Dum"], 9 | daysMin: ["Du", "Lu", "Ma", "Mi", "Jo", "Vi", "Sâ", "Du"], 10 | months: ["Ianuarie", "Februarie", "Martie", "Aprilie", "Mai", "Iunie", "Iulie", "August", "Septembrie", "Octombrie", "Noiembrie", "Decembrie"], 11 | monthsShort: ["Ian", "Feb", "Mar", "Apr", "Mai", "Iun", "Iul", "Aug", "Sep", "Oct", "Nov", "Dec"], 12 | today: "Astăzi", 13 | suffix: [], 14 | meridiem: [], 15 | weekStart: 1 16 | }; 17 | }(jQuery)); 18 | -------------------------------------------------------------------------------- /js/datepicker_language/bootstrap-datetimepicker.ar.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Arabic translation for bootstrap-datetimepicker 3 | * Ala' Mohammad 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['ar'] = { 7 | days: ["الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت", "الأحد"], 8 | daysShort: ["أحد", "اثنين", "ثلاثاء", "أربعاء", "خميس", "جمعة", "سبت", "أحد"], 9 | daysMin: ["أح", "إث", "ث", "أر", "خ", "ج", "س", "أح"], 10 | months: ["يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"], 11 | monthsShort: ["يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"], 12 | today: "هذا اليوم", 13 | suffix: [], 14 | meridiem: [], 15 | rtl: true 16 | }; 17 | }(jQuery)); 18 | -------------------------------------------------------------------------------- /js/datepicker_language/bootstrap-datetimepicker.pt-BR.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Brazilian translation for bootstrap-datetimepicker 3 | * Cauan Cabral 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['pt-BR'] = { 7 | format: 'dd/mm/yyyy', 8 | days: ["Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado", "Domingo"], 9 | daysShort: ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb", "Dom"], 10 | daysMin: ["Do", "Se", "Te", "Qu", "Qu", "Se", "Sa", "Do"], 11 | months: ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"], 12 | monthsShort: ["Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez"], 13 | today: "Hoje", 14 | suffix: [], 15 | meridiem: [] 16 | }; 17 | }(jQuery)); 18 | -------------------------------------------------------------------------------- /js/datepicker_language/bootstrap-datetimepicker.de.js: -------------------------------------------------------------------------------- 1 | /** 2 | * German translation for bootstrap-datetimepicker 3 | * Sam Zurcher 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['de'] = { 7 | days: ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag", "Sonntag"], 8 | daysShort: ["Son", "Mon", "Die", "Mit", "Don", "Fre", "Sam", "Son"], 9 | daysMin: ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa", "So"], 10 | months: ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"], 11 | monthsShort: ["Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"], 12 | today: "Heute", 13 | suffix: [], 14 | meridiem: [], 15 | weekStart: 1, 16 | format: "dd.mm.yyyy" 17 | }; 18 | }(jQuery)); 19 | -------------------------------------------------------------------------------- /js/datepicker_language/bootstrap-datetimepicker.fi.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Finnish translation for bootstrap-datetimepicker 3 | * Jaakko Salonen 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['fi'] = { 7 | days: ["Sunnuntai", "Maanantai", "Tiistai", "Keskiviikko", "Torstai", "Perjantai", "Lauantai", "Sunnuntai"], 8 | daysShort: ["Sun", "Maa", "Tii", "Kes", "Tor", "Per", "Lau", "Sun"], 9 | daysMin: ["Su", "Ma", "Ti", "Ke", "To", "Pe", "La", "Su"], 10 | months: ["Tammikuu", "Helmikuu", "Maaliskuu", "Huhtikuu", "Toukokuu", "Kesäkuu", "Heinäkuu", "Elokuu", "Syyskuu", "Lokakuu", "Marraskuu", "Joulukuu"], 11 | monthsShort: ["Tam", "Hel", "Maa", "Huh", "Tou", "Kes", "Hei", "Elo", "Syy", "Lok", "Mar", "Jou"], 12 | today: "Tänään", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); 17 | -------------------------------------------------------------------------------- /js/datepicker_language/bootstrap-datetimepicker.sk.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Slovak translation for bootstrap-datetimepicker 3 | * Marek Lichtner 4 | * Fixes by Michal Remiš 5 | */ 6 | ;(function($){ 7 | $.fn.datetimepicker.dates["sk"] = { 8 | days: ["Nedeľa", "Pondelok", "Utorok", "Streda", "Štvrtok", "Piatok", "Sobota", "Nedeľa"], 9 | daysShort: ["Ned", "Pon", "Uto", "Str", "Štv", "Pia", "Sob", "Ned"], 10 | daysMin: ["Ne", "Po", "Ut", "St", "Št", "Pia", "So", "Ne"], 11 | months: ["Január", "Február", "Marec", "Apríl", "Máj", "Jún", "Júl", "August", "September", "Október", "November", "December"], 12 | monthsShort: ["Jan", "Feb", "Mar", "Apr", "Máj", "Jún", "Júl", "Aug", "Sep", "Okt", "Nov", "Dec"], 13 | today: "Dnes", 14 | suffix: [], 15 | meridiem: [] 16 | }; 17 | }(jQuery)); 18 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/NextGenInstanceResource.php: -------------------------------------------------------------------------------- 1 | ` if 13 | * the update fails. 14 | */ 15 | public function update($params, $value = null) 16 | { 17 | if (!is_array($params)) { 18 | $params = array($params => $value); 19 | } 20 | $decamelizedParams = $this->client->createData($this->uri, $params, true); 21 | $this->updateAttributes($decamelizedParams); 22 | } 23 | } -------------------------------------------------------------------------------- /js/datepicker_language/bootstrap-datetimepicker.fr.js: -------------------------------------------------------------------------------- 1 | /** 2 | * French translation for bootstrap-datetimepicker 3 | * Nico Mollet 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['fr'] = { 7 | days: ["Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche"], 8 | daysShort: ["Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam", "Dim"], 9 | daysMin: ["D", "L", "Ma", "Me", "J", "V", "S", "D"], 10 | months: ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"], 11 | monthsShort: ["Jan", "Fev", "Mar", "Avr", "Mai", "Jui", "Jul", "Aou", "Sep", "Oct", "Nov", "Dec"], 12 | today: "Aujourd'hui", 13 | suffix: [], 14 | meridiem: ["am", "pm"], 15 | weekStart: 1, 16 | format: "dd/mm/yyyy" 17 | }; 18 | }(jQuery)); 19 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/Rest/CredentialLists.php: -------------------------------------------------------------------------------- 1 | account->sip->credential_lists->create("MyFriendlyName"); 13 | * 14 | * :param string $friendly_name: the friendly name of this credential list 15 | * :param array $params: a single array of parameters which is serialized and 16 | * sent directly to the Twilio API. 17 | */ 18 | public function create($friendly_name, $params = array()) { 19 | return parent::_create(array( 20 | 'FriendlyName' => $friendly_name, 21 | ) + $params); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /js/datepicker_language/bootstrap-datetimepicker.pl.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Polish translation for bootstrap-datetimepicker 3 | * Robert 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['pl'] = { 7 | days: ["Niedziela", "Poniedziałek", "Wtorek", "Środa", "Czwartek", "Piątek", "Sobota", "Niedziela"], 8 | daysShort: ["Nie", "Pn", "Wt", "Śr", "Czw", "Pt", "So", "Nie"], 9 | daysMin: ["N", "Pn", "Wt", "Śr", "Cz", "Pt", "So", "N"], 10 | months: ["Styczeń", "Luty", "Marzec", "Kwiecień", "Maj", "Czerwiec", "Lipiec", "Sierpień", "Wrzesień", "Październik", "Listopad", "Grudzień"], 11 | monthsShort: ["Sty", "Lu", "Mar", "Kw", "Maj", "Cze", "Lip", "Sie", "Wrz", "Pa", "Lis", "Gru"], 12 | today: "Dzisiaj", 13 | suffix: [], 14 | meridiem: [], 15 | weekStart: 1 16 | }; 17 | }(jQuery)); 18 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/Rest/IpAddress.php: -------------------------------------------------------------------------------- 1 | 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['it'] = { 7 | days: ["Domenica", "Lunedi", "Martedi", "Mercoledi", "Giovedi", "Venerdi", "Sabato", "Domenica"], 8 | daysShort: ["Dom", "Lun", "Mar", "Mer", "Gio", "Ven", "Sab", "Dom"], 9 | daysMin: ["Do", "Lu", "Ma", "Me", "Gi", "Ve", "Sa", "Do"], 10 | months: ["Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"], 11 | monthsShort: ["Gen", "Feb", "Mar", "Apr", "Mag", "Giu", "Lug", "Ago", "Set", "Ott", "Nov", "Dic"], 12 | today: "Oggi", 13 | suffix: [], 14 | meridiem: [], 15 | weekStart: 1, 16 | format: "dd/mm/yyyy hh:ii:ss" 17 | }; 18 | }(jQuery)); 19 | -------------------------------------------------------------------------------- /js/datepicker_language/bootstrap-datetimepicker.pt.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Portuguese translation for bootstrap-datetimepicker 3 | * Original code: Cauan Cabral 4 | * Tiago Melo 5 | */ 6 | ;(function($){ 7 | $.fn.datetimepicker.dates['pt'] = { 8 | days: ["Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado", "Domingo"], 9 | daysShort: ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb", "Dom"], 10 | daysMin: ["Do", "Se", "Te", "Qu", "Qu", "Se", "Sa", "Do"], 11 | months: ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"], 12 | monthsShort: ["Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez"], 13 | suffix: [], 14 | meridiem: ["am","pm"], 15 | today: "Hoje" 16 | }; 17 | }(jQuery)); 18 | -------------------------------------------------------------------------------- /src/SLN/Third/google-api-php-client/tests/general/testdata/service-rsa-12345.json: -------------------------------------------------------------------------------- 1 | { 2 | "private_key_id": "1936f241be592afc6f3a6d309f75cbf5229d3e75", 3 | "private_key": "-----BEGIN RSA PRIVATE KEY-----MIIBOwIBAAJBAM4Aozh3TMZYcPx7MHlnD8MtyVUjzo6OdT32JwRHzHHNMMm88lNVfLYIT9C/jgXlDqG0h5wSClMvTQbdihNdFOkCAwEAAQJBAJuMo7KpcpF6iqY7Jtkk1yQb2KCvTvMZ4rGMwt1akaeDW2noyqCeO675gFBtlizgcRsybealQVQgGX4E5VqFUJkCIQDzJZZi2jloDXcyyy2rEa4mj4RnrnIYsDMJ55XMWJ9c9wIhANjkY97FSRX3WSdRFqXd3Pc4URUho+rCcPibafMOwAUfAiAa58ngXm2DyhmqkTkYePhgY/kuz+roOHctXWcCGbxouQIgLC5qAakieC0Ipi+oc2U8a8e3DJzrrRiqtpnB/VcV2nUCIQC2DXrpyt6jjVIzs4jI5Cl3QGLL6TZ8FqpyonU/1ARuhA==-----END RSA PRIVATE KEY-----", 4 | "client_email": "12345-is5nq94smihmoa2k0567jab6u6vj278c@developer.gserviceaccount.com", 5 | "client_id": "12345-is5nq94smihmoa2k0567jab6u6vj278c.apps.googleusercontent.com", 6 | "type": "service_account" 7 | } -------------------------------------------------------------------------------- /js/datepicker_language/bootstrap-datetimepicker.lv.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Latvian translation for bootstrap-datetimepicker 3 | * Artis Avotins 4 | */ 5 | 6 | ;(function($){ 7 | $.fn.datetimepicker.dates['lv'] = { 8 | days: ["Svētdiena", "Pirmdiena", "Otrdiena", "Trešdiena", "Ceturtdiena", "Piektdiena", "Sestdiena", "Svētdiena"], 9 | daysShort: ["Sv", "P", "O", "T", "C", "Pk", "S", "Sv"], 10 | daysMin: ["Sv", "Pr", "Ot", "Tr", "Ce", "Pk", "St", "Sv"], 11 | months: ["Janvāris", "Februāris", "Marts", "Aprīlis", "Maijs", "Jūnijs", "Jūlijs", "Augusts", "Septembris", "Oktobris", "Novembris", "Decembris"], 12 | monthsShort: ["Jan", "Feb", "Mar", "Apr", "Mai", "Jūn", "Jūl", "Aug", "Sep", "Okt", "Nov", "Dec."], 13 | today: "Šodien", 14 | suffix: [], 15 | meridiem: [], 16 | weekStart: 1 17 | }; 18 | }(jQuery)); -------------------------------------------------------------------------------- /js/datepicker_language/bootstrap-datetimepicker.cs.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Czech translation for bootstrap-datetimepicker 3 | * Matěj Koubík 4 | * Fixes by Michal Remiš 5 | */ 6 | ;(function($){ 7 | $.fn.datetimepicker.dates['cs'] = { 8 | days: ["Neděle", "Pondělí", "Úterý", "Středa", "Čtvrtek", "Pátek", "Sobota", "Neděle"], 9 | daysShort: ["Ned", "Pon", "Úte", "Stř", "Čtv", "Pát", "Sob", "Ned"], 10 | daysMin: ["Ne", "Po", "Út", "St", "Čt", "Pá", "So", "Ne"], 11 | months: ["Leden", "Únor", "Březen", "Duben", "Květen", "Červen", "Červenec", "Srpen", "Září", "Říjen", "Listopad", "Prosinec"], 12 | monthsShort: ["Led", "Úno", "Bře", "Dub", "Kvě", "Čer", "Čnc", "Srp", "Zář", "Říj", "Lis", "Pro"], 13 | today: "Dnes", 14 | suffix: [], 15 | meridiem: [], 16 | weekStart: 1, 17 | format: "dd.mm.yyyy" 18 | }; 19 | }(jQuery)); 20 | -------------------------------------------------------------------------------- /js/datepicker_language/bootstrap-datetimepicker.ee.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Estonian translation for bootstrap-datetimepicker 3 | * Rene Korss 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['ee'] = { 7 | days: ["Pühapäev", "Esmaspäev", "Teisipäev", "Kolmapäev", "Neljapäev", "Reede", "Laupäev", "Pühapäev"], 8 | daysShort: ["P", "E", "T", "K", "N", "R", "L", "P"], 9 | daysMin: ["P", "E", "T", "K", "N", "R", "L", "P"], 10 | months: ["Jaanuar", "Veebruar", "Märts", "Aprill", "Mai", "Juuni", "Juuli", "August", "September", "Oktoober", "November", "Detsember"], 11 | monthsShort: ["Jaan", "Veebr", "Märts", "Apr", "Mai", "Juuni", "Juuli", "Aug", "Sept", "Okt", "Nov", "Dets"], 12 | today: "Täna", 13 | suffix: [], 14 | meridiem: [], 15 | weekStart: 1, 16 | format: "dd.mm.yyyy hh:ii" 17 | }; 18 | }(jQuery)); -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/Rest/Accounts.php: -------------------------------------------------------------------------------- 1 | `_ documentation. 6 | */ 7 | class Services_Twilio_Rest_Accounts extends Services_Twilio_ListResource { 8 | 9 | /** 10 | * Create a new subaccount. 11 | * 12 | * :param array $params: An array of parameters describing the new 13 | * subaccount. The ``$params`` array can contain the following keys: 14 | * 15 | * *FriendlyName* 16 | * A description of this account, up to 64 characters long 17 | * 18 | * :returns: The new subaccount 19 | * :rtype: :php:class:`Services_Twilio_Rest_Account` 20 | * 21 | */ 22 | public function create($params = array()) { 23 | return parent::_create($params); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /views/js/calendar/modal.html: -------------------------------------------------------------------------------- 1 | <% event.date_start = new Date(parseInt(event.start)); 2 | event.date_end = new Date(parseInt(event.end)); %> 3 |
4 | Starts on <%= event.date_start.getDate() %> <%= calendar.locale["m" + event.date_start.getMonth()] %> <%= event.date_start.getFullYear() %>, at <%= event.date_start.getHours() %>:<%= event.date_start.getMinutes() %>
5 | Ends on <%= event.date_end.getDate() %> <%= calendar.locale["m" + event.date_end.getMonth()] %> <%= event.date_end.getFullYear() %> at <%= event.date_end.getHours() %>:<%= event.date_end.getMinutes() %>
6 |
7 | 8 |
9 | More info 10 |
11 | -------------------------------------------------------------------------------- /src/SLN/Third/google-api-php-client/tests/bootstrap.php: -------------------------------------------------------------------------------- 1 | 4 | */ 5 | 6 | ;(function($){ 7 | $.fn.datetimepicker.dates['lt'] = { 8 | days: ["Sekmadienis", "Pirmadienis", "Antradienis", "Trečiadienis", "Ketvirtadienis", "Penktadienis", "Šeštadienis", "Sekmadienis"], 9 | daysShort: ["S", "Pr", "A", "T", "K", "Pn", "Š", "S"], 10 | daysMin: ["Sk", "Pr", "An", "Tr", "Ke", "Pn", "Št", "Sk"], 11 | months: ["Sausis", "Vasaris", "Kovas", "Balandis", "Gegužė", "Birželis", "Liepa", "Rugpjūtis", "Rugsėjis", "Spalis", "Lapkritis", "Gruodis"], 12 | monthsShort: ["Sau", "Vas", "Kov", "Bal", "Geg", "Bir", "Lie", "Rugp", "Rugs", "Spa", "Lap", "Gru"], 13 | today: "Šiandien", 14 | suffix: [], 15 | meridiem: [], 16 | weekStart: 1 17 | }; 18 | }(jQuery)); 19 | -------------------------------------------------------------------------------- /src/SLN/Third/google-api-php-client/src/Google/Auth/Exception.php: -------------------------------------------------------------------------------- 1 | 4 | * Source: http://scriptsource.org/cms/scripts/page.php?item_id=entry_detail&uid=xnfaqyzcku 5 | */ 6 | ;(function($){ 7 | $.fn.datetimepicker.dates['sw'] = { 8 | days: ["Jumapili", "Jumatatu", "Jumanne", "Jumatano", "Alhamisi", "Ijumaa", "Jumamosi", "Jumapili"], 9 | daysShort: ["J2", "J3", "J4", "J5", "Alh", "Ij", "J1", "J2"], 10 | daysMin: ["2", "3", "4", "5", "A", "I", "1", "2"], 11 | months: ["Januari", "Februari", "Machi", "Aprili", "Mei", "Juni", "Julai", "Agosti", "Septemba", "Oktoba", "Novemba", "Desemba"], 12 | monthsShort: ["Jan", "Feb", "Mac", "Apr", "Mei", "Jun", "Jul", "Ago", "Sep", "Okt", "Nov", "Des"], 13 | today: "Leo", 14 | suffix: [], 15 | meridiem: [] 16 | }; 17 | }(jQuery)); 18 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/Rest/CredentialListMapping.php: -------------------------------------------------------------------------------- 1 | setupSubresources( 34 | 'credentials' 35 | ); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/SLN/Action/Ajax/SalonStep.php: -------------------------------------------------------------------------------- 1 | $ret, 18 | 'nonce' => wp_create_nonce('ajax_post_validation') 19 | ); 20 | } catch (SLN_Action_Ajax_RedirectException $ex) { 21 | $ret = array( 22 | 'redirect' => $ex->getMessage() 23 | ); 24 | } 25 | return $ret; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Abstract.php: -------------------------------------------------------------------------------- 1 | plugin = $plugin; 10 | } 11 | 12 | abstract public function send($to, $message); 13 | 14 | protected function getAccount(){ 15 | return $this->plugin->getSettings()->get('sms_account'); 16 | } 17 | 18 | protected function getPassword(){ 19 | return $this->plugin->getSettings()->get('sms_password'); 20 | } 21 | 22 | protected function getFrom(){ 23 | return $this->plugin->getSettings()->get('sms_from'); 24 | } 25 | 26 | protected function processTo($to){ 27 | $prefix = $this->plugin->getSettings()->get('sms_prefix'); 28 | //$prefix = str_replace('+','',$prefix); 29 | $to = str_replace(' ','',$to); 30 | return $prefix . $to; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/Rest/IpAccessControlListMapping.php: -------------------------------------------------------------------------------- 1 | setupSubresources( 33 | 'ip_addresses' 34 | ); 35 | } 36 | } 37 | 38 | -------------------------------------------------------------------------------- /views/js/calendar/week.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 | <% _.each(months, function(name) { %> 10 |
<%= name %>
11 | <%= start.getDate() %> <%= cal.locale['ms' + start.getMonth()] %> 12 |
13 | <% start.setDate(start.getDate() + 1); %> 14 | <% }) %> 15 |
16 |
17 | <%= cal._week() %> 18 |
19 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/Rest/CredentialListMappings.php: -------------------------------------------------------------------------------- 1 | account->sip->domains->get('SDXXX')->credential_list_mappings->create("CLXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"); 13 | * 14 | * :param string $credential_list_sid: the sid of the CredentialList you're adding to this domain. 15 | * :param array $params: a single array of parameters which is serialized and 16 | * sent directly to the Twilio API. 17 | */ 18 | public function create($credential_list_sid, $params = array()) { 19 | return parent::_create(array( 20 | 'CredentialListSid' => $credential_list_sid, 21 | ) + $params); 22 | } 23 | } 24 | 25 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Plivo.php: -------------------------------------------------------------------------------- 1 | getAccount(), $this->getPassword()); 11 | $to = $this->processTo($to); 12 | $params = array( 13 | 'src' => str_replace('+','',$this->getFrom()), 14 | 'dst' => $to, 15 | 'text' => $message, 16 | 'type' => 'sms', 17 | ); 18 | $response = @$p->send_message($params); 19 | $tmp = array_values($response); 20 | if (array_shift($tmp) != "202") { 21 | throw new Exception('Plivo: Please ensure that From number is a valid and sms feature enabled Plivo DID number'); 22 | } 23 | } 24 | /* 25 | protected function processTo($to){ 26 | return str_replace('+','',parent::processTo($to)); 27 | } 28 | */ 29 | } 30 | -------------------------------------------------------------------------------- /src/SLN/DateTime.php: -------------------------------------------------------------------------------- 1 | format('U')); 9 | } 10 | public function formatLocal($format){ 11 | $off = get_option('gmt_offset'); 12 | $this->modify(($off > 0 ? '+'.$off : $off).' hours'); 13 | $ret = parent::format($format); 14 | $this->modify(($off > 0 ? '-'.$off : '+'.abs($off) ).' hours'); 15 | return $ret; 16 | } 17 | 18 | public function __toString() 19 | { 20 | return (string)parent::format(self::$Format); 21 | } 22 | 23 | public static function getWpTimezone() { 24 | $timezone = get_option( 'timezone_string' ); 25 | if( empty( $timezone ) ) { 26 | $timezone = sprintf( 'UTC%+.4g', get_option( 'gmt_offset', 0 ) ); 27 | } 28 | return $timezone; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/Rest/Domains.php: -------------------------------------------------------------------------------- 1 | account->sip->domains->create( 13 | * "MyFriendlyName", "MyDomainName" 14 | * ); 15 | * 16 | * :param string $friendly_name: the friendly name of this domain 17 | * :param string $domain_name: the domain name for this domain 18 | * :param array $params: a single array of parameters which is serialized and 19 | * sent directly to the Twilio API. 20 | */ 21 | public function create($friendly_name, $domain_name, $params = array()) { 22 | return parent::_create(array( 23 | 'FriendlyName' => $friendly_name, 24 | 'DomainName' => $domain_name, 25 | ) + $params); 26 | } 27 | } 28 | 29 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/Rest/IpAccessControlLists.php: -------------------------------------------------------------------------------- 1 | account->sip->ip_access_control_lists->create("MyFriendlyName"); 13 | * 14 | * :param string $friendly_name: the friendly name of this ip access control list 15 | * :param array $params: a single array of parameters which is serialized and 16 | * sent directly to the Twilio API. 17 | * :return: the created list 18 | * :rtype: :class:`Services_Twilio_Rest_IpAccessControlList` 19 | * 20 | */ 21 | public function create($friendly_name, $params = array()) { 22 | return parent::_create(array( 23 | 'FriendlyName' => $friendly_name, 24 | ) + $params); 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/SLN/Shortcode/Salon/DateStep.php: -------------------------------------------------------------------------------- 1 | getPlugin()->getBookingBuilder(); 9 | $values = $_POST['sln']; 10 | $date = SLN_Func::filter($values['date'], 'date'); 11 | $time = SLN_Func::filter($values['time'], 'time'); 12 | $bb 13 | ->removeLastID() 14 | ->setDate($date) 15 | ->setTime($time); 16 | $obj = new SLN_Action_Ajax_CheckDate($this->getPlugin()); 17 | $obj 18 | ->setDate($date) 19 | ->setTime($time) 20 | ->execute(); 21 | foreach ($obj->getErrors() as $err) { 22 | $this->addError($err); 23 | } 24 | if (!$this->getErrors()) { 25 | $bb->save(); 26 | 27 | return true; 28 | } 29 | } 30 | 31 | 32 | } -------------------------------------------------------------------------------- /src/SLN/Third/google-api-php-client/src/Google/Signer/Abstract.php: -------------------------------------------------------------------------------- 1 | 22 | */ 23 | abstract class Google_Signer_Abstract 24 | { 25 | /** 26 | * Signs data, returns the signature as binary data. 27 | */ 28 | abstract public function sign($data); 29 | } 30 | -------------------------------------------------------------------------------- /src/SLN/UserRole/SalonStaff.php: -------------------------------------------------------------------------------- 1 | true, 11 | 'edit_posts' => true, 12 | 'delete_posts' => true, 13 | 'publish_posts' => false, 14 | 'upload_files' => true, 15 | 'manage_salon' => true 16 | ); 17 | 18 | public function __construct(SLN_Plugin $plugin, $role, $displayName) 19 | { 20 | $this->plugin = $plugin; 21 | $this->role = $role; 22 | $this->displayName = $displayName; 23 | remove_role($this->role); 24 | add_role( $this->role, $this->displayName, $this->capabilities); 25 | } 26 | 27 | /** 28 | * @return SLN_Plugin 29 | */ 30 | protected function getPlugin() 31 | { 32 | return $this->plugin; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/Rest/IpAccessControlListMappings.php: -------------------------------------------------------------------------------- 1 | account->sip->domains->get('SDXXX')->ip_access_control_list_mappings->create("ALXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"); 13 | * 14 | * :param string $ip_access_control_list_sid: the sid of the IpAccessControList 15 | * you're adding to this domain. 16 | * :param array $params: a single array of parameters which is serialized and 17 | * sent directly to the Twilio API. 18 | */ 19 | public function create($ip_access_control_list_sid, $params = array()) { 20 | return parent::_create(array( 21 | 'IpAccessControlListSid' => $ip_access_control_list_sid, 22 | ) + $params); 23 | } 24 | } 25 | 26 | -------------------------------------------------------------------------------- /views/js/calendar/month.html: -------------------------------------------------------------------------------- 1 |
2 | <% _.each(months, function(name){ %> 3 |
<%= name %>
4 | <% }) %> 5 |
6 |
7 | <% for(i = 0; i < 6; i++) { %> 8 | <% if(cal.stop_cycling == true) break; %> 9 |
10 |
<%= cal._day(i, day++) %>
11 |
<%= cal._day(i, day++) %>
12 |
<%= cal._day(i, day++) %>
13 |
<%= cal._day(i, day++) %>
14 |
<%= cal._day(i, day++) %>
15 |
<%= cal._day(i, day++) %>
16 |
<%= cal._day(i, day++) %>
17 |
18 | <% } %> 19 |
-------------------------------------------------------------------------------- /src/SLN/Action/Sms/Ip1SmsWebservice.php: -------------------------------------------------------------------------------- 1 | plugin->getSettings(); 9 | $prefix = str_replace('+','',$settings->get('sms_prefix')); 10 | $to = str_replace(' ','',$to); 11 | $to = $prefix + $to; 12 | $client = new SoapClient(self::API_URL); 13 | $ret = $client->sms(array( 14 | 'konto' => $this->plugin->getSettings()->get('sms_account'), 15 | 'passwd' => $this->plugin->getSettings()->get('sms_password'), 16 | 'till' => $to, 17 | 'from' => $this->plugin->getSettings()->get('sms_from'), 18 | 'meddelande' => $message, 19 | 'prio' => 1 20 | )); 21 | $ret = print_r($ret, true); 22 | // trigger_error('sms sent to '.$to.' with status:'.$ret, E_USER_NOTICE); 23 | } 24 | } -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/Rest/Credentials.php: -------------------------------------------------------------------------------- 1 | account->sip->credential_lists->get('CLXXX')->credentials->create( 13 | * "AwesomeUsername", "SuperSecretPassword", 14 | * ); 15 | * 16 | * :param string $username: the username for the new Credential object 17 | * :param string $password: the password for the new Credential object 18 | * :param array $params: a single array of parameters which is serialized and 19 | * sent directly to the Twilio API. 20 | */ 21 | public function create($username, $password, $params = array()) { 22 | return parent::_create(array( 23 | 'Username' => $username, 24 | 'Password' => $password, 25 | ) + $params); 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/Rest/Members.php: -------------------------------------------------------------------------------- 1 | instance_name($this->client, $this->uri . '/Front'); 15 | } 16 | 17 | /* Participants are identified by CallSid, not like ME123 */ 18 | public function getObjectFromJson($params, $idParam = 'sid') { 19 | return parent::getObjectFromJson($params, 'call_sid'); 20 | } 21 | 22 | public function getResourceName($camelized = false) 23 | { 24 | // The JSON property name is atypical. 25 | return $camelized ? 'Members' : 'queue_members'; 26 | } 27 | } 28 | 29 | -------------------------------------------------------------------------------- /src/SLN/Third/google-api-php-client/tests/general/testdata/cacert.json: -------------------------------------------------------------------------------- 1 | {"a": "-----BEGIN CERTIFICATE-----\nMIICrDCCAlagAwIBAgIJAIhhwVyFHrVfMA0GCSqGSIb3DQEBBQUAMG8xCzAJBgNV\nBAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX\naWRnaXRzIFB0eSBMdGQxCjAIBgNVBAsTAWExCjAIBgNVBAMTAWIxEDAOBgkqhkiG\n9w0BCQEWAWMwHhcNMTIwMjE5MDExMzQxWhcNMTUwMjE4MDExMzQxWjBvMQswCQYD\nVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50ZXJuZXQg\nV2lkZ2l0cyBQdHkgTHRkMQowCAYDVQQLEwFhMQowCAYDVQQDEwFiMRAwDgYJKoZI\nhvcNAQkBFgFjMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAM4Aozh3TMZYcPx7MHln\nD8MtyVUjzo6OdT32JwRHzHHNMMm88lNVfLYIT9C/jgXlDqG0h5wSClMvTQbdihNd\nFOkCAwEAAaOB1DCB0TAdBgNVHQ4EFgQUv0Ahb7HD9TLfdtLeaatjFj91NqYwgaEG\nA1UdIwSBmTCBloAUv0Ahb7HD9TLfdtLeaatjFj91Nqahc6RxMG8xCzAJBgNVBAYT\nAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBXaWRn\naXRzIFB0eSBMdGQxCjAIBgNVBAsTAWExCjAIBgNVBAMTAWIxEDAOBgkqhkiG9w0B\nCQEWAWOCCQCIYcFchR61XzAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA0EA\nKAbxbWHsaVPnYc0YqG/Pn4HbcI1+xnVQSt3hdzq+yC0lP9H7hBMCVSykhhBkZ5XQ\nHA2t6LHuYsjcCO+LBX/4fA==\n-----END CERTIFICATE-----"} -------------------------------------------------------------------------------- /src/SLN/Admin/Calendar.php: -------------------------------------------------------------------------------- 1 | plugin = $plugin; 13 | $this->settings = $plugin->getSettings(); 14 | add_action('admin_menu', array($this, 'admin_menu')); 15 | } 16 | 17 | public function admin_menu() 18 | { 19 | $this->settings_page = add_submenu_page( 20 | 'salon', 21 | __('Salon Calendar', 'sln'), 22 | __('Calendar', 'sln'), 23 | apply_filters('salonviews/settings/capability', 'manage_salon'), 24 | self::PAGE, 25 | array($this, 'show') 26 | ); 27 | 28 | } 29 | 30 | public function show() 31 | { 32 | echo $this->plugin->loadView( 33 | 'admin/calendar', 34 | array( 35 | 'x' => 'x' 36 | ) 37 | ); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /src/SLN/Third/google-api-php-client/examples/index.php: -------------------------------------------------------------------------------- 1 | 9 | 19 | instance_name = "Services_Twilio_Rest_Feedback"; 7 | return parent::__construct($client, $uri, $params); 8 | } 9 | 10 | /** 11 | * Create feedback for the parent call 12 | */ 13 | public function create(array $params = array()) { 14 | $params = $this->client->createData($this->uri, $params); 15 | return new $this->instance_name($this->client, $this->uri, $params); 16 | } 17 | 18 | /** 19 | * Delete feedback for the parent call 20 | */ 21 | public function delete() { 22 | $this->client->deleteData($this->uri); 23 | } 24 | 25 | /** 26 | * Fetch the feedback for the parent call 27 | */ 28 | public function get() { 29 | return new $this->instance_name( 30 | $this->client, $this->uri 31 | ); 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/SLN/Third/google-api-php-client/src/Google/Verifier/Abstract.php: -------------------------------------------------------------------------------- 1 | 22 | */ 23 | abstract class Google_Verifier_Abstract 24 | { 25 | /** 26 | * Checks a signature, returns true if the signature is correct, 27 | * false otherwise. 28 | */ 29 | abstract public function verify($data, $signature); 30 | } 31 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/Rest/CredentialList.php: -------------------------------------------------------------------------------- 1 | setupSubresources( 38 | 'credentials' 39 | ); 40 | } 41 | } 42 | 43 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/Rest/FeedbackSummary.php: -------------------------------------------------------------------------------- 1 | instance_name = "Services_Twilio_Rest_FeedbackSummary"; 7 | return parent::__construct($client, $uri, $params); 8 | } 9 | 10 | /** 11 | * Create feedback summary for calls 12 | */ 13 | public function create(array $params = array()) { 14 | $params = $this->client->createData($this->uri, $params); 15 | return new $this->instance_name($this->client, $this->uri, $params); 16 | } 17 | 18 | /** 19 | * Delete a feedback summary 20 | */ 21 | public function delete($sid) { 22 | $this->client->deleteData($this->uri . '/' . $sid); 23 | } 24 | 25 | /** 26 | * Get a feedback summary 27 | */ 28 | public function get($sid) { 29 | return new $this->instance_name( 30 | $this->client, $this->uri . '/' . $sid 31 | ); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/Rest/Account.php: -------------------------------------------------------------------------------- 1 | setupSubresources( 7 | 'applications', 8 | 'available_phone_numbers', 9 | 'outgoing_caller_ids', 10 | 'calls', 11 | 'conferences', 12 | 'incoming_phone_numbers', 13 | 'media', 14 | 'messages', 15 | 'notifications', 16 | 'outgoing_callerids', 17 | 'recordings', 18 | 'sms_messages', 19 | 'short_codes', 20 | 'tokens', 21 | 'transcriptions', 22 | 'connect_apps', 23 | 'authorized_connect_apps', 24 | 'usage_records', 25 | 'usage_triggers', 26 | 'queues', 27 | 'sip', 28 | 'addresses' 29 | ); 30 | 31 | $this->sandbox = new Services_Twilio_Rest_Sandbox( 32 | $client, $uri . '/Sandbox' 33 | ); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/SLN/Third/google-api-php-client/tests/general/testdata/cacert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICrDCCAlagAwIBAgIJAIhhwVyFHrVfMA0GCSqGSIb3DQEBBQUAMG8xCzAJBgNV 3 | BAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX 4 | aWRnaXRzIFB0eSBMdGQxCjAIBgNVBAsTAWExCjAIBgNVBAMTAWIxEDAOBgkqhkiG 5 | 9w0BCQEWAWMwHhcNMTIwMjE5MDExMzQxWhcNMTUwMjE4MDExMzQxWjBvMQswCQYD 6 | VQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50ZXJuZXQg 7 | V2lkZ2l0cyBQdHkgTHRkMQowCAYDVQQLEwFhMQowCAYDVQQDEwFiMRAwDgYJKoZI 8 | hvcNAQkBFgFjMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAM4Aozh3TMZYcPx7MHln 9 | D8MtyVUjzo6OdT32JwRHzHHNMMm88lNVfLYIT9C/jgXlDqG0h5wSClMvTQbdihNd 10 | FOkCAwEAAaOB1DCB0TAdBgNVHQ4EFgQUv0Ahb7HD9TLfdtLeaatjFj91NqYwgaEG 11 | A1UdIwSBmTCBloAUv0Ahb7HD9TLfdtLeaatjFj91Nqahc6RxMG8xCzAJBgNVBAYT 12 | AkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBXaWRn 13 | aXRzIFB0eSBMdGQxCjAIBgNVBAsTAWExCjAIBgNVBAMTAWIxEDAOBgkqhkiG9w0B 14 | CQEWAWOCCQCIYcFchR61XzAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA0EA 15 | KAbxbWHsaVPnYc0YqG/Pn4HbcI1+xnVQSt3hdzq+yC0lP9H7hBMCVSykhhBkZ5XQ 16 | HA2t6LHuYsjcCO+LBX/4fA== 17 | -----END CERTIFICATE----- -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/Rest/MediaInstance.php: -------------------------------------------------------------------------------- 1 | `_. 6 | * 7 | * .. php:attr:: sid 8 | * 9 | * A 34 character string that identifies this object 10 | * 11 | * .. php:attr:: account_sid 12 | * 13 | * A 34 character string representing the account that sent the message 14 | * 15 | * .. php:attr:: parent_sid 16 | * 17 | * The sid of the message that created this media. 18 | * 19 | * .. php:attr:: date_created 20 | * 21 | * The date the message was created 22 | * 23 | * .. php:attr:: date_updated 24 | * 25 | * The date the message was updated 26 | * 27 | * .. php:attr:: content_type 28 | * 29 | * The content-type of the media. 30 | */ 31 | class Services_Twilio_Rest_MediaInstance extends Services_Twilio_InstanceResource { 32 | public function __construct($client, $uri) { 33 | $uri = str_replace('MediaInstance', 'Media', $uri); 34 | parent::__construct($client, $uri); 35 | } 36 | } 37 | 38 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/Rest/Media.php: -------------------------------------------------------------------------------- 1 | ` objects. 5 | * For the definitive reference, see the `Twilio Media List Documentation 6 | * `_. 7 | */ 8 | class Services_Twilio_Rest_Media extends Services_Twilio_ListResource { 9 | 10 | 11 | // This is overridden because the list key in the Twilio response 12 | // is "media_list", not "media". 13 | public function getResourceName($camelized = false) 14 | { 15 | if ($camelized) { 16 | return "MediaList"; 17 | } else { 18 | return "media_list"; 19 | } 20 | } 21 | 22 | // We manually set the instance name here so that the parent 23 | // constructor doesn't attempt to figure out it. It would do it 24 | // incorrectly because we override getResourceName above. 25 | public function __construct($client, $uri) { 26 | $this->instance_name = "Services_Twilio_Rest_MediaInstance"; 27 | parent::__construct($client, $uri); 28 | } 29 | 30 | } 31 | 32 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/Rest/IpAccessControlList.php: -------------------------------------------------------------------------------- 1 | setupSubresources( 37 | 'ip_addresses' 38 | ); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/RequestValidator.php: -------------------------------------------------------------------------------- 1 | AuthToken = $token; 11 | } 12 | 13 | public function computeSignature($url, $data = array()) 14 | { 15 | // sort the array by keys 16 | ksort($data); 17 | 18 | // append them to the data string in order 19 | // with no delimiters 20 | foreach($data as $key => $value) 21 | $url .= "$key$value"; 22 | 23 | // This function calculates the HMAC hash of the data with the key 24 | // passed in 25 | // Note: hash_hmac requires PHP 5 >= 5.1.2 or PECL hash:1.1-1.5 26 | // Or http://pear.php.net/package/Crypt_HMAC/ 27 | return base64_encode(hash_hmac("sha1", $url, $this->AuthToken, true)); 28 | } 29 | 30 | public function validate($expectedSignature, $url, $data = array()) 31 | { 32 | return $this->computeSignature($url, $data) 33 | == $expectedSignature; 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/SLN/PostType/Abstract.php: -------------------------------------------------------------------------------- 1 | plugin = $plugin; 11 | $this->postType = $postType; 12 | add_action('init', array($this, 'init')); 13 | add_filter('post_updated_messages', array($this, 'updated_messages')); 14 | add_filter('enter_title_here', array($this, 'enter_title_here'), 10, 2); 15 | } 16 | 17 | public function init() 18 | { 19 | register_post_type($this->getPostType(), $this->getPostTypeArgs()); 20 | } 21 | 22 | abstract protected function getPostTypeArgs(); 23 | 24 | abstract public function enter_title_here($title, $post); 25 | 26 | abstract public function updated_messages($messages); 27 | 28 | public function getPostType() 29 | { 30 | return $this->postType; 31 | } 32 | 33 | /** 34 | * @return SLN_Plugin 35 | */ 36 | protected function getPlugin() 37 | { 38 | return $this->plugin; 39 | } 40 | } -------------------------------------------------------------------------------- /src/SLN/Third/google-api-php-client/autoload.php: -------------------------------------------------------------------------------- 1 | setupSubresources( 7 | 'today', 8 | 'yesterday', 9 | 'all_time', 10 | 'this_month', 11 | 'last_month', 12 | 'daily', 13 | 'monthly', 14 | 'yearly' 15 | ); 16 | } 17 | } 18 | 19 | class Services_Twilio_Rest_Today extends Services_Twilio_TimeRangeResource { } 20 | 21 | class Services_Twilio_Rest_Yesterday extends Services_Twilio_TimeRangeResource { } 22 | 23 | class Services_Twilio_Rest_LastMonth extends Services_Twilio_TimeRangeResource { } 24 | 25 | class Services_Twilio_Rest_ThisMonth extends Services_Twilio_TimeRangeResource { } 26 | 27 | class Services_Twilio_Rest_AllTime extends Services_Twilio_TimeRangeResource { } 28 | 29 | class Services_Twilio_Rest_Daily extends Services_Twilio_UsageResource { } 30 | 31 | class Services_Twilio_Rest_Monthly extends Services_Twilio_UsageResource { } 32 | 33 | class Services_Twilio_Rest_Yearly extends Services_Twilio_UsageResource { } 34 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/Rest/IpAddresses.php: -------------------------------------------------------------------------------- 1 | instance_name = "Services_Twilio_Rest_IpAddress"; 7 | parent::__construct($client, $uri); 8 | } 9 | 10 | /** 11 | * Creates a new IpAddress instance 12 | * 13 | * Example usage: 14 | * 15 | * .. code-block:: php 16 | * 17 | * $client->account->sip->ip_access_control_lists->get('ALXXX')->ip_addresses->create( 18 | * "FriendlyName", "127.0.0.1" 19 | * ); 20 | * 21 | * :param string $friendly_name: the friendly name for the new IpAddress object 22 | * :param string $ip_address: the ip address for the new IpAddress object 23 | * :param array $params: a single array of parameters which is serialized and 24 | * sent directly to the Twilio API. 25 | */ 26 | public function create($friendly_name, $ip_address, $params = array()) { 27 | return parent::_create(array( 28 | 'FriendlyName' => $friendly_name, 29 | 'IpAddress' => $ip_address, 30 | ) + $params); 31 | } 32 | } 33 | 34 | -------------------------------------------------------------------------------- /src/SLN/Third/google-api-php-client/src/Google/autoload.php: -------------------------------------------------------------------------------- 1 | instance_name = 'Services_Twilio_Rest_IncomingPhoneNumber'; 7 | return $camelized ? 'IncomingPhoneNumbers' : 'incoming_phone_numbers'; 8 | } 9 | 10 | /** 11 | * Purchase a new phone number. 12 | * 13 | * Example usage: 14 | * 15 | * .. code-block:: php 16 | * 17 | * $marlosBurner = '+14105551234'; 18 | * $client->account->incoming_phone_numbers->local->purchase($marlosBurner); 19 | * 20 | * :param string $phone_number: The phone number to purchase 21 | * :param array $params: An optional array of parameters to pass along with 22 | * the request (to configure the phone number) 23 | */ 24 | public function purchase($phone_number, array $params = array()) { 25 | $postParams = array( 26 | 'PhoneNumber' => $phone_number 27 | ); 28 | return $this->create($postParams + $params); 29 | } 30 | 31 | public function create(array $params = array()) { 32 | return parent::_create($params); 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /src/SLN/Third/google-api-php-client/src/Google/Task/Retryable.php: -------------------------------------------------------------------------------- 1 | 4 | Copyright (C) 2011, Neuman Vong 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy of 7 | this software and associated documentation files (the "Software"), to deal in 8 | the Software without restriction, including without limitation the rights to 9 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies 10 | of the Software, and to permit persons to whom the Software is furnished to do 11 | so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in all 14 | copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | SOFTWARE. 23 | -------------------------------------------------------------------------------- /src/SLN/Shortcode/Salon/AttendantStep.php: -------------------------------------------------------------------------------- 1 | getPlugin()->getBookingBuilder(); 9 | $values = isset($_POST['sln']) ? $_POST['sln'] : array(); 10 | foreach ($this->getAttendants() as $attendant) { 11 | if (isset($values['attendant']) && $values['attendant'] == $attendant->getId()) { 12 | $bb->setAttendant($attendant); 13 | } 14 | } 15 | $bb->save(); 16 | 17 | return true; 18 | } 19 | 20 | /** 21 | * @return SLN_Wrapper_Attendant[] 22 | */ 23 | public function getAttendants() 24 | { 25 | if (!isset($this->attendants)) { 26 | $this->attendants = array(); 27 | foreach ($this->getPlugin()->getAttendants() as $attendant) { 28 | $this->attendants[] = $attendant; 29 | } 30 | } 31 | 32 | return $this->attendants; 33 | } 34 | 35 | public function isValid() 36 | { 37 | $tmp = $this->getAttendants(); 38 | 39 | return (!empty($tmp)) && parent::isValid(); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /src/SLN/Third/google-api-php-client/tests/general/testdata/service-12345.json: -------------------------------------------------------------------------------- 1 | { 2 | "private_key_id": "1936f241be592afc6f3a6d309f75cbf5229d3e75", 3 | "private_key": "-----BEGIN PRIVATE KEY-----\nMIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBALatQBvyVfVxdKFT\n3jMHUk0hSEs9Z3WaEw1q+597Fo+f2j5xOIzzzHKX4twWtSYWpSNTaVsFBX7cYpKu\nxYD8oiFnb/Djmud36h4yZsinmoTAi8tn7ldHMi3VICt05IKNRYPU14AQ/FANBvzZ\nxPUxVmf2Q8qZ1/HhXRGE0GLhJGMtAgMBAAECgYAB1BogLXzOyCPyuXQv7pLUUtD2\nb9bpRnGKYNfD8Od46JC2r0txnb8eJocOzOtjRjbA88TKNHKpomsaLMWtVNoKlzMX\n4DdWk0we4knIa2ZNc3rHYQIHVTESYUa3fH/I/t2XBmbiwyYdegfXl7OmxHb9kekk\nQ1HBKq2SA2LRHWydwQJBAPIdT6s1KvUVsdW7JVu3MxMSlSc2dyQV9ay44wuxYaVV\nfvV7BM/J+/oHSh4GU2Os+kqRHOuouHm2TQ3gsQlBsqcCQQDBJ0iDoYZozVQB36eE\nlPAzoK6H+U21rx5EErFNYu97OKWn+z8kwbGtBU8CSJhkY/OQGmpg6MpoJO/Md03Y\nxVoLAkAFeZg1nOwtwqHU3XiIzGnBQqhQzLCBBmYZ08x+lTJKFNbcIj4HnN+v1b5d\nU3NLS7wVN5bZ1WTmi7LOX4hhVzT9AkBBbQQECleT8lENXWvJ3gVLB5d22Xx4GTxA\nRLCoDOYfr/103Ab0dWOwvsaXeG2eO7kJy9jSwKenBTPw50yIK7knAkBC2J/z6X7l\nB/dDRTxdd0gCG7JIy9N3cUgHBmDH2eycmPncWGJ+aZrK1p9NmAytP+Ksi4AGMJX5\nH5cT1I/UOEn1\n-----END PRIVATE KEY-----\n", 4 | "client_email": "12345-is5nq94smihmoa2k0567jab6u6vj278c@developer.gserviceaccount.com", 5 | "client_id": "12345-is5nq94smihmoa2k0567jab6u6vj278c.apps.googleusercontent.com", 6 | "type": "service_account" 7 | } -------------------------------------------------------------------------------- /scss/_typo.scss: -------------------------------------------------------------------------------- 1 | %font-big { 2 | color: $cl_main; 3 | font-family: "Open sans", serif; 4 | font-size: 18px; 5 | } 6 | 7 | %font-small { 8 | color: $cl_main; 9 | font-family: "Open Sans", serif; 10 | font-size: 16px; 11 | } 12 | 13 | %font-icon { 14 | color: white; 15 | font-family: "FontAwesome"; 16 | font-size: 24px; 17 | } 18 | 19 | 20 | // /// /// /// /// /// /// /// // 21 | // /// FONT AWESOME 22 | // /// /// /// /// /// /// /// // 23 | $fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.4.0/fonts" !default; 24 | $fa-version: "4.4.0" !default; 25 | @font-face { 26 | font-family: 'FontAwesome'; 27 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}'); 28 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'), 29 | url('#{$fa-font-path}/fontawesome-webfont.woff2?v=#{$fa-version}') format('woff2'), 30 | url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'), 31 | url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'), 32 | url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg'); 33 | font-weight: normal; 34 | font-style: normal; 35 | } 36 | // /// FONT AWESOME // END -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/PartialApplicationHelper.php: -------------------------------------------------------------------------------- 1 | 10 | * @license http://creativecommons.org/licenses/MIT/ MIT 11 | * @link http://pear.php.net/package/Services_Twilio 12 | */ 13 | class Services_Twilio_PartialApplicationHelper 14 | { 15 | private $callbacks; 16 | 17 | public function __construct() 18 | { 19 | $this->callbacks = array(); 20 | } 21 | 22 | public function set($method, $callback, array $args) 23 | { 24 | if (!is_callable($callback)) { 25 | return FALSE; 26 | } 27 | $this->callbacks[$method] = array($callback, $args); 28 | } 29 | 30 | public function __call($method, $args) 31 | { 32 | if (!isset($this->callbacks[$method])) { 33 | throw new Exception("Method not found: $method"); 34 | } 35 | list($callback, $cb_args) = $this->callbacks[$method]; 36 | return call_user_func_array( 37 | $callback, 38 | array_merge($cb_args, $args) 39 | ); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /src/SLN/Third/google-api-php-client/src/Google/Logger/Null.php: -------------------------------------------------------------------------------- 1 | plugin->getSettings(); 10 | $prefix = str_replace('+','',$settings->get('sms_prefix')); 11 | $to = str_replace(' ','',$to); 12 | // Set parameters 13 | $data = http_build_query( 14 | array( 15 | 'acc' => $this->plugin->getSettings()->get('sms_account'), 16 | 'pass' => $this->plugin->getSettings()->get('sms_password'), 17 | 'msg' => $message, 18 | 'from' => $this->plugin->getSettings()->get('sms_from'), 19 | 'to' => $to, 20 | 'prio' => 1, 21 | 'type' => '' 22 | ) 23 | ); 24 | $opts = array('http' => 25 | array( 26 | 'method' => 'GET', 27 | 'header' => 'Content-type: application/x-www-form-urlencoded', 28 | 'content' => $data 29 | ) 30 | ); 31 | $context = stream_context_create($opts); 32 | $ret = file_get_contents(self::API_URL . '?' . $data, false, $context); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/TimeRangeResource.php: -------------------------------------------------------------------------------- 1 | 6 | * @license http://creativecommons.org/licenses/MIT/ MIT 7 | * @link http://pear.php.net/package/Services_Twilio 8 | */ 9 | class Services_Twilio_TimeRangeResource extends Services_Twilio_UsageResource { 10 | 11 | /** 12 | * Return a UsageRecord corresponding to the given category. 13 | * 14 | * @param string $category The category of usage to retrieve. For a full 15 | * list of valid categories, please see the documentation at 16 | * http://www.twilio.com/docs/api/rest/usage-records#usage-all-categories 17 | * @return Services_Twilio_Rest_UsageRecord 18 | * @throws Services_Twilio_RestException 19 | */ 20 | public function getCategory($category) { 21 | $page = $this->getPage(0, 1, array( 22 | 'Category' => $category, 23 | )); 24 | $items = $page->getItems(); 25 | if (!is_array($items) || count($items) === 0) { 26 | throw new Services_Twilio_RestException( 27 | 400, "Usage record data is unformattable."); 28 | } 29 | return $items[0]; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/RestException.php: -------------------------------------------------------------------------------- 1 | status = $status; 27 | $this->info = $info; 28 | parent::__construct($message, $code); 29 | } 30 | 31 | /** 32 | * Get the HTTP status code 33 | */ 34 | public function getStatus() { 35 | return $this->status; 36 | } 37 | 38 | /** 39 | * Get a link to more information 40 | */ 41 | public function getInfo() { 42 | return $this->info; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /src/SLN/Action/Ajax/UpdateUser.php: -------------------------------------------------------------------------------- 1 | getResult($_POST['s']); 9 | if(!$result){ 10 | $ret = array( 11 | 'success' => 0, 12 | 'errors' => array(__('User not found','sln')) 13 | ); 14 | }else{ 15 | $ret = array( 16 | 'success' => 1, 17 | 'result' => $result, 18 | 'message' => __('User updated','sln') 19 | ); 20 | } 21 | return $ret; 22 | } 23 | private function getResult($id) 24 | { 25 | $number = 1; 26 | $u = new WP_User($id); 27 | if(!$u) return; 28 | $values = array( 29 | 'id' => $u->ID, 30 | 'firstname' => $u->user_firstname, 31 | 'lastname' => $u->user_lastname, 32 | 'email' => $u->user_email, 33 | 'phone' => get_user_meta($u->ID, '_sln_phone', true), 34 | 'address' => get_user_meta($u->ID, '_sln_address', true) 35 | ); 36 | return $values; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/SLN/Metabox/Abstract.php: -------------------------------------------------------------------------------- 1 | plugin = $plugin; 11 | $this->postType = $postType; 12 | $this->init(); 13 | } 14 | 15 | protected function init() 16 | { 17 | add_action('add_meta_boxes', array($this, 'add_meta_boxes')); 18 | add_action('save_post', array($this, 'save_post'), 10, 2); 19 | } 20 | 21 | abstract public function add_meta_boxes(); 22 | 23 | abstract protected function getFieldList(); 24 | 25 | public function save_post($post_id, $post) 26 | { 27 | $pt = $this->getPostType(); 28 | $h = new SLN_Metabox_Helper; 29 | if (!$h->isValidRequest($pt, $post_id, $post)) { 30 | return; 31 | } 32 | $h->updateMetas($post_id, $h->processRequest($pt, $this->getFieldList())); 33 | } 34 | 35 | /** @return SLN_Plugin */ 36 | protected function getPlugin() 37 | { 38 | return $this->plugin; 39 | } 40 | 41 | /** @return string */ 42 | protected function getPostType() 43 | { 44 | return $this->postType; 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /src/SLN/Third/google-api-php-client/tests/general/testdata/test_public_key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDQjCCAiqgAwIBAgIJAMJ1Z12ZdGgLMA0GCSqGSIb3DQEBBQUAMB8xHTAbBgNV 3 | BAMTFHRlc3Qtc2VydmljZS1hY2NvdW50MB4XDTExMDgyMzIwNTczNFoXDTIxMDgy 4 | MDIwNTczNFowHzEdMBsGA1UEAxMUdGVzdC1zZXJ2aWNlLWFjY291bnQwggEiMA0G 5 | CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDpbFTjUXd02HFluI2G0kGKp1J5K2F8 6 | cYr7hKXHcsmKo6S/5g8AEYnnV1fEbiopoGt7UWV4T0LA99K0gqQ7QmvZKvFHXlgR 7 | XJH1aO+ZipVs3ycZOcjBMcw4hspFSi4IyQta64gASFUT5NaxRVGhzAuPlzH09dZQ 8 | RJ0NL54HccGNzEDaLx5usB8t2aRHbE4zRWJlNIsjgWnfVoiXwOv5oRhyfFMIaTu1 9 | eIp3XP1QAv5cuYS2U4ZJ+J7Gzg6E7t4PWqK7rGjnc5BJsVIoiL77K/xKUWABNgHz 10 | b6JuiEp3LX9f2H5+CKo/IJFWoyIYWdZiu69LZivife9sTXmDnOcZkisRAgMBAAGj 11 | gYAwfjAdBgNVHQ4EFgQU0RkXlevVO2zuTFP/ksFUbNkpm+kwTwYDVR0jBEgwRoAU 12 | 0RkXlevVO2zuTFP/ksFUbNkpm+mhI6QhMB8xHTAbBgNVBAMTFHRlc3Qtc2Vydmlj 13 | ZS1hY2NvdW50ggkAwnVnXZl0aAswDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUF 14 | AAOCAQEAT+3VKautn+uV7ZQWbfx6xrGaDZ5wVK9FWOTVKsjdXyp11jtoVkDONLz5 15 | 3J7wgppZWabPargIZUHe9/P6j7QTgNV2na2thGHtVRIRyDECnVrvhCn/IDpMeJjj 16 | IAuysmSITHGEwb4AvRC5HdqfWzBqAvRhjJ2crcHZpx5/KkYZgJz9ylGJCynxpbHU 17 | 1aRu4qpkQNB4t4z5EzNOSLkFw9vEtm0hNX76CsNJFd0XDEKDQI2Lsc0WfDzQ1ZQH 18 | UVzIoTmQDkYGylQOBVyxZoGI6fuSo8c2I1BKvsdBGhSPjePNvaKUbmLSwUsranhX 19 | 2Y1kn7xbDTUHymZ0+g5rDM9kWmhZfg== 20 | -----END CERTIFICATE----- 21 | -------------------------------------------------------------------------------- /views/js/calendar/year.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
<%= cal._month(0) %>
4 |
<%= cal._month(1) %>
5 |
<%= cal._month(2) %>
6 |
<%= cal._month(3) %>
7 |
8 |
9 |
<%= cal._month(4) %>
10 |
<%= cal._month(5) %>
11 |
<%= cal._month(6) %>
12 |
<%= cal._month(7) %>
13 |
14 |
15 |
<%= cal._month(8) %>
16 |
<%= cal._month(9) %>
17 |
<%= cal._month(10) %>
18 |
<%= cal._month(11) %>
19 |
20 |
21 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/Rest/UsageTriggers.php: -------------------------------------------------------------------------------- 1 | `_. 13 | * @param string $value Fire the trigger when usage crosses this value. 14 | * @param string $url The URL to request when the trigger fires. 15 | * @param array $params Optional parameters for this trigger. A full list of parameters can be found in the `Usage Trigger documentation `_. 16 | * @return Services_Twilio_Rest_UsageTrigger The created trigger 17 | */ 18 | function create($category, $value, $url, array $params = array()) { 19 | return parent::_create(array( 20 | 'UsageCategory' => $category, 21 | 'TriggerValue' => $value, 22 | 'CallbackUrl' => $url, 23 | ) + $params); 24 | } 25 | 26 | } 27 | 28 | -------------------------------------------------------------------------------- /src/SLN/Helper/AvailabilityItems.php: -------------------------------------------------------------------------------- 1 | items[] = new SLN_Helper_AvailabilityItem($item); 11 | } 12 | if (empty($this->items)) { 13 | $this->items = array(new SLN_Helper_AvailabilityItemNull(array())); 14 | } 15 | } 16 | 17 | /** 18 | * @return SLN_Helper_AvailabilityItem[] 19 | */ 20 | public function toArray() 21 | { 22 | return $this->items; 23 | } 24 | 25 | public function isValidDatetime(DateTime $date) 26 | { 27 | return $this->isValidTime($date->format('Y-m-d'), $date->format('H:i')); 28 | } 29 | 30 | public function isValidDate($day) 31 | { 32 | foreach ($this->toArray() as $av) { 33 | if ($av->isValidDate($day)) { 34 | return true; 35 | } 36 | } 37 | 38 | return false; 39 | } 40 | 41 | public function isValidTime($date, $time) 42 | { 43 | foreach ($this->toArray() as $av) { 44 | if ($av->isValidTime($date, $time)) { 45 | return true; 46 | } 47 | } 48 | 49 | return false; 50 | } 51 | 52 | 53 | } -------------------------------------------------------------------------------- /src/SLN/Metabox/BookingActions.php: -------------------------------------------------------------------------------- 1 | getPostType(); 8 | add_meta_box( 9 | $pt . '-actions', 10 | __('Booking Actions', 'sln'), 11 | array($this, 'actions_meta_box'), 12 | $pt, 13 | 'side', 14 | 'low' 15 | ); 16 | } 17 | 18 | 19 | public function actions_meta_box($object, $box) 20 | { 21 | if(in_array($object->post_status,array('draft','auto-draft'))) 22 | return ''; 23 | echo $this->getPlugin()->loadView( 24 | 'metabox/booking_actions', 25 | array( 26 | 'metabox' => $this, 27 | 'settings' => $this->getPlugin()->getSettings(), 28 | 'booking' => $this->getPlugin()->createBooking($object), 29 | 'postType' => $this->getPostType(), 30 | 'helper' => new SLN_Metabox_Helper() 31 | ) 32 | ); 33 | do_action($this->getPostType() . '_actions_meta_box', $object, $box); 34 | } 35 | 36 | protected function getFieldList() 37 | { 38 | return array( 39 | ); 40 | } 41 | public function save_post($post_id, $post){ 42 | 43 | } 44 | } 45 | 46 | -------------------------------------------------------------------------------- /src/SLN/Enum/TimeFormat.php: -------------------------------------------------------------------------------- 1 | 'H:i', 11 | self::_SHORT => 'g:ia', 12 | ); 13 | private static $jsFormats = array( 14 | self::_DEFAULT => 'hh:ii', 15 | self::_SHORT => 'H:iip' 16 | ); 17 | 18 | public static function toArray() 19 | { 20 | return self::$labels; 21 | } 22 | 23 | public static function getLabel($key) 24 | { 25 | return isset(self::$labels[$key]) ? self::$labels[$key] : self::$labels[self::_DEFAULT]; 26 | } 27 | public static function getPhpFormat($key) 28 | { 29 | return isset(self::$phpFormats[$key]) ? self::$phpFormats[$key] : self::$phpFormats[self::_DEFAULT]; 30 | } 31 | public static function getJsFormat($key) 32 | { 33 | return isset(self::$jsFormats[$key]) ? self::$jsFormats[$key] : self::$jsFormats[self::_DEFAULT]; 34 | } 35 | 36 | public static function init() 37 | { 38 | $d = new \DateTime; 39 | $d = $d->format('U'); 40 | foreach(self::$phpFormats as $k => $v){ 41 | self::$labels[$k] = date_i18n($v,$d); 42 | } 43 | } 44 | } 45 | 46 | SLN_Enum_TimeFormat::init(); 47 | -------------------------------------------------------------------------------- /src/SLN/Third/google-api-php-client/.travis.yml: -------------------------------------------------------------------------------- 1 | language: php 2 | 3 | services: 4 | - memcached 5 | 6 | env: 7 | global: 8 | - MEMCACHE_HOST=127.0.0.1 9 | - MEMCACHE_PORT=11211 10 | 11 | sudo: false 12 | 13 | cache: 14 | directories: 15 | - $HOME/.composer/cache 16 | 17 | matrix: 18 | fast_finish: true 19 | include: 20 | # Can't test against 5.2; openssl is not available: 21 | # http://docs.travis-ci.com/user/languages/php/#PHP-installation 22 | - php: 5.3 23 | - php: 5.4 24 | - php: 5.5 25 | - php: 5.6 26 | env: PHPCS=true 27 | - php: hhvm 28 | 29 | before_install: 30 | - composer self-update 31 | 32 | install: 33 | - composer install 34 | 35 | before_script: 36 | - sh -c 'if [ "$TRAVIS_PHP_VERSION" != "hhvm" ]; then echo "extension=memcache.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini; fi;' 37 | - sh -c 'if [ "$TRAVIS_PHP_VERSION" != "hhvm" ]; then echo "extension=memcached.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini; fi;' 38 | - phpenv version-name | grep ^5.[34] && echo "extension=apc.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini ; true 39 | - phpenv version-name | grep ^5.[34] && echo "apc.enable_cli=1" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini ; true 40 | 41 | script: 42 | - vendor/bin/phpunit 43 | - if [[ "$PHPCS" == "true" ]]; then vendor/bin/phpcs src --standard=style/ruleset.xml -np; fi 44 | -------------------------------------------------------------------------------- /src/SLN/Action/Install.php: -------------------------------------------------------------------------------- 1 | $post) { 10 | if (!self::checkPost($post['post']['post_title'], $post['post']['post_type'])) { 11 | $id = wp_insert_post($post['post']); 12 | if (isset($post['meta'])) { 13 | foreach ($post['meta'] as $k => $v) { 14 | add_post_meta($id, $k, $v); 15 | } 16 | } 17 | $ids[$label] = $id; 18 | } 19 | } 20 | if (!get_option(SLN_Settings::KEY)) { 21 | if (isset($ids['thankyou'])) { 22 | $data['settings']['thankyou'] = $ids['thankyou']; 23 | } 24 | if (isset($ids['booking'])) { 25 | $data['settings']['booking'] = $ids['booking']; 26 | } 27 | update_option(SLN_Settings::KEY, $data['settings']); 28 | } 29 | 30 | new SLN_UserRole_SalonStaff(SLN_Plugin::getInstance(), SLN_Plugin::USER_ROLE_STAFF, __('Salon staff', 'sln')); 31 | } 32 | 33 | private static function checkPost($title, $post_type) 34 | { 35 | return get_page_by_title($title, null, $post_type) ? true : false; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/LookupsListResource.php: -------------------------------------------------------------------------------- 1 | getResourceName(true); 7 | /* 8 | * By default trim the 's' from the end of the list name to get the 9 | * instance name (ex Accounts -> Account). This behavior can be 10 | * overridden by child classes if the rule doesn't work. 11 | */ 12 | if (!isset($this->instance_name)) { 13 | $this->instance_name = "Services_Twilio_Rest_Lookups_" . rtrim($name, 's'); 14 | } 15 | 16 | parent::__construct($client, $uri); 17 | } 18 | 19 | /** 20 | * Gets a resource from this list. Overridden to add 21 | * filter parameters. 22 | * 23 | * :param string $number: The phone number 24 | * :return: The resource 25 | * :rtype: :php:class:`InstanceResource ` 26 | */ 27 | public function get($number, $filters = array()) { 28 | $number = rawurlencode($number); 29 | $full_path = $this->uri . "/$number"; 30 | if (!empty($filters)) { 31 | $full_path .= '?' . http_build_query($filters, '', '&'); 32 | } 33 | 34 | $instance = new $this->instance_name( 35 | $this->client, $full_path 36 | ); 37 | return $instance; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /src/SLN/Shortcode/Salon/ServicesStep.php: -------------------------------------------------------------------------------- 1 | getPlugin()->getBookingBuilder(); 10 | $values = isset($_POST['sln']) ? $_POST['sln'] : array(); 11 | foreach ($this->getServices() as $service) { 12 | if (isset($values['services']) && isset($values['services'][$service->getId()])) { 13 | $bb->addService($service); 14 | } else { 15 | $bb->removeService($service); 16 | } 17 | } 18 | $bb->save(); 19 | if (empty($values['services'])) { 20 | $this->addError(__('You must choose at least one service', 'sln')); 21 | 22 | return false; 23 | } else { 24 | return true; 25 | } 26 | } 27 | 28 | /** 29 | * @return SLN_Wrapper_Service[] 30 | */ 31 | public function getServices() 32 | { 33 | if (!isset($this->services)) { 34 | $this->services = array(); 35 | foreach ($this->getPlugin()->getServices() as $service) { 36 | if (!$service->isSecondary()) { 37 | $this->services[] = $service; 38 | } 39 | } 40 | } 41 | 42 | return $this->services; 43 | } 44 | 45 | } 46 | -------------------------------------------------------------------------------- /src/SLN/Third/google-api-php-client/phpunit.xml.dist: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | tests/youtube 9 | 10 | 11 | tests/tasks 12 | 13 | 14 | tests/pagespeed 15 | 16 | 17 | tests/urlshortener 18 | 19 | 20 | tests/plus 21 | 22 | 23 | tests/adsense 24 | 25 | 26 | tests/general 27 | 28 | 29 | 30 | 31 | tests 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /src/SLN/Shortcode/Salon/SecondaryStep.php: -------------------------------------------------------------------------------- 1 | getPlugin()->getBookingBuilder(); 9 | $values = isset($_POST['sln']) ? $_POST['sln'] : array(); 10 | foreach ($this->getServices() as $service) { 11 | if (isset($values['services']) && isset($values['services'][$service->getId()])) { 12 | $bb->addService($service); 13 | } else { 14 | $bb->removeService($service); 15 | } 16 | } 17 | $bb->save(); 18 | 19 | return true; 20 | } 21 | 22 | /** 23 | * @return SLN_Wrapper_Service[] 24 | */ 25 | public function getServices() 26 | { 27 | if (!isset($this->services)) { 28 | $this->services = array(); 29 | foreach ($this->getPlugin()->getServices() as $service) { 30 | if ($service->isSecondary()) { 31 | $this->services[] = $service; 32 | } 33 | } 34 | } 35 | 36 | return $this->services; 37 | } 38 | 39 | public function getTotal() 40 | { 41 | 42 | } 43 | 44 | public function isValid() 45 | { 46 | $tmp = $this->getServices(); 47 | 48 | return (!empty($tmp)) && parent::isValid(); 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /src/SLN/Third/google-api-php-client/src/Google/Auth/Abstract.php: -------------------------------------------------------------------------------- 1 | 25 | * 26 | */ 27 | abstract class Google_Auth_Abstract 28 | { 29 | /** 30 | * An utility function that first calls $this->auth->sign($request) and then 31 | * executes makeRequest() on that signed request. Used for when a request 32 | * should be authenticated 33 | * @param Google_Http_Request $request 34 | * @return Google_Http_Request $request 35 | */ 36 | abstract public function authenticatedRequest(Google_Http_Request $request); 37 | abstract public function sign(Google_Http_Request $request); 38 | } 39 | -------------------------------------------------------------------------------- /src/SLN/Third/google-api-php-client/src/Google/Cache/Null.php: -------------------------------------------------------------------------------- 1 | getDate()->format('H'); 14 | } 15 | if(isset($this->cache[$hour.$minutes])){ 16 | return $this->cache[$hour.$minutes]; 17 | } 18 | $ret = array(); 19 | 20 | $now = clone $this->getDate(); 21 | $now->setTime($hour, $minutes ? $minutes : 0); 22 | 23 | foreach ($this->getBookings() as $b) { 24 | if ($b->getStartsAt() <= $now && $b->getEndsAt() >= $now) { 25 | $ret[] = $b; 26 | } 27 | } 28 | 29 | if(!empty($ret)){ 30 | SLN_Plugin::addLog(__CLASS__.' - checking hour('.$hour.')'); 31 | SLN_Plugin::addLog(__CLASS__.' - found('.count($ret).')'); 32 | foreach($ret as $b){ 33 | SLN_Plugin::addLog(' - ' . $b->getId(). ' => '.$b->getStartsAt()->format('H:i').' - '.$b->getEndsAt()->format('H:i')); 34 | } 35 | }else{ 36 | SLN_Plugin::addLog(__CLASS__.' - checking hour('.$hour.') EMPTY'); 37 | } 38 | $this->cache[$hour] = $ret; 39 | return $ret; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /js/calendar_language/ko-KR.js: -------------------------------------------------------------------------------- 1 | if(!window.calendar_languages) { 2 | window.calendar_languages = {}; 3 | } 4 | window.calendar_languages['ko-KR'] = { 5 | error_noview: '캘린더: {0} 볼 수 없습니다', 6 | error_dateformat: '캘린더: 잘못된 날짜 형식 {0}. "now" 또는 "yyyy-mm-dd" 형식이어야 합니다', 7 | error_loadurl: '캘린더: 이벤트 URL이 설정되지 않았습니다', 8 | error_where: '캘린더: 잘못된 탐색 방향 {0}. 오직 "next" 또는 "prev" 또는 "today"만 가능합니다', 9 | error_timedevide: '캘린더: 시간 분할 매개변수는 소수 없이 60을 분할합니다. 10, 15, 30과 같이 합니다', 10 | 11 | no_events_in_day: '이 날에 이벤트가 없습니다.', 12 | 13 | title_year: '{0}년', 14 | title_month: '{1}년 {0}', 15 | title_week: '{1}년 {0}째주', 16 | title_day: '{3}년 {2} {1}일 {0}', 17 | 18 | week:'주', 19 | all_day: '하루종일', 20 | time: '시간', 21 | events: '이벤트', 22 | before_time: '타임라인 전에 끝남', 23 | after_time: '타임라인 전에 시작함', 24 | 25 | m0: '1월', 26 | m1: '2월', 27 | m2: '3월', 28 | m3: '4월', 29 | m4: '5월', 30 | m5: '6월', 31 | m6: '7월', 32 | m7: '8월', 33 | m8: '9월', 34 | m9: '10월', 35 | m10: '11월', 36 | m11: '12월', 37 | 38 | ms0: '1월', 39 | ms1: '2월', 40 | ms2: '3월', 41 | ms3: '4월', 42 | ms4: '5월', 43 | ms5: '6월', 44 | ms6: '7월', 45 | ms7: '8월', 46 | ms8: '9월', 47 | ms9: '10월', 48 | ms10: '11월', 49 | ms11: '12월', 50 | 51 | d0: '일요일', 52 | d1: '월요일', 53 | d2: '화요일', 54 | d3: '수요일', 55 | d4: '목요일', 56 | d5: '금요일', 57 | d6: '토요일', 58 | 59 | first_day: 2, 60 | 61 | holidays: { 62 | '01-01': '신정', 63 | '01-03': '삼일절', 64 | '05-05': '어린이날', 65 | '06-06': '현충일', 66 | '15-08': '광복절', 67 | '03-10': '개천절', 68 | '25-12': '크리스마스' 69 | } 70 | }; 71 | -------------------------------------------------------------------------------- /src/SLN/Enum/DateFormat.php: -------------------------------------------------------------------------------- 1 | 'd M Y', 11 | self::_SHORT => 'd/m/Y', 12 | self::_SHORT_COMMA => 'd-m-Y' 13 | ); 14 | private static $jsFormats = array( 15 | self::_DEFAULT => 'd M yyyy', 16 | self::_SHORT => 'dd/mm/yyyy', 17 | self::_SHORT_COMMA => 'dd-mm-yyyy' 18 | ); 19 | 20 | public static function toArray() 21 | { 22 | return self::$labels; 23 | } 24 | 25 | public static function getLabel($key) 26 | { 27 | return isset(self::$labels[$key]) ? self::$labels[$key] : self::$labels[self::_DEFAULT]; 28 | } 29 | public static function getPhpFormat($key) 30 | { 31 | return isset(self::$phpFormats[$key]) ? self::$phpFormats[$key] : self::$phpFormats[self::_DEFAULT]; 32 | } 33 | public static function getJsFormat($key) 34 | { 35 | return isset(self::$jsFormats[$key]) ? self::$jsFormats[$key] : self::$jsFormats[self::_DEFAULT]; 36 | } 37 | 38 | public static function init() 39 | { 40 | $d = new \DateTime; 41 | $d = $d->format('U'); 42 | foreach(self::$phpFormats as $k => $v){ 43 | self::$labels[$k] = date_i18n($v,$d); 44 | } 45 | } 46 | } 47 | 48 | SLN_Enum_DateFormat::init(); 49 | -------------------------------------------------------------------------------- /src/SLN/Third/google-api-php-client/src/Google/Service.php: -------------------------------------------------------------------------------- 1 | client = $client; 31 | } 32 | 33 | /** 34 | * Return the associated Google_Client class. 35 | * @return Google_Client 36 | */ 37 | public function getClient() 38 | { 39 | return $this->client; 40 | } 41 | 42 | /** 43 | * Create a new HTTP Batch handler for this service 44 | * 45 | * @return Google_Http_Batch 46 | */ 47 | public function createBatch() 48 | { 49 | return new Google_Http_Batch( 50 | $this->client, 51 | false, 52 | $this->rootUrl, 53 | $this->batchPath 54 | ); 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /src/SLN/Third/google-api-php-client/tests/pagespeed/PageSpeedTest.php: -------------------------------------------------------------------------------- 1 | service = new Google_Service_Pagespeedonline($this->getClient()); 25 | } 26 | 27 | public function testPageSpeed() 28 | { 29 | $this->checkToken(); 30 | $psapi = $this->service->pagespeedapi; 31 | $result = $psapi->runpagespeed('http://code.google.com'); 32 | $this->assertArrayHasKey('kind', $result); 33 | $this->assertArrayHasKey('id', $result); 34 | $this->assertArrayHasKey('responseCode', $result); 35 | $this->assertArrayHasKey('title', $result); 36 | $this->assertArrayHasKey('score', $result->ruleGroups['SPEED']); 37 | $this->assertInstanceOf('Google_Service_Pagespeedonline_ResultPageStats', $result->pageStats); 38 | $this->assertArrayHasKey('minor', $result['version']); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /src/SLN/Third/google-api-php-client/tests/urlshortener/UrlShortenerTests.php: -------------------------------------------------------------------------------- 1 | service = new Google_Service_Urlshortener($this->getClient()); 27 | } 28 | 29 | public function testUrlShort() 30 | { 31 | $url = new Google_Service_Urlshortener_Url(); 32 | $url->longUrl = "http://google.com"; 33 | 34 | $shortUrl = $this->service->url->insert($url); 35 | $this->assertEquals('urlshortener#url', $shortUrl['kind']); 36 | $this->assertEquals('http://google.com/', $shortUrl['longUrl']); 37 | } 38 | 39 | public function testEmptyJsonResponse() 40 | { 41 | $optParams = array('fields' => ''); 42 | $resp = $this->service->url->get('http://goo.gl/KkHq8', $optParams); 43 | 44 | $this->assertEquals("", $resp->longUrl); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /src/SLN/Third/google-api-php-client/src/Google/Service/Genomics.php: -------------------------------------------------------------------------------- 1 | 22 | * An API to store, process, explore, and share DNA sequence reads, reference- 23 | * based alignments, and variant calls.

24 | * 25 | *

26 | * For more information about this service, see the API 27 | * Documentation 28 | *

29 | * 30 | * @author Google, Inc. 31 | */ 32 | class Google_Service_Genomics extends Google_Service 33 | { 34 | 35 | 36 | 37 | 38 | 39 | /** 40 | * Constructs the internal representation of the Genomics service. 41 | * 42 | * @param Google_Client $client 43 | */ 44 | public function __construct(Google_Client $client) 45 | { 46 | parent::__construct($client); 47 | $this->rootUrl = 'https://genomics.googleapis.com/'; 48 | $this->servicePath = ''; 49 | $this->version = 'v1'; 50 | $this->serviceName = 'genomics'; 51 | 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /src/SLN/Third/google-api-php-client/src/Google/Service/Cloudsearch.php: -------------------------------------------------------------------------------- 1 | 22 | * The Google Cloud Search API defines an application interface to index 23 | * documents that contain structured data and to search those indexes. It 24 | * supports full text search.

25 | * 26 | *

27 | * For more information about this service, see the API 28 | * Documentation 29 | *

30 | * 31 | * @author Google, Inc. 32 | */ 33 | class Google_Service_Cloudsearch extends Google_Service 34 | { 35 | 36 | 37 | 38 | 39 | 40 | /** 41 | * Constructs the internal representation of the Cloudsearch service. 42 | * 43 | * @param Google_Client $client 44 | */ 45 | public function __construct(Google_Client $client) 46 | { 47 | parent::__construct($client); 48 | $this->servicePath = ''; 49 | $this->version = 'v1'; 50 | $this->serviceName = 'cloudsearch'; 51 | 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /src/SLN/Enum/AvailabilityModeProvider.php: -------------------------------------------------------------------------------- 1 | 'SLN_Helper_Availability_Basic_DayBookings', 10 | 'advanced' => 'SLN_Helper_Availability_Advanced_DayBookings' 11 | ); 12 | 13 | public static function toArray() 14 | { 15 | return self::$labels; 16 | } 17 | 18 | public static function getLabel($key) 19 | { 20 | if (isset(self::$labels[$key])) { 21 | throw new \Exception('label not found'); 22 | } 23 | return self::$labels[$key]; 24 | } 25 | 26 | /** 27 | * @param $key 28 | * @param DateTime $date 29 | * @return SLN_Helper_Availability_AbstractDayBookings 30 | * @throws Exception 31 | */ 32 | public static function getService($key,DateTime $date) 33 | { 34 | $name = self::getServiceName($key); 35 | return new $name($date); 36 | } 37 | 38 | public static function getServiceName($key){ 39 | if (!isset(self::$classes[$key])) { 40 | throw new \Exception(sprintf('provider "%s" not found',$key)); 41 | } 42 | return self::$classes[$key]; 43 | } 44 | 45 | public static function init() 46 | { 47 | self::$labels = array( 48 | 'basic' => __('Basic (checks only the booking date)', 'sln'), 49 | 'advanced' => __('Advanced (evaluates also booking duration)', 'sln'), 50 | ); 51 | } 52 | } 53 | 54 | SLN_Enum_AvailabilityModeProvider::init(); -------------------------------------------------------------------------------- /src/SLN/Third/google-api-php-client/src/Google/Service/Playmoviespartner.php: -------------------------------------------------------------------------------- 1 | 22 | * An API providing Google Play Movies Partners a way to get the delivery status 23 | * of their titles.

24 | * 25 | *

26 | * For more information about this service, see the API 27 | * Documentation 28 | *

29 | * 30 | * @author Google, Inc. 31 | */ 32 | class Google_Service_Playmoviespartner extends Google_Service 33 | { 34 | 35 | 36 | 37 | 38 | 39 | /** 40 | * Constructs the internal representation of the Playmoviespartner service. 41 | * 42 | * @param Google_Client $client 43 | */ 44 | public function __construct(Google_Client $client) 45 | { 46 | parent::__construct($client); 47 | $this->rootUrl = 'https://playmoviespartner.googleapis.com/'; 48 | $this->servicePath = ''; 49 | $this->version = 'v1'; 50 | $this->serviceName = 'playmoviespartner'; 51 | 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /src/SLN/Enum/BookingStatus.php: -------------------------------------------------------------------------------- 1 | 'warning', 16 | self::PAID => 'success', 17 | self::PAY_LATER => 'info', 18 | self::CANCELED => 'danger', 19 | self::CONFIRMED => 'success', 20 | self::ERROR => 'default', 21 | ); 22 | 23 | public static function toArray() 24 | { 25 | return self::$labels; 26 | } 27 | 28 | public static function getLabel($key) 29 | { 30 | return isset(self::$labels[$key]) ? self::$labels[$key] : self::$labels[self::ERROR]; 31 | } 32 | public static function getColor($key) 33 | { 34 | return isset(self::$colors[$key]) ? self::$colors[$key] : self::$colors[self::ERROR]; 35 | } 36 | 37 | 38 | public static function init() 39 | { 40 | self::$labels = array( 41 | self::PENDING => __('Pending', 'sln'), 42 | self::PAID => __('Paid', 'sln'), 43 | self::PAY_LATER => __('Pay later', 'sln'), 44 | self::CANCELED => __('Canceled', 'sln'), 45 | self::CONFIRMED => __('Confirmed', 'sln'), 46 | self::ERROR => __('ERROR', 'sln'), 47 | ); 48 | } 49 | } 50 | 51 | SLN_Enum_BookingStatus::init(); 52 | -------------------------------------------------------------------------------- /js/calendar_language/no-NO.js: -------------------------------------------------------------------------------- 1 | if(!window.calendar_languages) { 2 | window.calendar_languages = {}; 3 | } 4 | window.calendar_languages['sv-SE'] = { 5 | error_noview: 'Kalender: {0} ble ikke funnet', 6 | error_dateformat: 'Kalender: Feil datoformat {0}. Må være "now" eller "åååå-mm-dd"', 7 | error_loadurl: 'Kalender: urlen for events er ikke satt', 8 | error_where: 'Kalender: Feil navigeringsrettning {0}. Kan kun være "next", "prev" eller "today"', 9 | error_timedevide: 'Kalender: parameter for tidsavgrensning må dele 60 med et heltall. Til eksempel 10, 15, 30', 10 | 11 | title_year: 'År {0}', 12 | title_month: '{0} år {1}', 13 | title_week: '{0} uke år {1}', 14 | title_day: '{0} {1} {2} år {3}', 15 | 16 | week: 'Uke {0}', 17 | all_day: 'Hele dagen', 18 | time: 'Tid', 19 | events: 'Event', 20 | before_time: 'Avsluttes før tidslinjen', 21 | after_time: 'Starter etter tidslinjen', 22 | 23 | m0: 'Januar', 24 | m1: 'Februar', 25 | m2: 'Mars', 26 | m3: 'April', 27 | m4: 'Mai', 28 | m5: 'Juni', 29 | m6: 'Juli', 30 | m7: 'August', 31 | m8: 'September', 32 | m9: 'Oktober', 33 | m10: 'November', 34 | m11: 'December', 35 | 36 | ms0: 'Jan', 37 | ms1: 'Feb', 38 | ms2: 'Mar', 39 | ms3: 'Apr', 40 | ms4: 'Mai', 41 | ms5: 'Jun', 42 | ms6: 'Jul', 43 | ms7: 'Aug', 44 | ms8: 'Sep', 45 | ms9: 'Okt', 46 | ms10: 'Nov', 47 | ms11: 'Dec', 48 | 49 | d0: 'Søndag', 50 | d1: 'Mandag', 51 | d2: 'Tirsdag', 52 | d3: 'Onsdag', 53 | d4: 'Torsdag', 54 | d5: 'Fredag', 55 | d6: 'Lørdag', 56 | 57 | easter: 'Påske', 58 | easterMonday: 'Første påskedag', 59 | 60 | first_day: 1, 61 | 62 | holidays: { 63 | } 64 | }; 65 | -------------------------------------------------------------------------------- /src/SLN/Third/google-api-php-client/tests/general/Http/RequestTest.php: -------------------------------------------------------------------------------- 1 | assertEquals("https://api.example.com", $request->getBaseComponent()); 25 | } 26 | 27 | public function testBaseComponentExplicitStripsSlashes() 28 | { 29 | $request = new Google_Http_Request("https://api.example.com/base"); 30 | $request->setBaseComponent("https://other.example.com/"); 31 | $this->assertEquals("https://other.example.com", $request->getBaseComponent()); 32 | } 33 | 34 | public function testBaseComponentWithPathExplicitStripsSlashes() 35 | { 36 | $request = new Google_Http_Request("https://api.example.com/base"); 37 | $request->setBaseComponent("https://other.example.com/path/"); 38 | $this->assertEquals("https://other.example.com/path", $request->getBaseComponent()); 39 | } 40 | 41 | } 42 | -------------------------------------------------------------------------------- /salon.php: -------------------------------------------------------------------------------- 1 | ' . strip_tags($info, '
') . ''; 27 | } 28 | 29 | if (is_admin()) 30 | add_action('in_plugin_update_message-' . plugin_basename(__FILE__), 'my_update_notice'); 31 | 32 | spl_autoload_register('sln_autoload'); 33 | $sln_plugin = SLN_Plugin::getInstance(); 34 | 35 | //TODO[feature-gcalendar]: move this require in the right place 36 | require_once SLN_PLUGIN_DIR . "/src/SLN/Third/GoogleScope.php"; 37 | $sln_googlescope = new SLN_GoogleScope(); 38 | $GLOBALS['sln_googlescope'] = $sln_googlescope; 39 | $sln_googlescope->set_settings_by_plugin(SLN_Plugin::getInstance()); 40 | $sln_googlescope->wp_init(); 41 | 42 | ob_start(); 43 | 44 | 45 | -------------------------------------------------------------------------------- /src/SLN/Action/Sms/Twilio/Rest/Message.php: -------------------------------------------------------------------------------- 1 | setupSubresources( 49 | 'media' 50 | ); 51 | } 52 | 53 | public function redact() { 54 | $postParams = array('Body' => ''); 55 | self::update($postParams); 56 | } 57 | 58 | /** 59 | * Make a request to delete the specified resource. 60 | * 61 | * :rtype: boolean 62 | */ 63 | public function delete() 64 | { 65 | return $this->client->deleteData($this->uri); 66 | } 67 | } 68 | 69 | --------------------------------------------------------------------------------