├── cache └── .gitignore ├── feeds └── .gitignore ├── media └── .gitignore ├── plugins └── index.html ├── tests ├── phpunit.xml ├── library │ └── bootstrap.php └── application │ ├── bootstrap.php │ └── controllers │ ├── LoginControllerTest.php │ └── AbstractControllerTest.php ├── tmp └── .gitignore ├── previews ├── index.html └── crop │ └── .gitignore ├── system ├── css │ ├── index.html │ └── less │ │ ├── toaster │ │ └── widgets-plugins │ │ │ ├── wb-text-only.less │ │ │ ├── wb-featured-only.less │ │ │ ├── wb-gallery-only.less │ │ │ ├── manage-form.less │ │ │ ├── wb-directupload.less │ │ │ └── wb-image-only.less │ │ ├── icons.less │ │ ├── mixins │ │ ├── mixins-alert.less │ │ ├── mixins-overlay.less │ │ └── mixins-thumbnail.less │ │ ├── packages │ │ ├── feature-pack.less │ │ ├── control_panel.less │ │ └── widgets_plugins.less │ │ ├── elements │ │ ├── fonts.less │ │ ├── message.less │ │ ├── images.less │ │ └── separator.less │ │ ├── modules │ │ ├── autocomplete.less │ │ ├── paginator.less │ │ └── carousel.less │ │ ├── reset-widgets.css.map │ │ └── seotoaster-ui.less ├── languages │ ├── he.lng │ └── en.lng ├── cronCache │ └── websiteLogCache │ │ └── .gitignore ├── images │ ├── csv.png │ ├── edit.png │ ├── move.png │ ├── sbg.png │ ├── w-gmb.png │ ├── delete.png │ ├── editadd.png │ ├── fb-btn.jpg │ ├── gmb-btn.jpg │ ├── loading.gif │ ├── noimage.png │ ├── readme.png │ ├── spinner.gif │ ├── zoiper.png │ ├── bg-strip.png │ ├── check-all.gif │ ├── collapse.png │ ├── collapsed.png │ ├── cpanel-img.jpg │ ├── download.png │ ├── filetypes.png │ ├── flags │ │ ├── cz.png │ │ ├── de.png │ │ ├── es.png │ │ ├── fr.png │ │ ├── id.png │ │ ├── it.png │ │ ├── pt.png │ │ ├── ru.png │ │ ├── si.png │ │ └── us.png │ ├── logo-small.jpg │ ├── move-pages.png │ ├── no_image.png │ ├── no_preview.png │ ├── openhand.cur │ ├── spinner2.gif │ ├── w-facebook.png │ ├── w-linkedin.png │ ├── w-twitter.png │ ├── editadd-code.png │ ├── widgets │ │ ├── form.png │ │ ├── rss.png │ │ ├── search.png │ │ ├── featured.png │ │ ├── clicktocall.png │ │ ├── imageGallery.png │ │ ├── imageRotator.png │ │ └── relatedPages.png │ ├── ajax_loader_big.gif │ ├── current-theme.png │ ├── editadd-content.png │ ├── editadd-header.png │ ├── editadd-plugin.png │ ├── spinner-small.gif │ ├── ajax-loader-small.gif │ ├── bg-editor-pattern.png │ ├── zonehighlighting.jpg │ ├── header-bottom-arrow.png │ ├── questionmark_hover.png │ ├── editadd-static-content.png │ └── editadd-static-header.png ├── fonts │ ├── Alcohole.ttf │ └── icons │ │ ├── toaster-icons.eot │ │ ├── toaster-icons.ttf │ │ └── toaster-icons.woff ├── js │ ├── external │ │ ├── tinymce │ │ │ ├── skins │ │ │ │ └── seotoaster │ │ │ │ │ ├── fonts │ │ │ │ │ ├── readme.md │ │ │ │ │ ├── tinymce.eot │ │ │ │ │ ├── tinymce.ttf │ │ │ │ │ ├── tinymce.woff │ │ │ │ │ ├── tinymce-small.eot │ │ │ │ │ ├── tinymce-small.ttf │ │ │ │ │ └── tinymce-small.woff │ │ │ │ │ ├── img │ │ │ │ │ ├── anchor.gif │ │ │ │ │ ├── loader.gif │ │ │ │ │ ├── object.gif │ │ │ │ │ ├── trans.gif │ │ │ │ │ └── wline.gif │ │ │ │ │ └── content.inline.min.css │ │ │ ├── plugins │ │ │ │ ├── media │ │ │ │ │ └── moxieplayer.swf │ │ │ │ ├── hr │ │ │ │ │ └── plugin.min.js │ │ │ │ ├── anchor │ │ │ │ │ └── plugin.min.js │ │ │ │ ├── stw │ │ │ │ │ └── plugin.min.js │ │ │ │ ├── code │ │ │ │ │ └── plugin.min.js │ │ │ │ ├── save │ │ │ │ │ └── plugin.min.js │ │ │ │ ├── visualblocks │ │ │ │ │ └── plugin.min.js │ │ │ │ ├── advlist │ │ │ │ │ └── plugin.min.js │ │ │ │ └── fullscreen │ │ │ │ │ └── plugin.min.js │ │ │ └── langs │ │ │ │ └── readme.md │ │ ├── chosen │ │ │ ├── chosen-sprite.png │ │ │ └── chosen-sprite@2x.png │ │ ├── plupload │ │ │ └── plupload.flash.swf │ │ ├── tinymce5 │ │ │ ├── skins │ │ │ │ ├── ui │ │ │ │ │ ├── oxide │ │ │ │ │ │ ├── fonts │ │ │ │ │ │ │ └── tinymce-mobile.woff │ │ │ │ │ │ └── content.mobile.min.css │ │ │ │ │ └── oxide-dark │ │ │ │ │ │ ├── fonts │ │ │ │ │ │ └── tinymce-mobile.woff │ │ │ │ │ │ └── content.mobile.min.css │ │ │ │ └── content │ │ │ │ │ ├── default │ │ │ │ │ └── content.min.css │ │ │ │ │ ├── writer │ │ │ │ │ └── content.min.css │ │ │ │ │ ├── dark │ │ │ │ │ └── content.min.css │ │ │ │ │ └── document │ │ │ │ │ └── content.min.css │ │ │ ├── langs │ │ │ │ └── readme.md │ │ │ └── plugins │ │ │ │ ├── textcolor │ │ │ │ └── plugin.min.js │ │ │ │ ├── colorpicker │ │ │ │ └── plugin.min.js │ │ │ │ ├── contextmenu │ │ │ │ └── plugin.min.js │ │ │ │ ├── hr │ │ │ │ └── plugin.min.js │ │ │ │ ├── print │ │ │ │ └── plugin.min.js │ │ │ │ ├── code │ │ │ │ └── plugin.min.js │ │ │ │ ├── visualblocks │ │ │ │ └── plugin.min.js │ │ │ │ └── nonbreaking │ │ │ │ └── plugin.min.js │ │ └── jquery │ │ │ └── plugins │ │ │ ├── cycle │ │ │ ├── jquery.cycle2.scrollVert.min.js │ │ │ ├── jquery.cycle2.shuffle.min.js │ │ │ └── jquery.cycle2.swipe.min.js │ │ │ ├── cookie │ │ │ └── jquery.cookie.js │ │ │ └── touchpunch │ │ │ └── jquery.ui.touch-punch.min.js │ └── internal │ │ ├── modules │ │ └── themes │ │ │ ├── index.js │ │ │ ├── collections │ │ │ └── themes.js │ │ │ └── models │ │ │ └── theme.js │ │ ├── themes.js │ │ ├── folders.js │ │ ├── sculpting.min.js │ │ ├── featuredarea.min.js │ │ ├── user-attributes.js │ │ └── deeplinks.min.js └── coreinfo.php.default ├── themes └── .gitignore ├── version.txt ├── _install ├── installer │ ├── index.html │ ├── .htaccess │ ├── resourses │ │ └── index.html │ ├── views │ │ └── scripts │ │ │ ├── index │ │ │ ├── index.phtml │ │ │ └── tada.phtml │ │ │ ├── error │ │ │ └── error.phtml │ │ │ ├── _langs.phtml │ │ │ └── _server.phtml │ └── tools │ │ └── SqlSplitter.php ├── assets │ ├── ok.png │ ├── check.png │ ├── error.png │ ├── logo.jpg │ ├── toasters.jpg │ ├── error-big.png │ ├── last-visits.png │ ├── list-keywords.png │ ├── seosamba-icon.png │ └── visitor-count.png ├── revert-alters.sql └── index.php ├── seotoaster_core ├── library │ └── index.html ├── application │ ├── configs │ │ ├── index.html │ │ └── .htaccess │ ├── app │ │ ├── Widgets │ │ │ ├── Breadcrumbs │ │ │ │ └── views │ │ │ │ │ └── crumbs.phtml │ │ │ ├── Pagebreak │ │ │ │ ├── views │ │ │ │ │ └── pagebreak.phtml │ │ │ │ └── Pagebreak.php │ │ │ ├── User │ │ │ │ ├── User.php │ │ │ │ └── views │ │ │ │ │ ├── user-attribute.phtml │ │ │ │ │ └── user-prefix.phtml │ │ │ ├── Search │ │ │ │ └── views │ │ │ │ │ ├── searchForm.phtml │ │ │ │ │ ├── form.phtml │ │ │ │ │ ├── results.phtml │ │ │ │ │ ├── searchButton.phtml │ │ │ │ │ └── links.phtml │ │ │ ├── Pwa │ │ │ │ └── views │ │ │ │ │ ├── disable.phtml │ │ │ │ │ ├── sw.phtml │ │ │ │ │ └── a2hs.phtml │ │ │ ├── Copyright │ │ │ │ └── Copyright.php │ │ │ ├── Featured │ │ │ │ └── views │ │ │ │ │ └── farea-tags.phtml │ │ │ ├── Rss │ │ │ │ └── views │ │ │ │ │ └── rss.phtml │ │ │ ├── Meta │ │ │ │ └── Meta.php │ │ │ ├── Seo │ │ │ │ └── Seo.php │ │ │ ├── Content │ │ │ │ └── views │ │ │ │ │ └── ajax.phtml │ │ │ └── Prepop │ │ │ │ └── views │ │ │ │ └── prepopLink.phtml │ │ ├── Interfaces │ │ │ ├── Observer.php │ │ │ ├── GarbageCollector.php │ │ │ ├── Plugin.php │ │ │ └── Observable.php │ │ ├── Exceptions │ │ │ ├── SeotoasterException.php │ │ │ ├── SeotoasterMagicSpaceException.php │ │ │ ├── SeotoasterPluginException.php │ │ │ ├── SeotoasterWidgetException.php │ │ │ └── SeotoasterTemplateException.php │ │ ├── Tools │ │ │ ├── Security │ │ │ │ └── Tools.php │ │ │ ├── Cache │ │ │ │ └── GarbageCollector.php │ │ │ ├── Featured │ │ │ │ └── GarbageCollector.php │ │ │ ├── Content │ │ │ │ └── Feed.php │ │ │ ├── Seo │ │ │ │ └── GarbageCollector.php │ │ │ ├── Text │ │ │ │ └── Tools.php │ │ │ ├── System │ │ │ │ ├── Observable.php │ │ │ │ ├── SqlSplitter.php │ │ │ │ └── GoogleRecaptcha.php │ │ │ ├── Factory │ │ │ │ ├── RestServiceFactory.php │ │ │ │ ├── WidgetFactory.php │ │ │ │ └── MagicSpaceFactory.php │ │ │ ├── Widgets │ │ │ │ └── Tools.php │ │ │ └── Template │ │ │ │ └── Tools.php │ │ ├── Helpers │ │ │ └── Action │ │ │ │ ├── Image.php │ │ │ │ ├── Config.php │ │ │ │ ├── Mobile.php │ │ │ │ ├── Website.php │ │ │ │ ├── Session.php │ │ │ │ └── Admin.php │ │ ├── MagicSpaces │ │ │ ├── Notadmin │ │ │ │ └── Notadmin.php │ │ │ ├── Memberonly │ │ │ │ └── Memberonly.php │ │ │ ├── Adminonly │ │ │ │ └── Adminonly.php │ │ │ ├── Notloggedin │ │ │ │ └── Notloggedin.php │ │ │ ├── Roleonly │ │ │ │ └── Roleonly.php │ │ │ ├── Remoteauthorization │ │ │ │ └── Remoteauthorization.php │ │ │ └── Device │ │ │ │ └── Device.php │ │ ├── Filters │ │ │ └── UrlScheme.php │ │ └── Validators │ │ │ └── UrlRegex.php │ ├── views │ │ ├── scripts │ │ │ ├── backend │ │ │ │ ├── user │ │ │ │ │ └── export.phtml │ │ │ │ ├── systemnotifications │ │ │ │ │ └── optimizedemail.phtml │ │ │ │ ├── form │ │ │ │ │ ├── adminmail.phtml │ │ │ │ │ └── recaptcha.phtml │ │ │ │ ├── seo │ │ │ │ │ ├── sitemapindex.xml.phtml │ │ │ │ │ ├── siloslist.phtml │ │ │ │ │ ├── robots.phtml │ │ │ │ │ ├── deeplinkslist.phtml │ │ │ │ │ ├── sculptinglist.phtml │ │ │ │ │ └── sculpting.phtml │ │ │ │ ├── page │ │ │ │ │ ├── loadpagefolders.phtml │ │ │ │ │ ├── listpages.html.phtml │ │ │ │ │ └── draft.phtml │ │ │ │ ├── search │ │ │ │ │ └── results.phtml │ │ │ │ ├── content │ │ │ │ │ ├── files.phtml │ │ │ │ │ └── header.phtml │ │ │ │ └── featured │ │ │ │ │ ├── falist.phtml │ │ │ │ │ └── featured.phtml │ │ │ ├── mailer │ │ │ │ ├── notifymail.phtml │ │ │ │ └── signupmail.phtml │ │ │ ├── index │ │ │ │ ├── index.phtml │ │ │ │ └── 404page.phtml │ │ │ ├── admin │ │ │ │ ├── _ajaxmsg.phtml │ │ │ │ ├── _saveandclose.phtml │ │ │ │ ├── _draftorlive.phtml │ │ │ │ └── _header.phtml │ │ │ └── error │ │ │ │ └── error.phtml │ │ └── helpers │ │ │ ├── ToasterAdminpanelItem.php │ │ │ └── ToasterFrame.php │ ├── models │ │ ├── DbTable │ │ │ ├── Plugin.php │ │ │ ├── PageFolder.php │ │ │ ├── User.php │ │ │ ├── FormPageConversion.php │ │ │ ├── GalDraggableDbTable.php │ │ │ ├── MasksList.php │ │ │ ├── UserWhitelistIps.php │ │ │ ├── WebsiteActionLog.php │ │ │ ├── FormBlacklistRules.php │ │ │ ├── Form.php │ │ │ ├── WebsiteVisitorsBacklog.php │ │ │ ├── TemplateType.php │ │ │ ├── Template.php │ │ │ ├── ObserversQueue.php │ │ │ ├── Deeplink.php │ │ │ ├── Seodata.php │ │ │ ├── TriggersActions.php │ │ │ ├── PasswordResetLog.php │ │ │ ├── Silo.php │ │ │ ├── Featuredarea.php │ │ │ ├── PageOption.php │ │ │ ├── Optimized.php │ │ │ ├── Container.php │ │ │ ├── Redirect.php │ │ │ ├── LinkContainer.php │ │ │ ├── Config.php │ │ │ ├── PageFeaturedarea.php │ │ │ └── PageHasOption.php │ │ ├── Models │ │ │ ├── PageFolder.php │ │ │ ├── Silo.php │ │ │ ├── UserWhitelistIp.php │ │ │ ├── Seodata.php │ │ │ ├── PageOption.php │ │ │ ├── FormPageConversion.php │ │ │ ├── FormBlacklistRules.php │ │ │ └── Redirect.php │ │ └── Mappers │ │ │ ├── ConfigMapper.php │ │ │ ├── SeodataMapper.php │ │ │ └── GalDraggableMapper.php │ ├── forms │ │ ├── Secure.php │ │ ├── Content.php │ │ ├── Prepop.php │ │ ├── Upload.php │ │ ├── Silo.php │ │ ├── Code.php │ │ ├── Header.php │ │ ├── Css.php │ │ ├── Login.php │ │ └── Featured.php │ └── controllers │ │ └── Backend │ │ └── ApiController.php └── .htaccess ├── robots.txt.default ├── favicon.ico.default ├── .htaccess.default ├── .gitignore └── manifest.json.default /cache/.gitignore: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /feeds/.gitignore: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/.gitignore: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plugins/index.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/phpunit.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tmp/.gitignore: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /previews/index.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /system/css/index.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /system/languages/he.lng: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /themes/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /version.txt: -------------------------------------------------------------------------------- 1 | 3.11.2 2 | -------------------------------------------------------------------------------- /previews/crop/.gitignore: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/library/bootstrap.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /_install/installer/index.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/application/bootstrap.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /seotoaster_core/library/index.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /_install/installer/.htaccess: -------------------------------------------------------------------------------- 1 | deny from all -------------------------------------------------------------------------------- /_install/installer/resourses/index.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /seotoaster_core/application/configs/index.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /robots.txt.default: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: / 3 | 4 | -------------------------------------------------------------------------------- /system/css/less/toaster/widgets-plugins/wb-text-only.less: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /seotoaster_core/application/configs/.htaccess: -------------------------------------------------------------------------------- 1 | deny from all 2 | -------------------------------------------------------------------------------- /system/cronCache/websiteLogCache/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !*/ 3 | !.gitignore -------------------------------------------------------------------------------- /seotoaster_core/application/app/Widgets/Breadcrumbs/views/crumbs.phtml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /seotoaster_core/application/views/scripts/backend/user/export.phtml: -------------------------------------------------------------------------------- 1 | content; ?> -------------------------------------------------------------------------------- /favicon.ico.default: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/favicon.ico.default -------------------------------------------------------------------------------- /seotoaster_core/application/views/scripts/mailer/signupmail.phtml: -------------------------------------------------------------------------------- 1 |

New user registered

2 | 3 | -------------------------------------------------------------------------------- /_install/assets/ok.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/_install/assets/ok.png -------------------------------------------------------------------------------- /seotoaster_core/application/app/Widgets/Pagebreak/views/pagebreak.phtml: -------------------------------------------------------------------------------- 1 |
-------------------------------------------------------------------------------- /system/images/csv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/csv.png -------------------------------------------------------------------------------- /system/images/edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/edit.png -------------------------------------------------------------------------------- /system/images/move.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/move.png -------------------------------------------------------------------------------- /system/images/sbg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/sbg.png -------------------------------------------------------------------------------- /system/images/w-gmb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/w-gmb.png -------------------------------------------------------------------------------- /_install/assets/check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/_install/assets/check.png -------------------------------------------------------------------------------- /_install/assets/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/_install/assets/error.png -------------------------------------------------------------------------------- /_install/assets/logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/_install/assets/logo.jpg -------------------------------------------------------------------------------- /system/css/less/toaster/widgets-plugins/wb-featured-only.less: -------------------------------------------------------------------------------- 1 | #farea-form{ 2 | background : @body-bg; 3 | } -------------------------------------------------------------------------------- /system/css/less/toaster/widgets-plugins/wb-gallery-only.less: -------------------------------------------------------------------------------- 1 | #gallery-form{ 2 | background : @body-bg; 3 | } -------------------------------------------------------------------------------- /system/fonts/Alcohole.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/fonts/Alcohole.ttf -------------------------------------------------------------------------------- /system/images/delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/delete.png -------------------------------------------------------------------------------- /system/images/editadd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/editadd.png -------------------------------------------------------------------------------- /system/images/fb-btn.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/fb-btn.jpg -------------------------------------------------------------------------------- /system/images/gmb-btn.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/gmb-btn.jpg -------------------------------------------------------------------------------- /system/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/loading.gif -------------------------------------------------------------------------------- /system/images/noimage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/noimage.png -------------------------------------------------------------------------------- /system/images/readme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/readme.png -------------------------------------------------------------------------------- /system/images/spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/spinner.gif -------------------------------------------------------------------------------- /system/images/zoiper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/zoiper.png -------------------------------------------------------------------------------- /_install/assets/toasters.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/_install/assets/toasters.jpg -------------------------------------------------------------------------------- /system/images/bg-strip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/bg-strip.png -------------------------------------------------------------------------------- /system/images/check-all.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/check-all.gif -------------------------------------------------------------------------------- /system/images/collapse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/collapse.png -------------------------------------------------------------------------------- /system/images/collapsed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/collapsed.png -------------------------------------------------------------------------------- /system/images/cpanel-img.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/cpanel-img.jpg -------------------------------------------------------------------------------- /system/images/download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/download.png -------------------------------------------------------------------------------- /system/images/filetypes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/filetypes.png -------------------------------------------------------------------------------- /system/images/flags/cz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/flags/cz.png -------------------------------------------------------------------------------- /system/images/flags/de.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/flags/de.png -------------------------------------------------------------------------------- /system/images/flags/es.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/flags/es.png -------------------------------------------------------------------------------- /system/images/flags/fr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/flags/fr.png -------------------------------------------------------------------------------- /system/images/flags/id.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/flags/id.png -------------------------------------------------------------------------------- /system/images/flags/it.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/flags/it.png -------------------------------------------------------------------------------- /system/images/flags/pt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/flags/pt.png -------------------------------------------------------------------------------- /system/images/flags/ru.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/flags/ru.png -------------------------------------------------------------------------------- /system/images/flags/si.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/flags/si.png -------------------------------------------------------------------------------- /system/images/flags/us.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/flags/us.png -------------------------------------------------------------------------------- /system/images/logo-small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/logo-small.jpg -------------------------------------------------------------------------------- /system/images/move-pages.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/move-pages.png -------------------------------------------------------------------------------- /system/images/no_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/no_image.png -------------------------------------------------------------------------------- /system/images/no_preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/no_preview.png -------------------------------------------------------------------------------- /system/images/openhand.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/openhand.cur -------------------------------------------------------------------------------- /system/images/spinner2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/spinner2.gif -------------------------------------------------------------------------------- /system/images/w-facebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/w-facebook.png -------------------------------------------------------------------------------- /system/images/w-linkedin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/w-linkedin.png -------------------------------------------------------------------------------- /system/images/w-twitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/w-twitter.png -------------------------------------------------------------------------------- /_install/assets/error-big.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/_install/assets/error-big.png -------------------------------------------------------------------------------- /system/images/editadd-code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/editadd-code.png -------------------------------------------------------------------------------- /system/images/widgets/form.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/widgets/form.png -------------------------------------------------------------------------------- /system/images/widgets/rss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/widgets/rss.png -------------------------------------------------------------------------------- /_install/assets/last-visits.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/_install/assets/last-visits.png -------------------------------------------------------------------------------- /_install/assets/list-keywords.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/_install/assets/list-keywords.png -------------------------------------------------------------------------------- /_install/assets/seosamba-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/_install/assets/seosamba-icon.png -------------------------------------------------------------------------------- /_install/assets/visitor-count.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/_install/assets/visitor-count.png -------------------------------------------------------------------------------- /system/images/ajax_loader_big.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/ajax_loader_big.gif -------------------------------------------------------------------------------- /system/images/current-theme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/current-theme.png -------------------------------------------------------------------------------- /system/images/editadd-content.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/editadd-content.png -------------------------------------------------------------------------------- /system/images/editadd-header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/editadd-header.png -------------------------------------------------------------------------------- /system/images/editadd-plugin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/editadd-plugin.png -------------------------------------------------------------------------------- /system/images/spinner-small.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/spinner-small.gif -------------------------------------------------------------------------------- /system/images/widgets/search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/widgets/search.png -------------------------------------------------------------------------------- /system/images/ajax-loader-small.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/ajax-loader-small.gif -------------------------------------------------------------------------------- /system/images/bg-editor-pattern.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/bg-editor-pattern.png -------------------------------------------------------------------------------- /system/images/widgets/featured.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/widgets/featured.png -------------------------------------------------------------------------------- /system/images/zonehighlighting.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/zonehighlighting.jpg -------------------------------------------------------------------------------- /system/js/external/tinymce/skins/seotoaster/fonts/readme.md: -------------------------------------------------------------------------------- 1 | Icons are generated and provided by the http://icomoon.io service. 2 | -------------------------------------------------------------------------------- /system/fonts/icons/toaster-icons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/fonts/icons/toaster-icons.eot -------------------------------------------------------------------------------- /system/fonts/icons/toaster-icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/fonts/icons/toaster-icons.ttf -------------------------------------------------------------------------------- /system/fonts/icons/toaster-icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/fonts/icons/toaster-icons.woff -------------------------------------------------------------------------------- /system/images/header-bottom-arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/header-bottom-arrow.png -------------------------------------------------------------------------------- /system/images/questionmark_hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/questionmark_hover.png -------------------------------------------------------------------------------- /system/images/widgets/clicktocall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/widgets/clicktocall.png -------------------------------------------------------------------------------- /system/images/widgets/imageGallery.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/widgets/imageGallery.png -------------------------------------------------------------------------------- /system/images/widgets/imageRotator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/widgets/imageRotator.png -------------------------------------------------------------------------------- /system/images/widgets/relatedPages.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/widgets/relatedPages.png -------------------------------------------------------------------------------- /system/images/editadd-static-content.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/editadd-static-content.png -------------------------------------------------------------------------------- /system/images/editadd-static-header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/images/editadd-static-header.png -------------------------------------------------------------------------------- /seotoaster_core/application/app/Interfaces/Observer.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /system/js/external/tinymce/skins/seotoaster/fonts/tinymce-small.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/js/external/tinymce/skins/seotoaster/fonts/tinymce-small.eot -------------------------------------------------------------------------------- /system/js/external/tinymce/skins/seotoaster/fonts/tinymce-small.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/js/external/tinymce/skins/seotoaster/fonts/tinymce-small.ttf -------------------------------------------------------------------------------- /system/js/external/tinymce/skins/seotoaster/fonts/tinymce-small.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/js/external/tinymce/skins/seotoaster/fonts/tinymce-small.woff -------------------------------------------------------------------------------- /system/js/external/tinymce5/skins/ui/oxide/fonts/tinymce-mobile.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seotoaster-team/seotoaster/HEAD/system/js/external/tinymce5/skins/ui/oxide/fonts/tinymce-mobile.woff -------------------------------------------------------------------------------- /seotoaster_core/application/models/DbTable/Plugin.php: -------------------------------------------------------------------------------- 1 | extraClasses; ?>">translate('Save and close'); ?> 2 | -------------------------------------------------------------------------------- /seotoaster_core/application/models/DbTable/User.php: -------------------------------------------------------------------------------- 1 | 5 | */ 6 | 7 | class Widgets_User_User extends Widgets_User_Base { 8 | 9 | } -------------------------------------------------------------------------------- /seotoaster_core/application/models/DbTable/FormPageConversion.php: -------------------------------------------------------------------------------- 1 | _spaceContent : ''; 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /seotoaster_core/application/app/MagicSpaces/Memberonly/Memberonly.php: -------------------------------------------------------------------------------- 1 | _spaceContent : ''; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /seotoaster_core/application/models/DbTable/Deeplink.php: -------------------------------------------------------------------------------- 1 | 7 | */ 8 | class Application_Model_DbTable_Deeplink extends Zend_Db_Table_Abstract { 9 | 10 | protected $_name = 'deeplink'; 11 | 12 | } 13 | 14 | -------------------------------------------------------------------------------- /seotoaster_core/application/models/DbTable/Seodata.php: -------------------------------------------------------------------------------- 1 | 7 | */ 8 | class Application_Model_DbTable_Seodata extends Zend_Db_Table_Abstract { 9 | 10 | protected $_name = 'seo_data'; 11 | 12 | } 13 | 14 | -------------------------------------------------------------------------------- /seotoaster_core/application/models/DbTable/TriggersActions.php: -------------------------------------------------------------------------------- 1 | 5 | */ 6 | class Application_Model_DbTable_TriggersActions extends Zend_Db_Table_Abstract { 7 | 8 | protected $_name = 'email_triggers_actions'; 9 | 10 | } 11 | -------------------------------------------------------------------------------- /seotoaster_core/application/app/Exceptions/SeotoasterTemplateException.php: -------------------------------------------------------------------------------- 1 | 7 | */ 8 | class Exceptions_SeotoasterTemplateException extends Exceptions_SeotoasterException { 9 | 10 | } 11 | 12 | -------------------------------------------------------------------------------- /seotoaster_core/application/app/Widgets/User/views/user-attribute.phtml: -------------------------------------------------------------------------------- 1 | readonly)):?> 2 | value;?> 3 | userId." 5 | data-attribute=".$this->attribute." 6 | value=".$this->value.">"; ?> 7 | 8 | -------------------------------------------------------------------------------- /seotoaster_core/application/models/DbTable/PasswordResetLog.php: -------------------------------------------------------------------------------- 1 | 4 | * Date: 4/17/12 5 | * Time: 2:01 PM 6 | */ 7 | 8 | class Application_Model_DbTable_PasswordResetLog extends Zend_Db_Table_Abstract { 9 | 10 | protected $_name = 'password_reset_log'; 11 | 12 | } 13 | -------------------------------------------------------------------------------- /system/css/less/toaster/widgets-plugins/wb-directupload.less: -------------------------------------------------------------------------------- 1 | .directupload-wrapper{ 2 | .inline-block(top); 3 | 4 | .direct-upload-images{ 5 | img{ 6 | cursor : pointer; 7 | } 8 | 9 | .progressbar{ 10 | } 11 | } 12 | 13 | .directupdelete{ 14 | color : @brand-error; 15 | } 16 | } -------------------------------------------------------------------------------- /system/js/external/tinymce/plugins/hr/plugin.min.js: -------------------------------------------------------------------------------- 1 | tinymce.PluginManager.add("hr",function(n){n.addCommand("InsertHorizontalRule",function(){n.execCommand("mceInsertContent",!1,"
")}),n.addButton("hr",{icon:"hr",tooltip:"Horizontal line",cmd:"InsertHorizontalRule"}),n.addMenuItem("hr",{icon:"hr",text:"Horizontal line",cmd:"InsertHorizontalRule",context:"insert"})}); -------------------------------------------------------------------------------- /seotoaster_core/application/app/MagicSpaces/Adminonly/Adminonly.php: -------------------------------------------------------------------------------- 1 | _spaceContent : ''; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /.htaccess.default: -------------------------------------------------------------------------------- 1 | RewriteEngine On 2 | RewriteCond %{REQUEST_FILENAME} -s [OR] 3 | RewriteCond %{REQUEST_FILENAME} -l [OR] 4 | RewriteCond %{REQUEST_FILENAME} -d 5 | RewriteRule ^.*$ - [NC,L] 6 | 7 | RewriteRule !\.(js|ico|jpe?g|gif|png|css|pdf|avi|mov|mp(3|4|e?g)|lng|(r|t)ar|tgz|zip|swf|ttf|eot|svg|woff)$ index.php [NC,L] 8 | 9 | Options -Indexes 10 | RedirectMatch 404 /\.git -------------------------------------------------------------------------------- /system/css/less/icons.less: -------------------------------------------------------------------------------- 1 | @import "base/variables"; 2 | // Fonts 3 | //================================================== 4 | @import "elements/fonts"; 5 | 6 | // Toaster ICON 7 | //================================================== 8 | .activate-toaster-icon(@activate) when ( @activate = true){ 9 | @import "elements/toaster-icons"; 10 | } 11 | .activate-toaster-icon(@toaster-icons); -------------------------------------------------------------------------------- /seotoaster_core/application/models/DbTable/Silo.php: -------------------------------------------------------------------------------- 1 | 7 | */ 8 | class Application_Model_DbTable_Silo extends Zend_Db_Table_Abstract { 9 | 10 | protected $_dependentTables = array('Application_Model_DbTable_Page'); 11 | 12 | protected $_name = 'silo'; 13 | } 14 | 15 | -------------------------------------------------------------------------------- /_install/installer/views/scripts/index/index.phtml: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Welcome to SEOTOASTER 3.0

4 |
5 |
6 |

Welcome to your new SEOTOASTER installation!

7 |

This wizard will help you to setup your new SEOTOASTER website.

8 |
9 |
10 | -------------------------------------------------------------------------------- /tests/application/controllers/LoginControllerTest.php: -------------------------------------------------------------------------------- 1 | prepopName; ?>"> 2 | 3 | prepopWithNameList as $prepop): ?> 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /system/js/external/jquery/plugins/cycle/jquery.cycle2.scrollVert.min.js: -------------------------------------------------------------------------------- 1 | /* Plugin for Cycle2; Copyright (c) 2012 M. Alsup; v20141007 */ 2 | !function(a){"use strict";a.fn.cycle.transitions.scrollVert={before:function(a,b,c,d){a.API.stackSlides(a,b,c,d);var e=a.container.css("overflow","hidden").height();a.cssBefore={top:d?-e:e,left:0,opacity:1,display:"block",visibility:"visible"},a.animIn={top:0},a.animOut={top:d?e:-e}}}}(jQuery); 3 | -------------------------------------------------------------------------------- /seotoaster_core/application/forms/Secure.php: -------------------------------------------------------------------------------- 1 | addElement( 'hash', Tools_System_Tools::CSRF_SECURE_TOKEN, array( 12 | 'ignore' => true, 13 | 'timeout' => 1440 14 | ) ); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /seotoaster_core/application/models/DbTable/Featuredarea.php: -------------------------------------------------------------------------------- 1 | 7 | */ 8 | class Application_Model_DbTable_Featuredarea extends Zend_Db_Table_Abstract { 9 | 10 | protected $_name = 'featured_area'; 11 | 12 | protected $_dependentTables = array('Application_Model_DbTable_PageFeaturedarea'); 13 | 14 | } 15 | 16 | -------------------------------------------------------------------------------- /system/js/internal/modules/themes/collections/themes.js: -------------------------------------------------------------------------------- 1 | define([ 2 | 'underscore', 3 | 'backbone', 4 | '../models/theme' 5 | ], function(_, Backbone, ThemeModel){ 6 | var themesCollection = Backbone.Collection.extend({ 7 | model : ThemeModel, 8 | url : function() { 9 | return $('#website_url').val() + 'api/toaster/themes/'; 10 | } 11 | }); 12 | return themesCollection; 13 | }); -------------------------------------------------------------------------------- /system/js/internal/themes.js: -------------------------------------------------------------------------------- 1 | require.config({ 2 | deps: ['modules/themes/index'], 3 | paths: { 4 | 'underscore' : '../external/underscore/underscore.min', 5 | 'backbone' : '../external/backbone/backbone.min' 6 | }, 7 | shim: { 8 | 'underscore': {exports: '_'}, 9 | 'backbone' : { 10 | deps: ['underscore'], 11 | exports: 'Backbone' 12 | } 13 | } 14 | }); -------------------------------------------------------------------------------- /seotoaster_core/application/models/DbTable/PageOption.php: -------------------------------------------------------------------------------- 1 | Seotoaster core team 5 | * Date: 7/26/12 6 | * Time: 5:25 PM 7 | */ 8 | class Application_Model_DbTable_PageOption extends Zend_Db_Table_Abstract { 9 | 10 | protected $_name = 'page_option'; 11 | 12 | protected $_dependentTables = array( 13 | 'Application_Model_DbTable_PageHasOption' 14 | ); 15 | } 16 | -------------------------------------------------------------------------------- /seotoaster_core/application/models/DbTable/Optimized.php: -------------------------------------------------------------------------------- 1 | 6 | */ 7 | 8 | class Application_Model_DbTable_Optimized extends Zend_Db_Table_Abstract { 9 | 10 | protected $_name = 'optimized'; 11 | 12 | protected $_referenceMap = array( 13 | 'Page' => array( 14 | 'columns' => 'page_id', 15 | 'refTableClass' => 'Application_Model_DbTable_Page' 16 | ) 17 | ); 18 | 19 | } 20 | -------------------------------------------------------------------------------- /seotoaster_core/application/app/Filters/UrlScheme.php: -------------------------------------------------------------------------------- 1 | 7 | */ 8 | class Filters_UrlScheme implements Zend_Filter_Interface { 9 | 10 | public function filter($value) { 11 | $exploded = explode('://', $value); 12 | if(sizeof($exploded) < 2) { 13 | return $value; 14 | } 15 | return $exploded[sizeof($exploded) - 2] . '://' . end($exploded); 16 | } 17 | 18 | } 19 | 20 | -------------------------------------------------------------------------------- /seotoaster_core/application/app/Widgets/Pwa/views/disable.phtml: -------------------------------------------------------------------------------- 1 | 13 | -------------------------------------------------------------------------------- /seotoaster_core/application/views/scripts/backend/systemnotifications/optimizedemail.phtml: -------------------------------------------------------------------------------- 1 |
2 |

translate('Hello SeoSamba Team'); ?>, 3 | translate('The optimization from the following page has been removed'); ?>: 4 | pageUrl) :?> 5 | pageName;?> 6 | 7 |

8 |
-------------------------------------------------------------------------------- /system/js/internal/modules/themes/models/theme.js: -------------------------------------------------------------------------------- 1 | define([ 2 | 'underscore', 3 | 'backbone' 4 | ], function(_, Backbone){ 5 | 6 | var ThemeModel = Backbone.Model.extend({ 7 | urlRoot: function() { 8 | return $('#website_url').val() + 'api/toaster/themes/name/' 9 | }, 10 | // initialize: function() { 11 | // this.set({id: this.get('name')}); 12 | // } 13 | idAttribute: "name" 14 | }); 15 | 16 | return ThemeModel; 17 | }); 18 | -------------------------------------------------------------------------------- /seotoaster_core/application/app/Widgets/Pwa/views/sw.phtml: -------------------------------------------------------------------------------- 1 | {notadmin} 2 | 13 | {/notadmin} -------------------------------------------------------------------------------- /system/css/less/packages/feature-pack.less: -------------------------------------------------------------------------------- 1 | // News list with time line 2 | .activate-feature() when (@news-list-timeLine = true){ 3 | @import "../feature/news-list-timeline"; 4 | } 5 | 6 | // Menu on full width 7 | .activate-feature() when (@widget-menu-main-fullWidth = true){ 8 | @import "../feature/nav-menu_main-fullwidth"; 9 | } 10 | 11 | // text with middle line 12 | .activate-feature() when (@text-with-middle-line = true){ 13 | @import "../feature/text-with-middle-line"; 14 | } 15 | .activate-feature(); -------------------------------------------------------------------------------- /seotoaster_core/application/app/Tools/Cache/GarbageCollector.php: -------------------------------------------------------------------------------- 1 | 7 | */ 8 | class Tools_Cache_GarbageCollector extends Tools_System_GarbageCollector { 9 | 10 | public function clean() {} 11 | 12 | protected function _runOnDefault() {} 13 | 14 | protected function _runOnCreate() {} 15 | protected function _runOnUpdate() {} 16 | protected function _runOnDelete() {} 17 | } 18 | 19 | -------------------------------------------------------------------------------- /system/js/external/tinymce/plugins/anchor/plugin.min.js: -------------------------------------------------------------------------------- 1 | tinymce.PluginManager.add("anchor",function(n){function e(){var e=n.selection.getNode(),t="";"A"==e.tagName&&(t=e.name||e.id||""),n.windowManager.open({title:"Anchor",body:{type:"textbox",name:"name",size:40,label:"Name",value:t},onsubmit:function(e){n.execCommand("mceInsertContent",!1,n.dom.createHTML("a",{id:e.data.name}))}})}n.addButton("anchor",{icon:"anchor",tooltip:"Anchor",onclick:e,stateSelector:"a:not([href])"}),n.addMenuItem("anchor",{icon:"anchor",text:"Anchor",context:"insert",onclick:e})}); -------------------------------------------------------------------------------- /system/js/internal/folders.js: -------------------------------------------------------------------------------- 1 | $(function() { 2 | reloadPageFolders(); 3 | var indexDropDown = $('#indexPage'); 4 | $('#indexPage').on('click', function() { 5 | $('#indexPage').replaceWith(indexDropDown); 6 | }); 7 | }); 8 | 9 | //callback function for the ajax forms 10 | function reloadPageFolders() { 11 | $('input:text').val(''); 12 | showSpinner(); 13 | $.getJSON($('#website_url').val() + 'backend/backend_page/loadpagefolders/', function(response) { 14 | hideSpinner(); 15 | $('#folders-list').html(response.pagefolders); 16 | }); 17 | } 18 | -------------------------------------------------------------------------------- /system/coreinfo.php.default: -------------------------------------------------------------------------------- 1 | _name; 11 | } 12 | 13 | public function setName($name) { 14 | $this->_name = $name; 15 | return $this; 16 | } 17 | 18 | public function getIndexPage() { 19 | return $this->_indexPage; 20 | } 21 | 22 | public function setIndexPage($indexPage) { 23 | $this->_indexPage = $indexPage; 24 | return $this; 25 | } 26 | } -------------------------------------------------------------------------------- /seotoaster_core/application/views/scripts/backend/form/adminmail.phtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 |

translate('New message was posted on the website.'); ?>

7 | params) && !empty ($this->params)): ?> 8 |
9 | params as $name => $param): ?> 10 | badParams)): ?> 11 |
12 |
13 | 14 | 15 |
16 | 17 | 18 | -------------------------------------------------------------------------------- /system/css/less/mixins/mixins-overlay.less: -------------------------------------------------------------------------------- 1 | // Overlay mixins with dotted 2 | //=================================================== 3 | .overlay-dotted() { 4 | &:after{ 5 | content : ''; 6 | position : absolute; 7 | top : 0; 8 | left : 0; 9 | right : 0; 10 | bottom : 0; 11 | z-index : 1; 12 | background : url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAADCAYAAABWKLW/AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAB9JREFUeNpiZmBg6AZiDiBWZ4YyQMCOCcYA4kMAAQYAHyYCCUdxidgAAAAASUVORK5CYII="); 13 | } 14 | } -------------------------------------------------------------------------------- /seotoaster_core/application/app/MagicSpaces/Notloggedin/Notloggedin.php: -------------------------------------------------------------------------------- 1 | getCurrentUser(); 10 | $userRole = $loggedUser->getRoleId(); 11 | if ($userRole === Tools_Security_Acl::ROLE_GUEST) { 12 | return $this->_spaceContent; 13 | } 14 | 15 | return ''; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /system/js/external/tinymce5/skins/ui/oxide/content.mobile.min.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Tiny Technologies, Inc. All rights reserved. 3 | * Licensed under the LGPL or a commercial license. 4 | * For LGPL see License.txt in the project root for license information. 5 | * For commercial licenses see https://www.tiny.cloud/ 6 | */ 7 | .tinymce-mobile-unfocused-selections .tinymce-mobile-unfocused-selection{background-color:green;display:inline-block;opacity:.5;position:absolute}body{-webkit-text-size-adjust:none}body img{max-width:96vw}body table img{max-width:95%}body{font-family:sans-serif}table{border-collapse:collapse} 8 | -------------------------------------------------------------------------------- /system/js/external/tinymce5/skins/ui/oxide-dark/content.mobile.min.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Tiny Technologies, Inc. All rights reserved. 3 | * Licensed under the LGPL or a commercial license. 4 | * For LGPL see License.txt in the project root for license information. 5 | * For commercial licenses see https://www.tiny.cloud/ 6 | */ 7 | .tinymce-mobile-unfocused-selections .tinymce-mobile-unfocused-selection{background-color:green;display:inline-block;opacity:.5;position:absolute}body{-webkit-text-size-adjust:none}body img{max-width:96vw}body table img{max-width:95%}body{font-family:sans-serif}table{border-collapse:collapse} 8 | -------------------------------------------------------------------------------- /seotoaster_core/application/app/Widgets/Copyright/Copyright.php: -------------------------------------------------------------------------------- 1 | ' . self::COPYRIGHT_SYMBOL . ' ' . $currentYear; 20 | } 21 | } 22 | 23 | 24 | -------------------------------------------------------------------------------- /seotoaster_core/application/models/DbTable/Container.php: -------------------------------------------------------------------------------- 1 | array( 13 | // 'columns' => array('page_id'), 14 | // 'refTableClass' => 'Application_Model_DbTable_Page', 15 | // 'refColumns' => array('id'), 16 | // 'onDelete' => self::CASCADE, 17 | // ) 18 | // ); 19 | } 20 | 21 | -------------------------------------------------------------------------------- /seotoaster_core/application/app/Widgets/User/views/user-prefix.phtml: -------------------------------------------------------------------------------- 1 | readonly)):?> 2 | 11 | 12 | value;?> 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /seotoaster_core/application/models/DbTable/Redirect.php: -------------------------------------------------------------------------------- 1 | 7 | */ 8 | class Application_Model_DbTable_Redirect extends Zend_Db_Table_Abstract { 9 | 10 | protected $_name = 'redirect'; 11 | 12 | 13 | //Moved to db layer 14 | /*protected $_referenceMap = array( 15 | 'Page' => array( 16 | 'columns' => array('page_id'), 17 | 'refTableClass' => 'Application_Model_DbTable_Page', 18 | 'refColumns' => array('id'), 19 | 'onDelete' => self::CASCADE, 20 | ) 21 | );*/ 22 | 23 | } 24 | 25 | -------------------------------------------------------------------------------- /system/languages/en.lng: -------------------------------------------------------------------------------- 1 | 'Login', 3 | 'cs_new' => 'Abandoned carts', 4 | 'cs_completed' => 'Payment Received', 5 | 'cs_shipped' => 'Items Shipped', 6 | 'cs_refunded' => 'Refunded purchase', 7 | 'cs_processing' => 'Technical processing - Customer not charged', 8 | 'cs_delivered' => 'Items Delivered', 9 | 'cs_pending' => 'Merchant action required - Customer charged', 10 | 'cs_canceled' => 'Canceled', 11 | 'cs_error' => 'Error', 12 | 'cs_total' => 'total', 13 | 'cs_quote_sent' => 'Quote Sent', 14 | 'cs_new_quote' => 'Quote new', 15 | 'cs_lost_opportunity' => 'Lost opportunity' 16 | ); 17 | ?> 18 | -------------------------------------------------------------------------------- /seotoaster_core/application/forms/Content.php: -------------------------------------------------------------------------------- 1 | _containerType) { 8 | $this->_containerType = Application_Model_Models_Container::TYPE_REGULARCONTENT; 9 | } 10 | 11 | $this->addElement('textarea', 'content', array( 12 | 'id' => 'content', 13 | 'cols' => '85', 14 | 'rows' => '30', 15 | 'class' => 'tinymce', 16 | 'value' => $this->_content, 17 | 'filters' => array('StringTrim') 18 | )); 19 | 20 | parent::init(); 21 | 22 | $this->removeDecorator('DtDdWrapper'); 23 | $this->removeDecorator('DlWrapper'); 24 | } 25 | } -------------------------------------------------------------------------------- /seotoaster_core/application/models/DbTable/LinkContainer.php: -------------------------------------------------------------------------------- 1 | 7 | */ 8 | class Application_Model_DbTable_LinkContainer extends Zend_Db_Table_Abstract { 9 | 10 | protected $_name = 'link_container'; 11 | 12 | /* Moved on db side 13 | protected $_referenceMap = array( 14 | 'Container' => array( 15 | 'columns' => array('id_container'), 16 | 'refTableClass' => 'Application_Model_DbTable_Container', 17 | 'refColumns' => array('id'), 18 | 'onDelete' => self::CASCADE, 19 | ) 20 | ); 21 | */ 22 | 23 | } 24 | 25 | -------------------------------------------------------------------------------- /seotoaster_core/application/models/DbTable/Config.php: -------------------------------------------------------------------------------- 1 | getAdapter()->fetchPairs($this->select()->from($this->_name)); 9 | } 10 | 11 | public function updateConfigParam($name, $value) { 12 | 13 | $rowset = $this->find($name); 14 | $row = $rowset->current(); 15 | if ($row === null) { 16 | $row = $this->createRow( array( 17 | 'name' => $name, 18 | 'value' => $value 19 | )); 20 | } else { 21 | $row->value = $value; 22 | } 23 | 24 | return $row->save(); 25 | } 26 | 27 | 28 | } 29 | 30 | -------------------------------------------------------------------------------- /system/js/external/tinymce/plugins/stw/plugin.min.js: -------------------------------------------------------------------------------- 1 | tinymce.PluginManager.add("stw",function(f,g){f.addButton("stw",{type:"listbox",text:"Useful shortcuts",icon:!1,values:function(){var e=[];$.ajax({type:"post",url:$("#website_url").val()+"backend/backend_content/loadwidgets/",success:function(a){for(var b in a)for(var c in a[b]){var d={};"undefined"!=typeof a[b][c].alias?(d.text=a[b][c].alias,d.value="{$"+a[b][c].option+"}"):(d.text=a[b][c],d.value="{$"+a[b][c]+"}");e.push(d)}button.menu&&(button.menu.remove(),button.menu=null);button.settings.values= 2 | button.settings.menu=e},dataType:"json"});return e}(),onselect:function(){f.insertContent(this.value());this.value(null)},onPostRender:function(){button=this}})}); 3 | -------------------------------------------------------------------------------- /seotoaster_core/application/forms/Prepop.php: -------------------------------------------------------------------------------- 1 | Seotoaster core team 5 | * Date: 5/25/12 6 | * Time: 6:37 PM 7 | */ 8 | class Application_Form_Prepop extends Application_Form_Container { 9 | 10 | public function init() { 11 | if(!$this->_containerType) { 12 | $this->_containerType = Application_Model_Models_Container::TYPE_PREPOP; 13 | } 14 | 15 | $this->addElement('text', 'content', array( 16 | 'id' => 'content', 17 | 'value' => $this->_content, 18 | 'filters' => array('StringTrim') 19 | )); 20 | 21 | parent::init(); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /seotoaster_core/application/models/Models/Silo.php: -------------------------------------------------------------------------------- 1 | 7 | */ 8 | class Application_Model_Models_Silo extends Application_Model_Models_Abstract { 9 | 10 | protected $_name = ''; 11 | 12 | protected $_relatedPages = array(); 13 | 14 | public function getRelatedPages() { 15 | return $this->_relatedPages; 16 | } 17 | 18 | public function setRelatedPages($relatedPages) { 19 | $this->_relatedPages = $relatedPages; 20 | return $this; 21 | } 22 | 23 | public function getName() { 24 | return $this->_name; 25 | } 26 | 27 | public function setName($name) { 28 | $this->_name = $name; 29 | return $this; 30 | } 31 | } 32 | 33 | -------------------------------------------------------------------------------- /system/js/external/tinymce/plugins/code/plugin.min.js: -------------------------------------------------------------------------------- 1 | tinymce.PluginManager.add("code",function(e){function o(){var o=e.windowManager.open({title:"Source code",body:{type:"textbox",name:"code",multiline:!0,minWidth:e.getParam("code_dialog_width",600),minHeight:e.getParam("code_dialog_height",Math.min(tinymce.DOM.getViewPort().h-200,500)),spellcheck:!1,style:"direction: ltr; text-align: left"},onSubmit:function(o){e.focus(),e.undoManager.transact(function(){e.setContent(o.data.code)}),e.selection.setCursorLocation(),e.nodeChanged()}});o.find("#code").value(e.getContent({source_view:!0}))}e.addCommand("mceCodeEditor",o),e.addButton("code",{icon:"code",tooltip:"Source code",onclick:o}),e.addMenuItem("code",{icon:"code",text:"Source code",context:"tools",onclick:o})}); -------------------------------------------------------------------------------- /seotoaster_core/application/app/Tools/Featured/GarbageCollector.php: -------------------------------------------------------------------------------- 1 | _cleanCachedFeaturedData(); 17 | } 18 | 19 | 20 | protected function _runOnDelete() { 21 | $this->_cleanCachedFeaturedData(); 22 | } 23 | 24 | private function _cleanCachedFeaturedData(){ 25 | $cacheHelper = Zend_Controller_Action_HelperBroker::getStaticHelper('cache'); 26 | $cacheHelper->clean(false, false, array('fa_'.$this->_object->getName())); 27 | } 28 | } 29 | 30 | -------------------------------------------------------------------------------- /seotoaster_core/application/models/DbTable/PageFeaturedarea.php: -------------------------------------------------------------------------------- 1 | 7 | */ 8 | class Application_Model_DbTable_PageFeaturedarea extends Zend_Db_Table_Abstract { 9 | 10 | protected $_name = 'page_fa'; 11 | 12 | protected $_referenceMap = array( 13 | 'Featuredarea' => array( 14 | 'columns' => array('fa_id'), 15 | 'refTableClass' => 'Application_Model_DbTable_Featuredarea', 16 | 'refColumns' => array('id') 17 | ), 18 | 'Page' => array( 19 | 'columns' => array('page_id'), 20 | 'refTableClass' => 'Application_Model_DbTable_Page', 21 | 'refColumns' => array('id') 22 | ) 23 | ); 24 | 25 | } 26 | 27 | -------------------------------------------------------------------------------- /seotoaster_core/application/app/Helpers/Action/Config.php: -------------------------------------------------------------------------------- 1 | _config = Zend_Registry::get('extConfig'); 10 | } 11 | catch (Zend_Exception $ze) { 12 | if(empty($this->_config)) { 13 | $configTable = new Application_Model_DbTable_Config(); 14 | $this->_config = $configTable->selectConfig(); 15 | Zend_Registry::set('extConfig', $this->_config); 16 | } 17 | } 18 | } 19 | 20 | public function getConfig($name = '') { 21 | if($name) { 22 | return (isset($this->_config[$name]) ? $this->_config[$name] : ''); 23 | } 24 | return $this->_config; 25 | } 26 | 27 | } 28 | 29 | -------------------------------------------------------------------------------- /seotoaster_core/application/views/helpers/ToasterAdminpanelItem.php: -------------------------------------------------------------------------------- 1 | 5 | */ 6 | class Zend_View_Helper_ToasterAdminpanelItem extends Zend_View_Helper_Abstract { 7 | 8 | public function toasterAdminpanelItem($menuItem){ 9 | if (is_string($menuItem)) { 10 | return '
  • '.$menuItem.'
  • '; 11 | } elseif (is_array($menuItem) && !empty($menuItem)) { 12 | return '
  • '. $this->view->toasterLink( 13 | 'plugin', $menuItem['name'], 14 | isset($menuItem['title'])?$menuItem['title']:$menuItem['run'], 15 | array('run' => $menuItem['run']), 16 | false, 17 | array('width' => $menuItem['width'], 'height' => $menuItem['height']) 18 | ) .'
  • '; 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /_install/installer/views/scripts/error/error.phtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Zend Framework Default Application 6 | 7 | 8 |

    An error occurred

    9 |

    message ?>

    10 | 11 | exception)): ?> 12 | 13 |

    Exception information:

    14 |

    15 | Message: exception->getMessage() ?> 16 |

    17 | 18 |

    Stack trace:

    19 |
    exception->getTraceAsString() ?>
    20 |   
    21 | 22 |

    Request Parameters:

    23 |
    request->getParams(), true) ?>
    24 |   
    25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /seotoaster_core/application/app/Widgets/Featured/views/farea-tags.phtml: -------------------------------------------------------------------------------- 1 | tags)): ?> 2 | translate('All'); ?>, 3 | tags);?> 4 | 5 | $tag): ?> 6 | 9 | $tagsLength): ?> 10 | , 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /seotoaster_core/application/views/scripts/backend/seo/sitemapindex.xml.phtml: -------------------------------------------------------------------------------- 1 | ';?> 2 | sitemaps) && !empty($this->sitemaps)): ?> 3 | 4 | sitemaps as $sitemapName => $sitemapData): ?> 5 | 6 | websiteUrl . $sitemapName . '.' . $sitemapData['extension'];?> 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /seotoaster_core/application/models/DbTable/PageHasOption.php: -------------------------------------------------------------------------------- 1 | Seotoaster core team 5 | * Date: 7/26/12 6 | * Time: 5:25 PM 7 | */ 8 | class Application_Model_DbTable_PageHasOption extends Zend_Db_Table_Abstract { 9 | 10 | protected $_name = 'page_has_option'; 11 | 12 | protected $_referenceMap = array( 13 | 'Page' => array( 14 | 'columns' => 'page_id', 15 | 'refTableClass' => 'Application_Model_DbTable_Page', 16 | 'refColumns' => 'id' 17 | ), 18 | 'Option' => array( 19 | 'columns' => 'option_id', 20 | 'refTableClass' => 'Application_Model_DbTable_PageOption', 21 | 'refColumns' => 'id' 22 | ) 23 | ); 24 | 25 | } 26 | -------------------------------------------------------------------------------- /seotoaster_core/application/views/scripts/backend/page/loadpagefolders.phtml: -------------------------------------------------------------------------------- 1 | folders)): ?> 2 | folders as $folder): ?> 3 |
    4 |
    5 |
    6 |
    7 | 8 |
    9 |
    10 | 11 | 12 | -------------------------------------------------------------------------------- /seotoaster_core/application/views/scripts/backend/search/results.phtml: -------------------------------------------------------------------------------- 1 | hits) && !empty($this->hits)): ?> 2 | hits as $hit): ?> 3 |
  • 4 | useImage): ?> 5 | 6 | <?php echo $hit['h1']; ?> 7 | 8 | 9 | 10 | 11 | 12 | 13 |
  • 14 | 15 | 16 | -------------------------------------------------------------------------------- /seotoaster_core/application/app/Validators/UrlRegex.php: -------------------------------------------------------------------------------- 1 | 7 | */ 8 | class Validators_UrlRegex extends Zend_Validate_Abstract { 9 | 10 | const URL = 'url'; 11 | 12 | protected $_messageTemplates = array( 13 | self::URL => "'%value%' is not valid url" 14 | ); 15 | 16 | public function isValid($value) { 17 | $validator = new Zend_Validate_Regex(array( 18 | 'pattern' => '~^(ht|f)tps?\://((\d{1,3}\.){3}\d{1,3}|([\w-]*\.){1,}[a-z]{2,10})(:\d{2,5})?(|/([\w\-.?,/+&%$#=\~])*(?_setValue($value); 22 | if (!$validator->isValid($value)) { 23 | $this->_error(self::URL); 24 | return false; 25 | } 26 | return true; 27 | } 28 | } 29 | 30 | -------------------------------------------------------------------------------- /_install/revert-alters.sql: -------------------------------------------------------------------------------- 1 | -- 21/11/2013 2 | -- Main menu template type 3 | -- version: 2.1.0 4 | DELETE FROM `template_type` WHERE `id` = 'typemenu'; 5 | 6 | -- 19/12/2013 7 | -- User attributes table added 8 | -- version: 2.1.1 9 | DROP TABLE `user_attributes`; 10 | 11 | -- 26/12/2013 12 | -- SEO Intro fields for optimized table 13 | -- version: 2.1.2 14 | ALTER TABLE `optimized` DROP `seo_intro`, DROP `seo_intro_target`; 15 | 16 | -- 29/01/2014 17 | -- reCAPTCHA refactoring 18 | -- version: 2.1.3 19 | UPDATE `config` SET `name` = 'recapthaPublicKey' WHERE `name` = 'recaptchaPublicKey'; 20 | UPDATE `config` SET `name` = 'recapthaPrivateKey' WHERE `name` = 'recaptchaPrivateKey'; 21 | 22 | -- These alters are always the latest and updated version of the database 23 | SELECT value FROM `config` WHERE name = 'version'; 24 | -------------------------------------------------------------------------------- /seotoaster_core/application/app/Helpers/Action/Mobile.php: -------------------------------------------------------------------------------- 1 | 7 | */ 8 | 9 | class Helpers_Action_Mobile extends Zend_Controller_Action_Helper_Abstract { 10 | 11 | /** 12 | * @var Mobile_Detect 13 | */ 14 | private $_instance; 15 | 16 | public function init(){ 17 | if ($this->_instance === null){ 18 | $this->_instance = new Mobile_Detect(); 19 | } 20 | } 21 | 22 | public function __call($name, $arguments) { 23 | if (method_exists($this->_instance, $name)){ 24 | return call_user_func_array(array($this->_instance, $name), $arguments); 25 | } else { 26 | return $this->_instance->__call($name, $arguments); 27 | } 28 | } 29 | 30 | 31 | } -------------------------------------------------------------------------------- /_install/installer/views/scripts/_langs.phtml: -------------------------------------------------------------------------------- 1 |
    2 |
    3 | langs as $locale => $flag): ?> 4 | translate()->getLocale() === $locale ? 'checked="checked"' : '' ; ?> 6 | /> 7 | 10 | 11 |
    12 |
    13 | -------------------------------------------------------------------------------- /seotoaster_core/application/models/Mappers/ConfigMapper.php: -------------------------------------------------------------------------------- 1 | 7 | */ 8 | class Application_Model_Mappers_ConfigMapper extends Application_Model_Mappers_Abstract { 9 | 10 | protected $_dbTable = 'Application_Model_DbTable_Config'; 11 | 12 | public function save($config) { 13 | if (!is_array($config) || empty ($config)){ 14 | throw new Exceptions_SeotoasterException('Given parameter should be non empty array'); 15 | } 16 | 17 | array_walk($config, function($value, $key, $dbTable){ 18 | $dbTable->updateConfigParam($key, $value); 19 | }, $this->getDbTable()); 20 | 21 | return true; 22 | } 23 | 24 | public function getConfig() { 25 | return $this->getDbTable()->selectConfig(); //->toArray(); 26 | } 27 | 28 | } -------------------------------------------------------------------------------- /seotoaster_core/application/app/MagicSpaces/Roleonly/Roleonly.php: -------------------------------------------------------------------------------- 1 | _params[0], FILTER_SANITIZE_STRING)); 16 | 17 | $sessionHelper = Zend_Controller_Action_HelperBroker::getStaticHelper('session'); 18 | $user = $sessionHelper->getCurrentUser(); 19 | $roleId = $user->getRoleId(); 20 | if (!in_array($roleId, $allowedRoles)) { 21 | return ''; 22 | } 23 | 24 | 25 | return $this->_spaceContent; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /system/js/external/tinymce5/plugins/hr/plugin.min.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Tiny Technologies, Inc. All rights reserved. 3 | * Licensed under the LGPL or a commercial license. 4 | * For LGPL see License.txt in the project root for license information. 5 | * For commercial licenses see https://www.tiny.cloud/ 6 | * 7 | * Version: 5.5.1 (2020-10-01) 8 | */ 9 | !function(){"use strict";var n=tinymce.util.Tools.resolve("tinymce.PluginManager");n.add("hr",function(n){var o,t;(o=n).addCommand("InsertHorizontalRule",function(){o.execCommand("mceInsertContent",!1,"
    ")}),(t=n).ui.registry.addButton("hr",{icon:"horizontal-rule",tooltip:"Horizontal line",onAction:function(){return t.execCommand("InsertHorizontalRule")}}),t.ui.registry.addMenuItem("hr",{icon:"horizontal-rule",text:"Horizontal line",onAction:function(){return t.execCommand("InsertHorizontalRule")}})})}(); -------------------------------------------------------------------------------- /seotoaster_core/application/views/scripts/backend/seo/siloslist.phtml: -------------------------------------------------------------------------------- 1 | silos) && !empty ($this->silos)): ?> 2 | silos as $key => $silo): ?> 3 |
    4 | 5 |
    getName(); ?>
    6 |
    7 | 8 |
    9 |
    10 | 11 | 12 | translate('You have no silos yet'); ?> 13 | 14 | -------------------------------------------------------------------------------- /seotoaster_core/application/app/Tools/Content/Feed.php: -------------------------------------------------------------------------------- 1 | 7 | */ 8 | class Tools_Content_Feed { 9 | 10 | /** 11 | * Sitemap feed related constants 12 | * 13 | */ 14 | const SMFEED_HIGHPRIORITY_PAGE_URL = 'index.html'; 15 | const SMFEED_CHANGEFREEQ = 'daily'; 16 | 17 | const SMFEED_TYPE_REGULAR = ''; 18 | const SMFEED_TYPE_INDEX = 'index'; 19 | 20 | /** 21 | * Generates sitemap xml feed. According to the sitemap protocol described at sitemaps.org 22 | * 23 | * @see http://www.sitemaps.org/protocol.php 24 | * @deprecated 25 | * @return xml 26 | */ 27 | public static function generateSitemapFeed() {} 28 | 29 | } 30 | 31 | -------------------------------------------------------------------------------- /seotoaster_core/application/views/scripts/backend/content/files.phtml: -------------------------------------------------------------------------------- 1 | files)): ?> 2 | files as $file): ?> 3 |
    4 | 7 | 8 |
    9 |
    10 | 11 | 12 |

    translate('You have no files yet...'); ?>

    13 | 14 | -------------------------------------------------------------------------------- /seotoaster_core/application/app/Widgets/Rss/views/rss.phtml: -------------------------------------------------------------------------------- 1 | feed) && !empty ($this->feed)): ?> 2 | 3 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /system/css/less/mixins/mixins-thumbnail.less: -------------------------------------------------------------------------------- 1 | // Thumbnail state style 2 | //================================================== 3 | .thumbnail-state( 4 | @radius : @thumbnail-border-radius; 5 | @border-width : @thumbnail-border-width; 6 | @border-color : @thumbnail-border-color; 7 | @background : @thumbnail-bg 8 | ) { 9 | position : relative; 10 | cursor : pointer; 11 | overflow : hidden; 12 | text-align : center; 13 | padding : @thumbnail-padding; 14 | background : @background; 15 | .border-radius(@radius); 16 | & when (@border-width > 0){ 17 | border : @border-width solid @border-color; 18 | } 19 | 20 | &:hover{ 21 | & when (@border-width > 0){ 22 | border-color : @thumbnail-color-hover; 23 | } 24 | .box-shadow(3px 3px 3px @thumbnail-color-hover; @thumbnail-shadow-hover); 25 | } 26 | } -------------------------------------------------------------------------------- /system/js/external/tinymce5/plugins/print/plugin.min.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Tiny Technologies, Inc. All rights reserved. 3 | * Licensed under the LGPL or a commercial license. 4 | * For LGPL see License.txt in the project root for license information. 5 | * For commercial licenses see https://www.tiny.cloud/ 6 | * 7 | * Version: 5.5.1 (2020-10-01) 8 | */ 9 | !function(){"use strict";var n=tinymce.util.Tools.resolve("tinymce.PluginManager"),e=tinymce.util.Tools.resolve("tinymce.Env");n.add("print",function(n){var t,i;(t=n).addCommand("mcePrint",function(){e.browser.isIE()?t.getDoc().execCommand("print",!1,null):t.getWin().print()}),(i=n).ui.registry.addButton("print",{icon:"print",tooltip:"Print",onAction:function(){return i.execCommand("mcePrint")}}),i.ui.registry.addMenuItem("print",{text:"Print...",icon:"print",onAction:function(){return i.execCommand("mcePrint")}}),n.addShortcut("Meta+P","","mcePrint")})}(); -------------------------------------------------------------------------------- /seotoaster_core/application/app/Tools/Seo/GarbageCollector.php: -------------------------------------------------------------------------------- 1 | 7 | */ 8 | 9 | class Tools_Seo_GarbageCollector extends Tools_System_GarbageCollector { 10 | 11 | protected function _runOnDefault() { 12 | 13 | } 14 | 15 | protected function _runOnDelete() { 16 | if($this->_object instanceof Application_Model_Models_Silo) { 17 | $this->_cleanSiloPages(); 18 | } 19 | } 20 | 21 | 22 | /** 23 | * $this->_object represents Application_Model_Models_Silo 24 | */ 25 | private function _cleanSiloPages() { 26 | $siloPages = $this->_object->getRelatedPages(); 27 | if(!empty ($siloPages)) { 28 | array_map(function($page) { 29 | $page->setSiloId(0); 30 | Application_Model_Mappers_PageMapper::getInstance()->save($page); 31 | }, $siloPages); 32 | } 33 | } 34 | } 35 | 36 | -------------------------------------------------------------------------------- /seotoaster_core/application/views/scripts/error/error.phtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Zend Framework Default Application 6 | 7 | 8 |

    An error occurred

    9 |

    message ?>

    10 | 11 | exception)): ?> 12 | 13 |

    Exception information:

    14 |

    15 | Message: exception->getMessage() ?> 16 |

    17 | 18 |

    Stack trace:

    19 |
    exception->getTraceAsString() ?>
    20 |   
    21 | 22 |

    Request Parameters:

    23 |
    request->getParams(), true) ?>
    24 |   
    25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /seotoaster_core/application/app/Widgets/Pagebreak/Pagebreak.php: -------------------------------------------------------------------------------- 1 | _websiteHelper = Zend_Controller_Action_HelperBroker::getStaticHelper('website'); 20 | $this->_sessionHelper = Zend_Controller_Action_HelperBroker::getStaticHelper('session'); 21 | $this->_translator = Zend_Controller_Action_HelperBroker::getStaticHelper('language'); 22 | $this->_view = new Zend_View(array('scriptPath' => __DIR__ . '/views')); 23 | } 24 | 25 | protected function _load() 26 | { 27 | return $this->_view->render('pagebreak.phtml'); 28 | } 29 | 30 | } 31 | 32 | -------------------------------------------------------------------------------- /seotoaster_core/application/models/Models/UserWhitelistIp.php: -------------------------------------------------------------------------------- 1 | _roleId; 16 | } 17 | 18 | /** 19 | * @param string $roleId 20 | */ 21 | public function setRoleId($roleId) 22 | { 23 | $this->_roleId = $roleId; 24 | } 25 | 26 | /** 27 | * @return string 28 | */ 29 | public function getIpAddress() 30 | { 31 | return $this->_ipAddress; 32 | } 33 | 34 | /** 35 | * @param string $ipAddress 36 | */ 37 | public function setIpAddress($ipAddress) 38 | { 39 | $this->_ipAddress = $ipAddress; 40 | } 41 | 42 | 43 | 44 | 45 | } 46 | 47 | -------------------------------------------------------------------------------- /seotoaster_core/application/app/Tools/Text/Tools.php: -------------------------------------------------------------------------------- 1 | translate("We've detected that you're running Apache server. Put following code to .htaccess file in seotoaster folder:");?> 2 |
    3 |
     4 |     RewriteEngine On
     5 |     
    11 |     RewriteCond %{REQUEST_FILENAME} -s [OR]
    12 |     RewriteCond %{REQUEST_FILENAME} -l [OR]
    13 |     RewriteCond %{REQUEST_FILENAME} -d
    14 |     RewriteRule ^.*$ - [NC,L]
    15 |     RewriteRule ^.*$ index.php [NC,L]
    16 |
    17 | -------------------------------------------------------------------------------- /seotoaster_core/application/views/scripts/backend/seo/robots.phtml: -------------------------------------------------------------------------------- 1 |
    2 | partial('admin' . DIRECTORY_SEPARATOR . '_header.phtml', array('headerText' => 'Edit robots.txt', 'helpSection' => $this->helpSection)); ?> 3 |
    4 |
    5 |
    6 | form->getElement('content'); ?> 7 |
    8 |
    9 | 14 | 15 |
    16 |
    17 | -------------------------------------------------------------------------------- /system/css/less/toaster/widgets-plugins/wb-image-only.less: -------------------------------------------------------------------------------- 1 | #webbuilder-image-only-inner{ 2 | 3 | #webbuilder-form-image-data{ 4 | height : 105px; 5 | } 6 | 7 | #images-list{ 8 | height : 435px; 9 | overflow : auto; 10 | 11 | >*{ 12 | .grid-elements(5, 2, false, @responsive-column-tablet, @responsive-column-mobile, false); 13 | 14 | img{ } 15 | } 16 | } 17 | 18 | #webbuilder-main-image{ 19 | height : 260px; 20 | line-height : 259px; 21 | 22 | img{ 23 | max-height : 100%; 24 | width : auto; 25 | height : auto; 26 | } 27 | } 28 | 29 | .noimage{ 30 | font-size : 64px; 31 | height : 440px; 32 | line-height : 440px; 33 | text-align : center; 34 | color : @gray-light; 35 | text-transform : uppercase; 36 | } 37 | } -------------------------------------------------------------------------------- /seotoaster_core/application/app/Widgets/Meta/Meta.php: -------------------------------------------------------------------------------- 1 | _cacheTags, 'pageid_'.$this->_toasterOptions['id']); 16 | } 17 | 18 | protected function _load() { 19 | return $this->_getMetaContent(); 20 | } 21 | 22 | private function _getMetaContent() { 23 | $metaType = current($this->_options); 24 | $metaContent = ''; 25 | switch ($metaType) { 26 | case self::TYPE_KEYWORDS: 27 | $metaContent = $this->_toasterOptions['metaKeywords']; 28 | break; 29 | case self::TYPE_DESCRIPTION: 30 | $metaContent = $this->_toasterOptions['metaDescription']; 31 | break; 32 | } 33 | return strip_tags($metaContent); 34 | } 35 | } 36 | 37 | -------------------------------------------------------------------------------- /seotoaster_core/application/app/Widgets/Search/views/form.phtml: -------------------------------------------------------------------------------- 1 |
    3 | searchForm->getElement('search')->renderLabel(); ?> 4 | 5 | searchForm->getElement('search')->renderViewHelper(); ?> 6 | 7 | subfolders)) :?> 8 | 9 | 10 | pagetags)) :?> 11 | 12 | 13 | 14 |
    15 | -------------------------------------------------------------------------------- /seotoaster_core/application/forms/Upload.php: -------------------------------------------------------------------------------- 1 | 6 | */ 7 | class Application_Form_Upload extends Zend_Form { 8 | 9 | public function init(){ 10 | 11 | $this->setName('uploadForm') 12 | ->setMethod(self::METHOD_POST) 13 | ->setAttrib('id', 'toaster-uploader') 14 | ->setDecorators(array( 15 | array('ViewScript', array('viewScript' => 'admin/uploadForm.phtml')) 16 | )); 17 | 18 | $fileUpload = new Zend_Form_Element_File('file', array( 19 | 'label' => 'Upload', 20 | 'decorators' => array('File'), 21 | 'multiple' => true 22 | )); 23 | 24 | $this->addElement($fileUpload); 25 | 26 | $this->addElement('hidden', 'caller', array( 27 | 'decorators' => array('ViewHelper') 28 | )); 29 | 30 | $this->addElement('button', 'submit', array( 31 | 'label' => 'Upload', 32 | 'decorators' => array('ViewHelper') 33 | )); 34 | 35 | } 36 | } -------------------------------------------------------------------------------- /seotoaster_core/application/app/Helpers/Action/Website.php: -------------------------------------------------------------------------------- 1 | _getParam('url')); 9 | return Zend_Controller_Front::getInstance()->getRequest()->getScheme() . '://' . $url; 10 | } 11 | 12 | public function getDefaultPage() { 13 | return self::DEFAULT_PAGE; 14 | } 15 | 16 | public function __call($name, $arguments) { 17 | $name = str_replace('get', '', $name); 18 | if(($param = $this->_getParam(strtolower($name))) == '') { 19 | return $this->_getParam(lcfirst($name)); 20 | } 21 | return $param; 22 | } 23 | 24 | private function _getParam($name) { 25 | $websiteData = Zend_Registry::get('website'); 26 | return isset($websiteData[$name]) ? $websiteData[$name] : ''; 27 | } 28 | } 29 | 30 | -------------------------------------------------------------------------------- /system/js/internal/sculpting.min.js: -------------------------------------------------------------------------------- 1 | $(function(){$("#addSilo-label").hide();loadSculptingData();$(document).on("change",".silo-select",function(){var b=$(this).attr("id"),a=$(this).val();showSpinner(this);$.post($("#website_url").val()+"backend/backend_seo/addsilotopage/",{pid:b,sid:a},function(a){hideSpinner();showMessage("undefined"!=typeof a.responseText?a.responseText:"Added")})});$(document).on("click","input.silo-this-cat",function(){var b=$(this).val(),a=$("#website_url").val();showSpinner(this);a=$(this).prop("checked")?a+"backend/backend_seo/silocat/act/add/": 2 | a+"backend/backend_seo/silocat/act/remove/";$.post(a,{cid:b,secureToken:$(".secureToken").val()},function(){loadSculptingData()})})});sculptingCallback=function(){$("#silo-name").val("");loadSculptingData()};var loadSculptingData=function(){showSpinner();$.getJSON($("#website_url").val()+"backend/backend_seo/loadsculptingdata",function(b){hideSpinner();$("#sculpting-list").html(b.sculptingList);checkboxRadioStyle()})}; 3 | -------------------------------------------------------------------------------- /seotoaster_core/application/models/Models/Seodata.php: -------------------------------------------------------------------------------- 1 | 7 | */ 8 | class Application_Model_Models_Seodata extends Application_Model_Models_Abstract { 9 | 10 | protected $_seoHead = ''; 11 | 12 | protected $_seoBottom = ''; 13 | 14 | protected $_seoTop = ''; 15 | 16 | public function getSeoHead() { 17 | return $this->_seoHead; 18 | } 19 | 20 | public function setSeoHead($seoHead) { 21 | $this->_seoHead = $seoHead; 22 | return $this; 23 | } 24 | 25 | public function getSeoBottom() { 26 | return $this->_seoBottom; 27 | } 28 | 29 | public function setSeoBottom($seoBottom) { 30 | $this->_seoBottom = $seoBottom; 31 | return $this; 32 | } 33 | 34 | public function getSeoTop() { 35 | return $this->_seoTop; 36 | } 37 | 38 | public function setSeoTop($seoTop) { 39 | $this->_seoTop = $seoTop; 40 | return $this; 41 | } 42 | } 43 | 44 | -------------------------------------------------------------------------------- /seotoaster_core/application/app/Tools/System/Observable.php: -------------------------------------------------------------------------------- 1 | _observers[] = $observer; 9 | return $this; 10 | } 11 | 12 | public function removeObserver($observer) { 13 | if(!is_array($this->_observers) || empty($this->_observers)) { 14 | return $this; 15 | } 16 | $this->_observers = array_filter($this->_observers, function($currentObserver) use($observer) { 17 | return !$currentObserver instanceof $observer; 18 | }); 19 | 20 | return $this; 21 | } 22 | 23 | public function notifyObservers() { 24 | foreach($this->_observers as $observer) { 25 | $observer->notify($this); 26 | } 27 | } 28 | 29 | public function removeAllObservers() { 30 | $this->_observers = array(); 31 | return $this; 32 | } 33 | } 34 | 35 | -------------------------------------------------------------------------------- /seotoaster_core/application/controllers/Backend/ApiController.php: -------------------------------------------------------------------------------- 1 | 5 | */ 6 | class Backend_ApiController extends Zend_Controller_Action { 7 | 8 | public function init(){ 9 | parent::init(); 10 | $this->_helper->layout->disableLayout(); 11 | $this->_helper->viewRenderer->setNoRender(true); 12 | } 13 | 14 | public function indexAction(){ 15 | $plugin = filter_var($this->_request->getParam('plugin'), FILTER_SANITIZE_STRING); 16 | $service = filter_var($this->_request->getParam('service'), FILTER_SANITIZE_STRING); 17 | 18 | if (empty($plugin) && empty($service)){ 19 | $this->_response->clearAllHeaders()->clearBody(); 20 | $this->_response->setHttpResponseCode(403)->sendResponse(); 21 | } 22 | 23 | $service = Tools_Factory_RestServiceFactory::createService($plugin, $service); 24 | if ($service instanceof Api_Service_Abstract) { 25 | return $service->dispatch(); 26 | } 27 | 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /system/js/external/jquery/plugins/cycle/jquery.cycle2.shuffle.min.js: -------------------------------------------------------------------------------- 1 | /* Plugin for Cycle2; Copyright (c) 2012 M. Alsup; v20141007 */ 2 | !function(a){"use strict";a.fn.cycle.transitions.shuffle={transition:function(b,c,d,e,f){function g(a){this.stack(b,c,d,e),a()}a(d).css({display:"block",visibility:"visible"});var h=b.container.css("overflow","visible").width(),i=b.speed/2,j=e?c:d;b=b.API.getSlideOpts(e?b.currSlide:b.nextSlide);var k={left:-h,top:15},l=b.slideCss||{left:0,top:0};void 0!==b.shuffleLeft?k.left=k.left+parseInt(b.shuffleLeft,10)||0:void 0!==b.shuffleRight&&(k.left=h+parseInt(b.shuffleRight,10)||0),b.shuffleTop&&(k.top=b.shuffleTop),a(j).animate(k,i,b.easeIn||b.easing).queue("fx",a.proxy(g,this)).animate(l,i,b.easeOut||b.easing,f)},stack:function(b,c,d,e){var f,g;if(e)b.API.stackSlides(d,c,e),a(c).css("zIndex",1);else{for(g=1,f=b.nextSlide-1;f>=0;f--)a(b.slides[f]).css("zIndex",g++);for(f=b.slideCount-1;f>b.nextSlide;f--)a(b.slides[f]).css("zIndex",g++);a(d).css("zIndex",b.maxZ),a(c).css("zIndex",b.maxZ-1)}}}}(jQuery); 3 | -------------------------------------------------------------------------------- /seotoaster_core/application/models/Models/PageOption.php: -------------------------------------------------------------------------------- 1 | _id = $id; 15 | return $this; 16 | } 17 | 18 | public function setActive($active) { 19 | $this->_active = $active; 20 | return $this; 21 | } 22 | 23 | public function getActive() { 24 | return $this->_active; 25 | } 26 | 27 | public function setContext($context) { 28 | $this->_context = $context; 29 | return $this; 30 | } 31 | 32 | public function getContext() { 33 | return $this->_context; 34 | } 35 | 36 | public function setTitle($title) { 37 | $this->_title = $title; 38 | return $this; 39 | } 40 | 41 | public function getTitle() { 42 | return $this->_title; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /seotoaster_core/application/app/Widgets/Seo/Seo.php: -------------------------------------------------------------------------------- 1 | _options); 7 | $rendererName = '_renderSeo' . ucfirst($widgetType); 8 | if(method_exists($this, $rendererName)) { 9 | return $this->$rendererName($this->_options); 10 | } 11 | throw new Exceptions_SeotoasterWidgetException($this->_translator->translate('Wrong seo widget type')); 12 | } 13 | 14 | // public static function getAllowedOptions() { 15 | // $translator = Zend_Registry::get('Zend_Translate'); 16 | // return array( 17 | // array( 18 | // 'alias' => $translator->translate('Seo top content'), 19 | // 'option' => 'seo:top' 20 | // ), 21 | // array( 22 | // 'alias' => $translator->translate('Seo bottom content'), 23 | // 'option' => 'seo:bottom' 24 | // ) 25 | // ); 26 | // } 27 | 28 | private function _renderSeoTop() { 29 | return ''; 30 | } 31 | 32 | private function _renderSeoBottom() { 33 | return ''; 34 | } 35 | } 36 | 37 | -------------------------------------------------------------------------------- /seotoaster_core/application/app/MagicSpaces/Remoteauthorization/Remoteauthorization.php: -------------------------------------------------------------------------------- 1 | getCurrentUser(); 18 | $userId = $currentUser->getId(); 19 | 20 | $usersMapper = Application_Model_Mappers_UserMapper::getInstance(); 21 | $userModel = $usersMapper->find($userId); 22 | if (!$userModel instanceof Application_Model_Models_User) { 23 | return ''; 24 | } else { 25 | $allowed = $userModel->getAllowRemoteAuthorization(); 26 | if (!empty($allowed)) { 27 | return $this->_spaceContent; 28 | } 29 | return ''; 30 | } 31 | } 32 | 33 | } -------------------------------------------------------------------------------- /system/js/internal/featuredarea.min.js: -------------------------------------------------------------------------------- 1 | $(function(){$("#addFeaturedArea-label").hide();loadFaList();$(document).on("click","input.add-page",function(){showSpinner("#fa-list");var a=$("#fa-list [type=checkbox]:checked");$(".featured-link").html(a.length?' Page was added '+a.length+' times in tags':' Tag this page');var a=$("#pageId").val(),c=$(this).attr("id"), 2 | b=$(".pcount-"+c),d=$(this).prop("checked")?"addpagetofa/":"rempagefromfa/",e=$(this);$.post($("#website_url").val()+"backend/backend_featured/"+d,{pid:a,faid:c,secureToken:$("#frm-page").find(".secureToken").val()},function(a){hideSpinner();showMessage(a.responseText);b.text(e.prop("checked")?parseInt(b.text())+1:parseInt(b.text())-1)})})}); 3 | function loadFaList(){$.getJSON($("#website_url").val()+"backend/backend_featured/loadfalist/pid/"+$("#pageId").val(),function(a){$("#fa-list").html(a.faList);$("#fa-name").val("");checkboxRadioStyle()})}; 4 | -------------------------------------------------------------------------------- /seotoaster_core/application/views/scripts/backend/content/header.phtml: -------------------------------------------------------------------------------- 1 |
    2 | partial('admin' . DIRECTORY_SEPARATOR . '_header.phtml', array('innerHeaderHtml' => 'Edit header', 'helpSection' => $this->helpSection)); ?> 3 |
    4 |
    5 | contentForm->getElement('content'); ?> 6 | contentForm->getElement('submit'); ?> 7 | contentForm->getElement('containerType'); ?> 8 | contentForm->getElement('containerName'); ?> 9 | contentForm->getElement('pageId'); ?> 10 | contentForm->getElement('containerId'); ?> 11 | 12 |
    13 |
    14 |
    -------------------------------------------------------------------------------- /system/js/external/tinymce/skins/seotoaster/content.inline.min.css: -------------------------------------------------------------------------------- 1 | .mce-object{border:1px dotted #3A3A3A;background:#d5d5d5 url(img/object.gif) no-repeat center}.mce-pagebreak{cursor:default;display:block;border:0;width:100%;height:5px;border:1px dashed #666;margin-top:15px;page-break-before:always}@media print{.mce-pagebreak{border:0px}}.mce-item-anchor{cursor:default;display:inline-block;-webkit-user-select:all;-webkit-user-modify:read-only;-moz-user-select:all;-moz-user-modify:read-only;user-select:all;user-modify:read-only;width:9px !important;height:9px !important;border:1px dotted #3A3A3A;background:#d5d5d5 url(img/anchor.gif) no-repeat center}.mce-nbsp{background:#AAA}hr{cursor:default}.mce-match-marker{background:#AAA;color:#fff}.mce-match-marker-selected{background:#3399ff;color:#fff}.mce-spellchecker-word{border-bottom:2px solid #F00;cursor:default}.mce-spellchecker-grammar{border-bottom:2px solid #008000;cursor:default}.mce-item-table,.mce-item-table td,.mce-item-table th,.mce-item-table caption{border:1px dashed #BBB}td.mce-item-selected,th.mce-item-selected{background-color:#3399ff !important} -------------------------------------------------------------------------------- /seotoaster_core/application/app/Widgets/Pwa/views/a2hs.phtml: -------------------------------------------------------------------------------- 1 | 2 | 26 | -------------------------------------------------------------------------------- /system/css/less/packages/control_panel.less: -------------------------------------------------------------------------------- 1 | // Table of Content 2 | //================================================== 3 | // CPanel Pages 4 | // CPanel Media 5 | // CPanel SEO 6 | // CPanel Layout 7 | // CPanel Other 8 | // CPanel News 9 | // CPanel WebSite Id Card 10 | //================================================== 11 | 12 | // CPanel Pages 13 | //================================================== 14 | @import "../toaster/control-panel/cp-pages"; 15 | 16 | // CPanel Media 17 | //================================================== 18 | @import "../toaster/control-panel/cp-media"; 19 | 20 | // CPanel SEO 21 | //================================================== 22 | @import "../toaster/control-panel/cp-seo"; 23 | 24 | // CPanel Layout 25 | //================================================== 26 | @import "../toaster/control-panel/cp-layout"; 27 | 28 | // CPanel Other 29 | //================================================== 30 | @import "../toaster/control-panel/cp-other"; 31 | 32 | // CPanel News 33 | //================================================== 34 | @import "../toaster/control-panel/cp-news"; -------------------------------------------------------------------------------- /_install/index.php: -------------------------------------------------------------------------------- 1 | bootstrap()->run(); -------------------------------------------------------------------------------- /seotoaster_core/application/app/Tools/Factory/RestServiceFactory.php: -------------------------------------------------------------------------------- 1 | www.ioncube.com/loaders.php or request your web host to do it for you.'); 11 | } 12 | $zendLoader = Zend_Loader_Autoloader::getInstance(); 13 | $zendLoader->suppressNotFoundWarnings(true); 14 | if ($zendLoader->autoload($serviceClassName)){ 15 | $frontController = Zend_Controller_Front::getInstance(); 16 | return new $serviceClassName($frontController->getRequest(), $frontController->getResponse()); 17 | } 18 | return false; 19 | } 20 | 21 | } 22 | 23 | -------------------------------------------------------------------------------- /seotoaster_core/application/models/Models/FormPageConversion.php: -------------------------------------------------------------------------------- 1 | _pageId; 23 | } 24 | 25 | public function setPageId($pageId) { 26 | $this->_pageId = $pageId; 27 | return $this; 28 | } 29 | 30 | public function getFormName() { 31 | return $this->_formName; 32 | } 33 | 34 | public function setFormName($formName) { 35 | $this->_formName = $formName; 36 | return $this; 37 | } 38 | 39 | public function getConversionCode() { 40 | return $this->_conversionCode; 41 | } 42 | 43 | public function setConversionCode($conversionCode) { 44 | $this->_conversionCode = $conversionCode; 45 | return $this; 46 | } 47 | 48 | } 49 | 50 | -------------------------------------------------------------------------------- /system/css/less/elements/message.less: -------------------------------------------------------------------------------- 1 | // Message styles 2 | // ------------------------- 3 | .message{ 4 | display : block; 5 | padding : @padding-base-vertical @padding-base-horizontal; 6 | border : 1px solid; 7 | border-left-width : 3px; 8 | .border-radius(@state-border-radius); 9 | .alert-color(@state-primary-color, @state-primary-bg, @state-primary-border); 10 | 11 | // Alternate styles 12 | // ------------------------- 13 | &.success when (@alert-color-success = true) and (@alert-colors = true){ 14 | .alert-color(@state-success-color, @state-success-bg, @state-success-border); 15 | } 16 | &.warning when (@alert-color-warning = true) and (@alert-colors = true){ 17 | .alert-color(@state-warning-color, @state-warning-bg, @state-warning-border); 18 | } 19 | &.error when (@alert-color-error = true) and (@alert-colors = true){ 20 | .alert-color(@state-error-color, @state-error-bg, @state-error-border); 21 | } 22 | &.info when (@alert-color-info = true) and (@alert-colors = true){ 23 | .alert-color(@state-info-color, @state-info-bg, @state-info-border); 24 | } 25 | } -------------------------------------------------------------------------------- /system/js/external/tinymce/plugins/save/plugin.min.js: -------------------------------------------------------------------------------- 1 | tinymce.PluginManager.add("save",function(e){function a(){var a;return a=tinymce.DOM.getParent(e.id,"form"),!e.getParam("save_enablewhendirty",!0)||e.isDirty()?(tinymce.triggerSave(),e.getParam("save_onsavecallback")?void(e.execCallback("save_onsavecallback",e)&&(e.startContent=tinymce.trim(e.getContent({format:"raw"})),e.nodeChanged())):void(a?(e.isNotDirty=!0,(!a.onsubmit||a.onsubmit())&&("function"==typeof a.submit?a.submit():e.windowManager.alert("Error: Form submit field collision.")),e.nodeChanged()):e.windowManager.alert("Error: No form element found."))):void 0}function n(){var a=tinymce.trim(e.startContent);return e.getParam("save_oncancelcallback")?void e.execCallback("save_oncancelcallback",e):(e.setContent(a),e.undoManager.clear(),void e.nodeChanged())}function t(){var a=this;e.on("nodeChange",function(){a.disabled(e.getParam("save_enablewhendirty",!0)&&!e.isDirty())})}e.addCommand("mceSave",a),e.addCommand("mceCancel",n),e.addButton("save",{icon:"save",text:"Save",cmd:"mceSave",disabled:!0,onPostRender:t}),e.addButton("cancel",{text:"Cancel",icon:!1,cmd:"mceCancel",disabled:!0,onPostRender:t}),e.addShortcut("ctrl+s","","mceSave")}); -------------------------------------------------------------------------------- /system/js/external/tinymce/plugins/visualblocks/plugin.min.js: -------------------------------------------------------------------------------- 1 | tinymce.PluginManager.add("visualblocks",function(e,s){function o(){var s=this;s.active(a),e.on("VisualBlocks",function(){s.active(e.dom.hasClass(e.getBody(),"mce-visualblocks"))})}var l,t,a;window.NodeList&&(e.addCommand("mceVisualBlocks",function(){var o,c=e.dom;l||(l=c.uniqueId(),o=c.create("link",{id:l,rel:"stylesheet",href:s+"/css/visualblocks.css"}),e.getDoc().getElementsByTagName("head")[0].appendChild(o)),e.on("PreviewFormats AfterPreviewFormats",function(s){a&&c.toggleClass(e.getBody(),"mce-visualblocks","afterpreviewformats"==s.type)}),c.toggleClass(e.getBody(),"mce-visualblocks"),a=e.dom.hasClass(e.getBody(),"mce-visualblocks"),t&&t.active(c.hasClass(e.getBody(),"mce-visualblocks")),e.fire("VisualBlocks")}),e.addButton("visualblocks",{title:"Show blocks",cmd:"mceVisualBlocks",onPostRender:o}),e.addMenuItem("visualblocks",{text:"Show blocks",cmd:"mceVisualBlocks",onPostRender:o,selectable:!0,context:"view",prependToContext:!0}),e.on("init",function(){e.settings.visualblocks_default_state&&e.execCommand("mceVisualBlocks",!1,null,{skip_focus:!0})}),e.on("remove",function(){e.dom.removeClass(e.getBody(),"mce-visualblocks")}))}); -------------------------------------------------------------------------------- /seotoaster_core/application/forms/Silo.php: -------------------------------------------------------------------------------- 1 | 7 | */ 8 | class Application_Form_Silo extends Application_Form_Secure { 9 | 10 | protected $_name = ''; 11 | 12 | public function init() { 13 | parent::init(); 14 | $this->setMethod(Zend_Form::METHOD_POST); 15 | 16 | $this->addElement(new Zend_Form_Element_Text(array( 17 | 'id' => 'silo-name', 18 | 'name' => 'name', 19 | 'label' => 'Silo name', 20 | 'value' => $this->_name, 21 | 'required' => true, 22 | 'class' => 'grid_9 alpha omega', 23 | 'filters' => array('StringTrim') 24 | ))); 25 | 26 | $this->addElement(new Zend_Form_Element_Button(array( 27 | 'name' => 'addSilo', 28 | 'id' => 'add-silo', 29 | 'value' => 'Add silo', 30 | 'class' => 'btn ticon-plus grid_3 alpha omega mt0px', 31 | 'label' => 'Add silo', 32 | 'type' => 'submit' 33 | ))); 34 | 35 | $this->setElementDecorators(array('ViewHelper', 'Label')); 36 | 37 | $this->getElement('addSilo')->setDecorators(array('ViewHelper')); 38 | 39 | } 40 | 41 | } 42 | 43 | -------------------------------------------------------------------------------- /seotoaster_core/application/views/scripts/index/404page.phtml: -------------------------------------------------------------------------------- 1 | doctype(); ?> 2 | 3 | 4 | Page not found 5 | 6 | 7 |
    8 |
    Error 404. Page not found.
    9 |
    Sorry, but the page you were looking for can't be found.
    10 | role)): ?> 11 | 12 |
    You can customize this page - just create a page and assign it as 404 error page 13 |
    Select "Our error 404 “Not found” page" from dropdown "This page is ..." on the create/update page screen. 14 |


    15 | 16 | back to home page 17 |
    18 | 19 | 20 | -------------------------------------------------------------------------------- /system/js/external/tinymce5/plugins/code/plugin.min.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Tiny Technologies, Inc. All rights reserved. 3 | * Licensed under the LGPL or a commercial license. 4 | * For LGPL see License.txt in the project root for license information. 5 | * For commercial licenses see https://www.tiny.cloud/ 6 | * 7 | * Version: 5.5.1 (2020-10-01) 8 | */ 9 | !function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),o=function(o){var e=o.getContent({source_view:!0});o.windowManager.open({title:"Source Code",size:"large",body:{type:"panel",items:[{type:"textarea",name:"code"}]},buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:{code:e},onSubmit:function(e){var t,n;t=o,n=e.getData().code,t.focus(),t.undoManager.transact(function(){t.setContent(n)}),t.selection.setCursorLocation(),t.nodeChanged(),e.close()}})};e.add("code",function(e){var t,n;return(t=e).addCommand("mceCodeEditor",function(){o(t)}),(n=e).ui.registry.addButton("code",{icon:"sourcecode",tooltip:"Source code",onAction:function(){return o(n)}}),n.ui.registry.addMenuItem("code",{icon:"sourcecode",text:"Source code",onAction:function(){return o(n)}}),{}})}(); -------------------------------------------------------------------------------- /seotoaster_core/application/forms/Code.php: -------------------------------------------------------------------------------- 1 | 12 | */ 13 | class Application_Form_Code extends Application_Form_Container { 14 | 15 | public function init() { 16 | 17 | if(!$this->_containerType) { 18 | $this->_containerType = Application_Model_Models_Container::TYPE_REGULARCONTENT; 19 | } 20 | 21 | $this->addElement('textarea', 'content', array( 22 | 'id' => 'content', 23 | 'cols' => '85', 24 | 'rows' => '27', 25 | 'class' => 'code-content', 26 | 'value' => $this->_content, 27 | 'filters' => array('StringTrim') 28 | )); 29 | 30 | $this->addAttribs(array( 31 | 'class' => '_fajax _reload' 32 | )); 33 | 34 | parent::init(); 35 | 36 | $this->getElement('content')->setDecorators(array( 37 | 'ViewHelper', 38 | 'Errors', 39 | array( 40 | array('data' => 'HtmlTag'), 41 | array('tag' => 'div', 'id' => 'edit_code', 'style' => "height: 450px") 42 | ) 43 | )); 44 | } 45 | 46 | } 47 | 48 | -------------------------------------------------------------------------------- /seotoaster_core/application/views/helpers/ToasterFrame.php: -------------------------------------------------------------------------------- 1 | _initDefaults($params); 13 | return ''; 20 | } 21 | 22 | private function _initDefaults($params) { 23 | return array( 24 | 'width' => isset($params['width']) ? $params['width'] : '100%', 25 | 'height' => isset($params['height']) ? $params['height'] : '100%', 26 | 'frameborder' => isset($params['frameborder']) ? $params['frameborder'] : 'no', 27 | ); 28 | } 29 | } -------------------------------------------------------------------------------- /seotoaster_core/application/views/scripts/admin/_draftorlive.phtml: -------------------------------------------------------------------------------- 1 | 5 |   translate($this->publishAtLabel);?>:   6 | datePicker( 7 | 'datepicker', 8 | ((intval($this->publishAt)) ? date('M j, Y', strtotime($this->publishAt)) : ''), 9 | array( 10 | 'defaultDate' => '', 11 | 'onSelect' => (isset($this->onselectCallback)) ? new Zend_Json_Expr($this->onselectCallback) : '', 12 | 'dateFormat' => 'M d, yy' 13 | ), 14 | array( 15 | 'style' => 'width:100px;', 16 | 'class' => 'small' 17 | )); 18 | ?> 19 | 20 | -------------------------------------------------------------------------------- /seotoaster_core/application/app/Widgets/Content/views/ajax.phtml: -------------------------------------------------------------------------------- 1 | 20 |
    21 | <?php echo $this->translate('Loading...');?> 22 |
    -------------------------------------------------------------------------------- /seotoaster_core/application/app/Tools/Factory/WidgetFactory.php: -------------------------------------------------------------------------------- 1 | addElement( 10 | 'text', 11 | 'content', 12 | array( 13 | 'id' => 'content', 14 | 'value' => $this->_content, 15 | 'filters' => array('StringTrim'), 16 | 'class' => 'header-content' 17 | ) 18 | ); 19 | 20 | $this->addElement( 21 | 'button', 22 | 'submit', 23 | array( 24 | 'type' => 'submit', 25 | 'id' => 'btn-submit', 26 | 'label' => 'Save content', 27 | 'class' => 'formsubmit mt15px', 28 | 'ignore' => true 29 | ) 30 | ); 31 | 32 | parent::init(); 33 | 34 | if (!$this->_containerType) { 35 | $this->_containerType = Application_Model_Models_Container::TYPE_REGULARHEADER; 36 | } 37 | 38 | $classes = $this->getAttrib('class'); 39 | $classes .= ' _fajax _reload'; 40 | $this->setAttrib('class', $classes); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /seotoaster_core/application/views/scripts/backend/page/listpages.html.phtml: -------------------------------------------------------------------------------- 1 |
    2 |
    3 | 4 |
    5 | translate('List pages using ' . $this->templateName . ' template'); ?> 6 |
    7 |
    8 | responseData && is_array($this->responseData)): ?> 9 |
      10 | responseData as $number => $page): ?> 11 |
    1. 12 | # 13 | 14 |
    2. 15 | 16 |
    17 | 18 |
      19 |
    1. translate('There are no pages with this template!'); ?>
    2. 20 |
    21 | 22 |
    -------------------------------------------------------------------------------- /seotoaster_core/application/views/scripts/admin/_header.phtml: -------------------------------------------------------------------------------- 1 | headerText) || !empty($this->innerHeaderHtml)): ?> 2 |
    3 | 4 | 5 |
    6 | helpSection)){ 7 | echo $this->toasterHelp($this->helpSection, $this->hashMap); 8 | } ?> 9 | 10 |
    11 | 12 | headerText) ? $this->translate($this->headerText) : ''); ?> 13 | innerHeaderHtml) && $this->innerHeaderHtml): ?> 14 | innerHeaderHtml; ?> 15 | 16 | 17 | pluginsSpace) && is_array($this->pluginsSpace) && !empty ($this->pluginsSpace)): ?> 18 |
    19 | pluginsSpace as $pluginEditorTop): ?> 20 |
    21 | 22 |
    23 | 24 |
    25 | 26 | 27 | headerText) || !empty($this->innerHeaderHtml)): ?> 28 |
    29 | -------------------------------------------------------------------------------- /seotoaster_core/application/views/scripts/backend/featured/falist.phtml: -------------------------------------------------------------------------------- 1 | faeaturedAreas) && is_array($this->faeaturedAreas)): ?> 2 | 3 | faeaturedAreas as $fa): ?> 4 |
    5 |
    6 | getId(), $this->currentFareasIds)) ? 'checked="checked"' : ''; ?>/> 7 | getName(); ?> (getPages()); ?>) 8 |
    9 |
    10 | 11 |
    12 |
    13 | 14 | 15 | -------------------------------------------------------------------------------- /seotoaster_core/application/views/scripts/backend/seo/deeplinkslist.phtml: -------------------------------------------------------------------------------- 1 | deeplinks)): ?> 2 | deeplinks as $deeplink): ?> 3 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /seotoaster_core/application/models/Models/FormBlacklistRules.php: -------------------------------------------------------------------------------- 1 | _type; 26 | } 27 | 28 | /** 29 | * @param string $type 30 | * @return string 31 | */ 32 | public function setType($type) 33 | { 34 | $this->_type = $type; 35 | 36 | return $this; 37 | } 38 | 39 | /** 40 | * @return string 41 | */ 42 | public function getValue() 43 | { 44 | return $this->_value; 45 | } 46 | 47 | /** 48 | * @param string $value 49 | * @return string 50 | */ 51 | public function setValue($value) 52 | { 53 | $this->_value = $value; 54 | 55 | return $this; 56 | } 57 | 58 | 59 | } 60 | 61 | -------------------------------------------------------------------------------- /system/js/external/tinymce/plugins/advlist/plugin.min.js: -------------------------------------------------------------------------------- 1 | tinymce.PluginManager.add("advlist",function(t){function e(t,e){var n=[];return tinymce.each(e.split(/[ ,]/),function(t){n.push({text:t.replace(/\-/g," ").replace(/\b\w/g,function(t){return t.toUpperCase()}),data:"default"==t?"":t})}),n}function n(e,n){var o,l=t.dom,a=t.selection;o=l.getParent(a.getNode(),"ol,ul"),o&&o.nodeName==e&&n!==!1||t.execCommand("UL"==e?"InsertUnorderedList":"InsertOrderedList"),n=n===!1?i[e]:n,i[e]=n,o=l.getParent(a.getNode(),"ol,ul"),o&&n&&(l.setStyle(o,"listStyleType",n),o.removeAttribute("data-mce-style")),t.focus()}function o(e){var n=t.dom.getStyle(t.dom.getParent(t.selection.getNode(),"ol,ul"),"listStyleType")||"";e.control.items().each(function(t){t.active(t.settings.data===n)})}var l,a,i={};l=e("OL",t.getParam("advlist_number_styles","default,lower-alpha,lower-greek,lower-roman,upper-alpha,upper-roman")),a=e("UL",t.getParam("advlist_bullet_styles","default,circle,disc,square")),t.addButton("numlist",{type:"splitbutton",tooltip:"Numbered list",menu:l,onshow:o,onselect:function(t){n("OL",t.control.settings.data)},onclick:function(){n("OL",!1)}}),t.addButton("bullist",{type:"splitbutton",tooltip:"Bullet list",menu:a,onshow:o,onselect:function(t){n("UL",t.control.settings.data)},onclick:function(){n("UL",!1)}})}); -------------------------------------------------------------------------------- /seotoaster_core/application/app/MagicSpaces/Device/Device.php: -------------------------------------------------------------------------------- 1 | _params[0])) { 12 | return $this->_spaceContent; 13 | } 14 | $devices = explode(',', preg_replace('/\s+/u', '', $this->_params[0])); 15 | if(empty($devices)) { 16 | return ''; 17 | } 18 | 19 | if (isset($sessionHelper->mobileSwitch)) { 20 | $isMobile = $sessionHelper->mobileSwitch; 21 | } else { 22 | $isMobile = $mobileHelper->isMobile(); 23 | } 24 | 25 | if ($isMobile) { 26 | $deviceType = $mobileHelper->isTablet() ? Widgets_Mobile_Mobile::MODE_TABLET : Widgets_Mobile_Mobile::MODE_MOBILE ; 27 | } else { 28 | $deviceType = Widgets_Mobile_Mobile::MODE_DESKTOP; 29 | } 30 | if (!in_array($deviceType, $devices)) { 31 | return ''; 32 | } 33 | } 34 | 35 | } -------------------------------------------------------------------------------- /seotoaster_core/application/forms/Css.php: -------------------------------------------------------------------------------- 1 | 6 | */ 7 | class Application_Form_Css extends Application_Form_Secure { 8 | protected $_content = ''; 9 | protected $_cssList = ''; 10 | 11 | public function init() { 12 | parent::init(); 13 | $this->setMethod(Zend_Form::METHOD_POST); 14 | $this->setAttrib('id', 'editcssform'); 15 | 16 | $this->addElement('select', 'cssname', array( 17 | 'required' => true, 18 | 'id' => 'csslist', 19 | 'class' => 'w70' 20 | )); 21 | $this->getElement('cssname')->setDisableTranslator(true); 22 | 23 | $this->addElement('textarea', 'content', array( 24 | 'id' => 'csscontent', 25 | 'required' => true, 26 | 'allowEmpty' => true, 27 | 'spellcheck' => 'false', 28 | 'value' => $this->_content 29 | )); 30 | 31 | $this->addElement(new Zend_Form_Element_Button(array( 32 | 'type' => 'submit', 33 | 'name' => 'submit', 34 | 'label' => 'Save CSS', 35 | 'class' => 'btn ticon-save formsubmit', 36 | 'ignore' => true, 37 | 'escape' => false 38 | ))); 39 | 40 | $this->setDecorators(array('ViewScript')) 41 | ->setElementDecorators(array('ViewHelper')) 42 | ->setElementFilters(array('StringTrim')); 43 | } 44 | } -------------------------------------------------------------------------------- /seotoaster_core/application/forms/Login.php: -------------------------------------------------------------------------------- 1 | setMethod(Zend_Form::METHOD_POST); 9 | 10 | $this->setAttribs(array( 11 | 'id' => 'login-form' 12 | )); 13 | 14 | $this->addElement('text', 'email', array( 15 | 'label' => 'E-mail', 16 | 'aria-label' => 'E-mail', 17 | 'required' => true, 18 | 'filters' => array('StringTrim'), 19 | 'validators' => array(new Tools_System_CustomEmailValidator()) 20 | )); 21 | 22 | $this->addElement('password', 'password', array( 23 | 'label' => 'Password', 24 | 'required' => true, 25 | 'aria-label' => 'Password', 26 | //'placeholder' => '********', 27 | )); 28 | 29 | $this->addElement('hidden', 'secureToken', array( 30 | 'required' => true 31 | )); 32 | 33 | $this->addElement(new Zend_Form_Element_Button(array( 34 | 'name' => 'submit', 35 | 'ignore' => true, 36 | 'label' => 'Let me in', 37 | 'type' => 'submit', 38 | 'aria-label' => 'Let me in' 39 | ))); 40 | 41 | $this->removeDecorator('DtDdWrapper'); 42 | $this->removeDecorator('DlWrapper'); 43 | } 44 | 45 | 46 | } 47 | -------------------------------------------------------------------------------- /system/js/external/jquery/plugins/cycle/jquery.cycle2.swipe.min.js: -------------------------------------------------------------------------------- 1 | /* Plugin for Cycle2; Copyright (c) 2012 M. Alsup; v20141007 */ 2 | !function(a){"use strict";a.event.special.swipe=a.event.special.swipe||{scrollSupressionThreshold:10,durationThreshold:1e3,horizontalDistanceThreshold:30,verticalDistanceThreshold:75,setup:function(){var b=a(this);b.bind("touchstart",function(c){function d(b){if(g){var c=b.originalEvent.touches?b.originalEvent.touches[0]:b;e={time:(new Date).getTime(),coords:[c.pageX,c.pageY]},Math.abs(g.coords[0]-e.coords[0])>a.event.special.swipe.scrollSupressionThreshold&&b.preventDefault()}}var e,f=c.originalEvent.touches?c.originalEvent.touches[0]:c,g={time:(new Date).getTime(),coords:[f.pageX,f.pageY],origin:a(c.target)};b.bind("touchmove",d).one("touchend",function(){b.unbind("touchmove",d),g&&e&&e.time-g.timea.event.special.swipe.horizontalDistanceThreshold&&Math.abs(g.coords[1]-e.coords[1])e.coords[0]?"swipeleft":"swiperight"),g=e=void 0})})}},a.event.special.swipeleft=a.event.special.swipeleft||{setup:function(){a(this).bind("swipe",a.noop)}},a.event.special.swiperight=a.event.special.swiperight||a.event.special.swipeleft}(jQuery); 3 | -------------------------------------------------------------------------------- /system/js/external/jquery/plugins/cookie/jquery.cookie.js: -------------------------------------------------------------------------------- 1 | (function(c){"function"===typeof define&&define.amd?define(["jquery"],c):"object"===typeof exports?c(require("jquery")):c(jQuery)})(function(c){function n(b){b=f.json?JSON.stringify(b):String(b);return f.raw?b:encodeURIComponent(b)}function m(b,e){var a;if(f.raw)a=b;else a:{var d=b;0===d.indexOf('"')&&(d=d.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"));try{d=decodeURIComponent(d.replace(l," "));a=f.json?JSON.parse(d):d;break a}catch(g){}a=void 0}return c.isFunction(e)?e(a):a}var l=/\+/g,f= 2 | c.cookie=function(b,e,a){if(void 0!==e&&!c.isFunction(e)){a=c.extend({},f.defaults,a);if("number"===typeof a.expires){var d=a.expires,g=a.expires=new Date;g.setTime(+g+864E5*d)}return document.cookie=[f.raw?b:encodeURIComponent(b),"=",n(e),a.expires?"; expires="+a.expires.toUTCString():"",a.path?"; path="+a.path:"",a.domain?"; domain="+a.domain:"",a.secure?"; secure":""].join("")}a=b?void 0:{};for(var d=document.cookie?document.cookie.split("; "):[],g=0,l=d.length;g_session = Zend_Registry::get('session'); 11 | return $this; 12 | } 13 | 14 | public function getCurrentUser() 15 | { 16 | if (!$this->_session->currentUser) { 17 | return new Application_Model_Models_User(); 18 | } 19 | return unserialize($this->_session->currentUser); 20 | } 21 | 22 | public function setCurrentUser(Application_Model_Models_User $user) 23 | { 24 | $this->_session->currentUser = serialize($user); 25 | } 26 | 27 | public function getSession() 28 | { 29 | return $this->_session; 30 | } 31 | 32 | public function __set($name, $value) 33 | { 34 | $this->_session->$name = $value; 35 | } 36 | 37 | public function __get($name) 38 | { 39 | return $this->_session->$name; 40 | } 41 | 42 | public function __unset($name) 43 | { 44 | unset($this->_session->$name); 45 | } 46 | 47 | public function __isset($name) 48 | { 49 | return isset($this->_session->$name); 50 | } 51 | } 52 | 53 | -------------------------------------------------------------------------------- /system/css/less/reset-widgets.css.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["reset-widgets.less","mixins/mixins-systems.less","mixins/mixins-buttons-style.less"],"names":[],"mappings":"AAIA;EACI,cAAA;EACA,aAAA;;AAFJ,aAII;EACI,kBAAA;EACA,WAAA;EACA,cAAA;EACA,iBAAA;EACA,UAAA;EACA,gBAAA;ECDJ,4BAAA;EA0QI,eAAA;EACA,eAAA;EAMA,YAAA;;AAKA,aD3RJ,aC2RK,UAAU;EACP,cAAA;;ADlRJ,aAVJ,aAUK,MACG;AADJ,aAVJ,aAUK,MACmB;ECmNxB,UAAA;EAGI,0BAAA;;ADrOR,aAII,aAmBI;AAvBR,aAII,aAmBoB;EACZ,UAAA;EACA,kBAAA;ECyMR,UAAA;EAGI,wBAAA;EA9NA,iCAAA;EAEJ,yBAAA;;ADTJ,aAII,aA0BI;EACI,WAAA;;AA/BZ,aAII,aA8BI;EACI,cAAA;;AAnCZ,aAII,aAkCI;EACI,kBAAA;EACA,UAAA;EACA,mBAAA;EACA,SAAA;EACA,WAAA;EACA,sBAAA;EC8KR,gBAAA;EACA,uBAAA;EACA,mBAAA;EAnNA,8BAAA;;ADTJ,aAII,aA4CI;EACI,aAAA;EACA,gBAAA;EACA,kBAAA;;AAnDZ,aAII,aAiDI;EEwBJ,WAAA;EACA,yBAAA;EACA,qBAAA;EACA,qBAAA;;AAEA,aF9EA,aAiDI,gBE6BH;AAAQ,aF9ET,aAiDI,gBE6BM;EAKF,WAAA;EAGA,yBAAA;EAGA,qBAAA;;AFrCA,aApDR,aAiDI,gBAGK;EEqBT,WAAA;EACA,yBAAA;EACA,qBAAA;EACA,qBAAA;;AAEA,aF9EA,aAiDI,gBAGK,ME0BR;AAAQ,aF9ET,aAiDI,gBAGK,ME0BC;EAKF,WAAA;EAGA,yBAAA;EAGA,qBAAA;;AF7FZ,aAII,aAwDI;EEiBJ,WAAA;EACA,yBAAA;EACA,qBAAA;EACA,qBAAA;;AAEA,aF9EA,aAwDI,cEsBH;AAAQ,aF9ET,aAwDI,cEsBM;EAKF,WAAA;EAGA,yBAAA;EAGA,qBAAA;;AF9BA,aA3DR,aAwDI,cAGK;EEcT,cAAA;EACA,yBAAA;EACA,qBAAA;EACA,qBAAA;;AAEA,aF9EA,aAwDI,cAGK,QEmBR;AAAQ,aF9ET,aAwDI,cAGK,QEmBC;EAEF,cAAA;EAMA,yBAAA;EAGA,qBAAA","file":"reset-widgets.css"} -------------------------------------------------------------------------------- /system/js/internal/user-attributes.js: -------------------------------------------------------------------------------- 1 | $(function(){ 2 | 3 | $('input.user-attribute').on('focus', function(e){ 4 | console.log('@TODO create backup'); 5 | }); 6 | $('input.user-attribute').on('keyup', function(e){ 7 | if (e.keyCode == 13){ 8 | $(this).trigger('blur'); 9 | return false; 10 | } 11 | }); 12 | $('select.user-attribute').on('change', function(e){ 13 | var data = {}, 14 | uId = $(this).data('uid'); 15 | data[$(this).data('attribute')] = $(this).val(); 16 | 17 | sendAjax(data, uId); 18 | }); 19 | 20 | $('input.user-attribute').on('change', function(e){ 21 | var data = {}, 22 | uId = $(this).data('uid'); 23 | data[$(this).data('attribute')] = $(this).val(); 24 | 25 | sendAjax(data, uId); 26 | }); 27 | 28 | function sendAjax(data, uId) { 29 | $.ajax({ 30 | url: $('#website_url').val() + 'api/toaster/users/id/' + uId, 31 | method: 'PUT', 32 | data: JSON.stringify(data), 33 | complete: function(xhr, status, response) { 34 | if (status === 'error'){ 35 | showMessage(status, true); 36 | } else { 37 | 38 | } 39 | } 40 | }) 41 | } 42 | }); -------------------------------------------------------------------------------- /seotoaster_core/application/models/Mappers/SeodataMapper.php: -------------------------------------------------------------------------------- 1 | 7 | */ 8 | class Application_Model_Mappers_SeodataMapper extends Application_Model_Mappers_Abstract { 9 | 10 | protected $_dbTable = 'Application_Model_DbTable_Seodata'; 11 | 12 | protected $_model = 'Application_Model_Models_Seodata'; 13 | 14 | public function save($seodata) { 15 | if(!$seodata instanceof Application_Model_Models_Seodata) { 16 | throw new Exceptions_SeotoasterException('Given parameter should be and Application_Model_DbTable_Seodata instance'); 17 | } 18 | $data = array( 19 | 'seo_top' => $seodata->getSeoTop(), 20 | 'seo_bottom' => $seodata->getSeoBottom(), 21 | 'seo_head' => $seodata->getSeoHead() 22 | ); 23 | if(null === ($id = $seodata->getId())) { 24 | unset($data['id']); 25 | $this->getDbTable()->insert($data); 26 | } 27 | else { 28 | $this->getDbTable()->update($data, array('id = ?' => $id)); 29 | } 30 | } 31 | 32 | public function delete(Application_Model_Models_Seodata $seodata) { 33 | $where = $this->getDbTable()->getAdapter()->quoteInto('id = ?', $seodata->getId()); 34 | $deleteResult = $this->getDbTable()->delete($where); 35 | $seodata->notifyObservers(); 36 | } 37 | } 38 | 39 | -------------------------------------------------------------------------------- /system/css/less/elements/images.less: -------------------------------------------------------------------------------- 1 | img[src*="/media/"]{ 2 | } 3 | 4 | img[style*="float: left"], img[style*="float:left"]{ 5 | margin-right : 15px; 6 | } 7 | 8 | img[style*="float: right"], img[style*="float:right"]{ 9 | margin-left : 15px; 10 | } 11 | 12 | .img-thumbnail when (@image-thumbnail = true) and (@images-style = true){ 13 | & img, img&{ 14 | .thumbnail-state(); 15 | } 16 | } 17 | .img-circle when (@image-circle = true) and (@images-style = true){ 18 | & img, img&{ 19 | .border-radius(50em); 20 | } 21 | } 22 | .img-rounded when (@image-rounded = true) and (@images-style = true){ 23 | & img, img&{ 24 | .border-radius(@border-radius-base); 25 | } 26 | } 27 | .img-leaflet-right when (@image-leaflet-right = true) and (@images-style = true){ 28 | & img, img&{ 29 | .border-radius(50% 0); 30 | } 31 | } 32 | .img-leaflet-left when (@image-leaflet-left = true) and (@images-style = true){ 33 | & img, img&{ 34 | .border-radius(0 50%); 35 | } 36 | } 37 | 38 | [class*="caption"]{ 39 | line-height : @line-height; 40 | padding : @padding-small-vertical; 41 | color : @thumbnail-caption-color; 42 | text-align : center; 43 | font-size : @font-size-small; 44 | .rgba(@thumbnail-caption-bg, @thumbnail-caption-opacity); 45 | } 46 | -------------------------------------------------------------------------------- /_install/installer/tools/SqlSplitter.php: -------------------------------------------------------------------------------- 1 | 7 | */ 8 | class SqlSplitter { 9 | 10 | /** 11 | * Split file/string containing multiple sql to an array 12 | * @param string String contains sql queries or content of .sql file 13 | * @return array List of queries 14 | */ 15 | public static function split($sql) 16 | { 17 | $sql = trim($sql); 18 | $sql = preg_replace("/\n\--[^\n]*/", '', "\n".$sql); 19 | $buffer = array (); 20 | $result = array (); 21 | $in_string = false; 22 | 23 | for ($i = 0; $i < strlen($sql) - 1; $i ++) { 24 | if ($sql[$i] == ";" && !$in_string) { 25 | $result[] = trim(substr($sql, 0, $i)); 26 | $sql = substr($sql, $i +1); 27 | $i = 0; 28 | } 29 | if ($in_string && ($sql[$i] == $in_string) && $buffer[1] != "\\") { 30 | $in_string = false; 31 | } elseif (!$in_string && ($sql[$i] == '"' || $sql[$i] == "'") && (!isset ($buffer[0]) || $buffer[0] != "\\")) { 32 | $in_string = $sql[$i]; 33 | } 34 | if (isset ($buffer[1])) { 35 | $buffer[0] = $buffer[1]; 36 | } 37 | $buffer[1] = $sql[$i]; 38 | } 39 | if (!empty ($sql)) { 40 | if (trim($sql) !== '') { 41 | $result[] = $sql; 42 | } 43 | } 44 | return $result; 45 | } 46 | 47 | } -------------------------------------------------------------------------------- /seotoaster_core/application/models/Mappers/GalDraggableMapper.php: -------------------------------------------------------------------------------- 1 | _model) { 12 | $model = new $this->_model($model); 13 | } 14 | 15 | $data = array( 16 | 'id' => $model->getId(), 17 | 'data' => $model->getData(), 18 | 'updated_at' => $model->getUpdatedAt(), 19 | 'user_id' => $model->getUserId(), 20 | 'ip_address' => $model->getIpAddress(), 21 | 'page_id' => $model->getPageId() 22 | ); 23 | 24 | $recordExists = $this->find($data['id']); 25 | if ($recordExists instanceof Application_Model_Models_GalDraggableModel) { 26 | $where = $this->getDbTable()->getAdapter()->quoteInto('id = ?', $model->getId()); 27 | $this->getDbTable()->update($data, $where); 28 | } else { 29 | $id = $this->getDbTable()->insert($data); 30 | $model->setId($id); 31 | } 32 | 33 | return $model; 34 | } 35 | 36 | 37 | } -------------------------------------------------------------------------------- /system/css/less/modules/carousel.less: -------------------------------------------------------------------------------- 1 | .carousel{ 2 | position : relative; 3 | max-width : 100%; 4 | .user-select(); 5 | 6 | .carousel-clip{ 7 | overflow : hidden; 8 | height : 100%; 9 | } 10 | 11 | .carousel-wrap{ 12 | .inline-block-wrap(top, ~'.carousel-item'); 13 | min-width : 100%; 14 | } 15 | 16 | &:hover{ 17 | .carousel-btn{ 18 | display : block; 19 | } 20 | } 21 | 22 | .carousel-btn{ 23 | .rgba(#fff, 0.75); 24 | position : absolute; 25 | top : 0; 26 | bottom : 0; 27 | margin : auto; 28 | width : 3em; 29 | display : none; 30 | font-size : @font-size-base; 31 | 32 | &:before{ 33 | font-family : @icon-family; 34 | position : absolute; 35 | left : 0; 36 | top : 0; 37 | bottom : 0; 38 | margin : auto; 39 | .icon-size(3em); 40 | } 41 | 42 | &.prev{ 43 | left : 0; 44 | 45 | &:before{ 46 | content : "\e0c5"; 47 | } 48 | } 49 | &.next{ 50 | right : 0; 51 | 52 | &:before{ 53 | content : "\e0c6"; 54 | } 55 | } 56 | } 57 | } -------------------------------------------------------------------------------- /seotoaster_core/application/views/scripts/backend/featured/featured.phtml: -------------------------------------------------------------------------------- 1 |
    2 | partial('admin' . DIRECTORY_SEPARATOR . '_header.phtml', array('headerText' => 'Tag this page | Create a tag', 'helpSection' => 'fa')); ?> 3 |
    4 | 13 |
    14 |
    15 | translate('Tagged?'); ?> 16 |
    17 |
    18 | translate('Page tag name'); ?> 19 |
    20 |
    21 |
    22 | partial('admin' . DIRECTORY_SEPARATOR . '_saveandclose.phtml', array('extraClasses' => 'mr-grid')); ?> 23 | 24 |
    25 |
    26 | -------------------------------------------------------------------------------- /seotoaster_core/application/app/Widgets/Search/views/results.phtml: -------------------------------------------------------------------------------- 1 | pager)): ?> 2 |
      3 | pager as $hit): ?> 4 |
    • 5 | useImage): ?> 6 | escape(Tools_Page_Tools::getPreview($hit['pageId'])); ?> 7 | 8 | <?php echo $hit['h1']; ?> 9 | 10 | 11 | 12 | 13 | 14 | websiteUrl.$hit['url'];?> 15 | 16 | 17 | 18 | 19 | 20 |
      21 |
    • 22 | 23 |
    24 | 25 | 26 | paginationControl($this->pager, 'Elastic', 'pager.phtml', array('urlData' => $this->urlData)); ?> -------------------------------------------------------------------------------- /seotoaster_core/application/app/Tools/System/SqlSplitter.php: -------------------------------------------------------------------------------- 1 | 7 | */ 8 | class Tools_System_SqlSplitter { 9 | 10 | /** 11 | * Split file/string containing multiple sql to an array 12 | * @param string String contains sql queries or content of .sql file 13 | * @return array List of queries 14 | */ 15 | public static function split($sql) 16 | { 17 | $sql = trim($sql); 18 | $sql = preg_replace("/\n\--[^\n]*/", '', "\n".$sql); 19 | $buffer = array (); 20 | $result = array (); 21 | $in_string = false; 22 | 23 | for ($i = 0; $i < strlen($sql) - 1; $i ++) { 24 | if ($sql[$i] == ";" && !$in_string) { 25 | $result[] = trim(substr($sql, 0, $i)); 26 | $sql = substr($sql, $i +1); 27 | $i = 0; 28 | } 29 | if ($in_string && ($sql[$i] == $in_string) && $buffer[1] != "\\") { 30 | $in_string = false; 31 | } elseif (!$in_string && ($sql[$i] == '"' || $sql[$i] == "'") && (!isset ($buffer[0]) || $buffer[0] != "\\")) { 32 | $in_string = $sql[$i]; 33 | } 34 | if (isset ($buffer[1])) { 35 | $buffer[0] = $buffer[1]; 36 | } 37 | $buffer[1] = $sql[$i]; 38 | } 39 | if (!empty ($sql)) { 40 | if (trim($sql) !== '') { 41 | $result[] = $sql; 42 | } 43 | } 44 | return $result; 45 | } 46 | 47 | } -------------------------------------------------------------------------------- /system/js/external/jquery/plugins/touchpunch/jquery.ui.touch-punch.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery UI Touch Punch 0.2.3 3 | * 4 | * Copyright 2011–2014, Dave Furfero 5 | * Dual licensed under the MIT or GPL Version 2 licenses. 6 | * 7 | * Depends: 8 | * jquery.ui.widget.js 9 | * jquery.ui.mouse.js 10 | */ 11 | !function(a){function f(a,b){if(!(a.originalEvent.touches.length>1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery); -------------------------------------------------------------------------------- /seotoaster_core/application/views/scripts/backend/seo/sculptinglist.phtml: -------------------------------------------------------------------------------- 1 | pages) && !empty ($this->pages)): ?> 2 | 3 | pages as $key => $pageData): ?> 4 |
    5 |
    6 |
    7 |
    translate('Silo this category'); ?>   />
    8 |
    9 | 10 | 11 |
    12 |
    getNavName(); ?>
    13 |
    formSelect('siloSelect', (($subPage->getSiloId()) ? $subPage->getSiloId() : 0), array('id' => $subPage->getId(), 'class' => 'silo-select'), $this->silosOptions); ?>
    14 |
    15 | 16 | 17 |
    18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /system/css/less/packages/widgets_plugins.less: -------------------------------------------------------------------------------- 1 | // Table of Content 2 | //================================================== 3 | // Edit content 4 | // Manage form 5 | // WebBuilder DirectUpload 6 | // WebBuilder Featured Only 7 | // WebBuilder Gallery Only 8 | // WebBuilder Image Only 9 | // WebBuilder Text Only 10 | //================================================== 11 | 12 | // Edit content 13 | //================================================== 14 | @import "../toaster/widgets-plugins/edit-content"; 15 | 16 | // Manage form 17 | //================================================== 18 | @import "../toaster/widgets-plugins/manage-form"; 19 | 20 | // WebBuilder DirectUpload 21 | //================================================== 22 | @import "../toaster/widgets-plugins/wb-directupload"; 23 | 24 | // WebBuilder Featured Only 25 | //================================================== 26 | @import "../toaster/widgets-plugins/wb-featured-only"; 27 | 28 | // WebBuilder Gallery Only 29 | //================================================== 30 | @import "../toaster/widgets-plugins/wb-gallery-only"; 31 | 32 | // WebBuilder Image Only 33 | //================================================== 34 | @import "../toaster/widgets-plugins/wb-image-only"; 35 | 36 | // WebBuilder Text Only 37 | //================================================== 38 | @import "../toaster/widgets-plugins/wb-text-only"; -------------------------------------------------------------------------------- /seotoaster_core/application/app/Widgets/Search/views/searchButton.phtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 34 | -------------------------------------------------------------------------------- /seotoaster_core/application/forms/Featured.php: -------------------------------------------------------------------------------- 1 | 7 | */ 8 | class Application_Form_Featured extends Application_Form_Secure { 9 | 10 | protected $_name = ''; 11 | 12 | 13 | public function init() { 14 | parent::init(); 15 | $this->setMethod(Zend_Form::METHOD_POST) 16 | ->setAttrib('class', '_fajax') 17 | ->setAttrib('data-callback', 'loadFaList'); 18 | 19 | $this->addElement(new Zend_Form_Element_Text(array( 20 | 'id' => 'fa-name', 21 | 'name' => 'name', 22 | 'label' => 'Page tag name', 23 | 'value' => $this->_name, 24 | 'validators' => array( 25 | new Zend_Validate_Db_NoRecordExists(array( 26 | 'table' => 'featured_area', 27 | 'field' => 'name' 28 | )) 29 | ), 30 | 'decorators' => array('ViewHelper', 'Label'), 31 | 'required' => true, 32 | 'filters' => array('StringTrim') 33 | ))); 34 | 35 | $this->addElement(new Zend_Form_Element_Button(array( 36 | 'name' => 'addFeaturedArea', 37 | 'id' => 'add-featured-area', 38 | 'value' => 'Add page tag', 39 | 'type' => 'submit', 40 | 'class' => 'btn block transparent mt10px ticon-plus', 41 | 'escape'=> false 42 | ))); 43 | 44 | $this->getElement('addFeaturedArea')->removeDecorator('DtDdWrapper'); 45 | 46 | } 47 | 48 | } 49 | 50 | -------------------------------------------------------------------------------- /seotoaster_core/application/app/Widgets/Prepop/views/prepopLink.phtml: -------------------------------------------------------------------------------- 1 | 2 | prepopContent;?> 3 | 4 | jQuery()->onLoadCaptureStart() ?> 5 | $(function() { 6 | $(document).on('click', 'a.prepop-content', function(e) { 7 | e.preventDefault(); 8 | var urlAction = "websiteUrl;?>backend/search/complexsearch/"; 9 | var searchValues = []; 10 | var containerNames = []; 11 | var prepopName = $(this).attr('id'); 12 | var prepopValue = $(this).attr('title'); 13 | containerNames.push(prepopName.replace('prepop-', '')); 14 | searchValues.push(prepopValue); 15 | $.ajax({ 16 | type: "POST", 17 | url: urlAction, 18 | dataType: "json", 19 | data: { 20 | searchValues: searchValues, 21 | containerNames:containerNames 22 | }, 23 | success: function(responce){ 24 | var url = responce.redirect; 25 | window.location = url; 26 | } 27 | 28 | }); 29 | return false; 30 | 31 | }); 32 | }); 33 | jQuery()->onLoadCaptureEnd() ?> 34 | -------------------------------------------------------------------------------- /system/js/internal/deeplinks.min.js: -------------------------------------------------------------------------------- 1 | $(function(){$(".chosen-select").chosen();$("#urlType-label").hide();loadDeeplinksList();var a=$("#url");$("#url-label").find("label");$("#urlType").click(function(){$(this).prop("checked")?$("#url").replaceWith(a):$("#url").replaceWith('')});$("#chk-all").click(function(){$(".deeplink-massdel").prop("checked",$(this).prop("checked")?!0:!1)});$(".deeplink-massdel").on("click",function(){$(".deeplink-massdel").not(":checked").length?$("#chk-all").attr("checked", 2 | !1):$("#chk-all").attr("checked",!0)});$("#deeplink-massdel-run").click(function(){showSpinner();var a=[];$(".deeplink-massdel:checked").each(function(){a.push($(this).attr("id"))});if(!a.length)return hideSpinner(),showMessage("Select at least one item, please",!0),!1;showConfirm("You are about to remove one or many deeplinks. Are you sure?",function(){var b=$("#frm-deeplinks").data("callback");$.ajax({url:$("#website_url").val()+"backend/backend_seo/removedeeplink/id/"+a.join(","),type:"DELETE", 3 | dataType:"json",beforeSend:function(){showSpinner()},success:function(a){hideSpinner();showMessage(a.responseText,a.error);"undefined"!=typeof b&&eval(b+"()")}})},function(){hideSpinner()})})});function loadDeeplinksList(){showSpinner();$.getJSON($("#website_url").val()+"backend/backend_seo/loaddeeplinkslist/",function(a){$("#deeplinks-list").html(a.deeplinksList);hideSpinner();checkboxRadioStyle()})}; 4 | -------------------------------------------------------------------------------- /seotoaster_core/application/views/scripts/backend/page/draft.phtml: -------------------------------------------------------------------------------- 1 |
    2 | partial( 3 | 'admin' . DIRECTORY_SEPARATOR . '_header.phtml', 4 | array( 5 | 'headerText' => $this->translate('Manage drafts (') . Tools_Page_Tools::getDraftPagesCount() . ')', 6 | 'helpSection' => $this->helpSection 7 | ) 8 | ); ?> 9 | 10 |
    11 |
      12 | draftPages && is_array($this->draftPages)): ?> 13 | draftPages as $number => $draftPage): ?> 14 |
    1. 15 | # 16 | getNavName(); ?> 17 |
    2. 18 | 19 | 20 |
    21 |
    22 |
    23 | 31 | -------------------------------------------------------------------------------- /seotoaster_core/application/models/Models/Redirect.php: -------------------------------------------------------------------------------- 1 | 7 | */ 8 | class Application_Model_Models_Redirect extends Application_Model_Models_Abstract { 9 | 10 | protected $_pageId = 0; 11 | 12 | protected $_fromUrl = ''; 13 | 14 | protected $_toUrl = ''; 15 | 16 | protected $_domainTo = ''; 17 | 18 | protected $_domainFrom = ''; 19 | 20 | public function getPageId() { 21 | return $this->_pageId; 22 | } 23 | 24 | public function setPageId($pageId) { 25 | $this->_pageId = $pageId; 26 | return $this; 27 | } 28 | 29 | public function getFromUrl() { 30 | return $this->_fromUrl; 31 | } 32 | 33 | public function setFromUrl($fromUrl) { 34 | $this->_fromUrl = $fromUrl; 35 | return $this; 36 | } 37 | 38 | public function getToUrl() { 39 | return $this->_toUrl; 40 | } 41 | 42 | public function setToUrl($toUrl) { 43 | $this->_toUrl = $toUrl; 44 | return $this; 45 | } 46 | 47 | public function getDomainTo() { 48 | return $this->_domainTo; 49 | } 50 | 51 | public function setDomainTo($domainTo) { 52 | $this->_domainTo = $domainTo; 53 | return $this; 54 | } 55 | 56 | public function getDomainFrom() { 57 | return $this->_domainFrom; 58 | } 59 | 60 | public function setDomainFrom($domainFrom) { 61 | $this->_domainFrom = $domainFrom; 62 | return $this; 63 | } 64 | } 65 | 66 | -------------------------------------------------------------------------------- /system/js/external/tinymce5/skins/content/default/content.min.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Tiny Technologies, Inc. All rights reserved. 3 | * Licensed under the LGPL or a commercial license. 4 | * For LGPL see License.txt in the project root for license information. 5 | * For commercial licenses see https://www.tiny.cloud/ 6 | */ 7 | body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif;line-height:1.4;margin:1rem}table{border-collapse:collapse}table:not([cellpadding]) td,table:not([cellpadding]) th{padding:.4rem}table[border]:not([border="0"]):not([style*=border-width]) td,table[border]:not([border="0"]):not([style*=border-width]) th{border-width:1px}table[border]:not([border="0"]):not([style*=border-style]) td,table[border]:not([border="0"]):not([style*=border-style]) th{border-style:solid}table[border]:not([border="0"]):not([style*=border-color]) td,table[border]:not([border="0"]):not([style*=border-color]) th{border-color:#ccc}figure{display:table;margin:1rem auto}figure figcaption{color:#999;display:block;margin-top:.25rem;text-align:center}hr{border-color:#ccc;border-style:solid;border-width:1px 0 0 0}code{background-color:#e8e8e8;border-radius:3px;padding:.1rem .2rem}.mce-content-body:not([dir=rtl]) blockquote{border-left:2px solid #ccc;margin-left:1.5rem;padding-left:1rem}.mce-content-body[dir=rtl] blockquote{border-right:2px solid #ccc;margin-right:1.5rem;padding-right:1rem} 8 | -------------------------------------------------------------------------------- /seotoaster_core/application/views/scripts/backend/seo/sculpting.phtml: -------------------------------------------------------------------------------- 1 |
    2 | partial('admin' . DIRECTORY_SEPARATOR . '_header.phtml', array('headerText' => 'Manage Page Rank Sculpting', 'helpSection' => $this->helpSection)); ?> 3 |
    4 |
    5 | siloForm->getElement('name'); ?> 6 | siloForm->getElement('addSilo'); ?> 7 | 8 |
    9 |
    10 |
    11 | 19 |
    20 | jQuery()->addJavascriptFile($this->websiteUrl . 'system/js/internal/sculpting.min.js'); ?> 21 | -------------------------------------------------------------------------------- /seotoaster_core/application/views/scripts/backend/form/recaptcha.phtml: -------------------------------------------------------------------------------- 1 | recaptchaId)){ 4 | $widgetId = 'id="'.$this->recaptchaId.'"'; 5 | } 6 | ?> 7 |
    class="recaptcha_widget captcha"> 8 |
    9 |
    translate('Incorrect please try again');?>
    10 | 11 | 12 | 13 | 19 |
    20 | content; ?> 21 | -------------------------------------------------------------------------------- /seotoaster_core/application/app/Tools/Factory/MagicSpaceFactory.php: -------------------------------------------------------------------------------- 1 | 7 | * Date: 1/25/12 8 | * Time: 3:57 PM 9 | */ 10 | class Tools_Factory_MagicSpaceFactory 11 | { 12 | private function __construct() 13 | { 14 | 15 | } 16 | 17 | public static function createMagicSpace($name, $content, $toasterData, $params = array(), $magicLabel) 18 | { 19 | $name = ucfirst(strtolower($name)); 20 | if (self::_validate($name)) { 21 | $magicSpaceClassName = 'MagicSpaces_'.$name.'_'.$name; 22 | return new $magicSpaceClassName($name, $content, $toasterData, $params, $magicLabel); 23 | } 24 | throw new Exceptions_SeotoasterException('Cannot run the magic space: '.$name); 25 | } 26 | 27 | private static function _validate($name) 28 | { 29 | $incPath = explode(PATH_SEPARATOR, get_include_path()); 30 | if (is_array($incPath) && !empty($incPath)) { 31 | foreach ($incPath as $path) { 32 | $magicSpacesDir = $path.DIRECTORY_SEPARATOR.'MagicSpaces'.DIRECTORY_SEPARATOR.$name; 33 | if (is_dir($magicSpacesDir) && file_exists($magicSpacesDir.DIRECTORY_SEPARATOR.$name.'.php')) { 34 | return true; 35 | } 36 | } 37 | return false; 38 | } 39 | return false; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /system/js/external/tinymce5/skins/content/writer/content.min.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Tiny Technologies, Inc. All rights reserved. 3 | * Licensed under the LGPL or a commercial license. 4 | * For LGPL see License.txt in the project root for license information. 5 | * For commercial licenses see https://www.tiny.cloud/ 6 | */ 7 | body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif;line-height:1.4;margin:1rem auto;max-width:900px}table{border-collapse:collapse}table:not([cellpadding]) td,table:not([cellpadding]) th{padding:.4rem}table[border]:not([border="0"]):not([style*=border-width]) td,table[border]:not([border="0"]):not([style*=border-width]) th{border-width:1px}table[border]:not([border="0"]):not([style*=border-style]) td,table[border]:not([border="0"]):not([style*=border-style]) th{border-style:solid}table[border]:not([border="0"]):not([style*=border-color]) td,table[border]:not([border="0"]):not([style*=border-color]) th{border-color:#ccc}figure{display:table;margin:1rem auto}figure figcaption{color:#999;display:block;margin-top:.25rem;text-align:center}hr{border-color:#ccc;border-style:solid;border-width:1px 0 0 0}code{background-color:#e8e8e8;border-radius:3px;padding:.1rem .2rem}.mce-content-body:not([dir=rtl]) blockquote{border-left:2px solid #ccc;margin-left:1.5rem;padding-left:1rem}.mce-content-body[dir=rtl] blockquote{border-right:2px solid #ccc;margin-right:1.5rem;padding-right:1rem} 8 | -------------------------------------------------------------------------------- /_install/installer/views/scripts/index/tada.phtml: -------------------------------------------------------------------------------- 1 | protocol . '://' .$this->websiteUrl.'go'; ?> 2 |
    3 | 4 |

    translate('Seotoaster installed');?>

    5 |
    6 | 7 |
    8 |

    translate('Get ready to toast:');?>

    9 |
      10 |
    1. translate('You must remove the “install” folder in order to access your software.');?>
    2. 11 |
    3. translate('Log into your toaster here');?>:
    4. 12 |
    5. translate('Fill in your business information, or website ID Card as we like to call it, in order to facilitate your website indexation with search engines.'); ?>
    6. 13 | serverConfigGenerated): ?> 14 | 15 | 16 |
    7. 17 | partial('_server.phtml'); ?> 18 |
    8. 19 | 20 | 21 | 22 |
    23 |
    -------------------------------------------------------------------------------- /seotoaster_core/application/app/Tools/System/GoogleRecaptcha.php: -------------------------------------------------------------------------------- 1 | getConfig(); 12 | $this->_secretKey = $websiteConfig['grecaptchaPrivateKey']; 13 | } 14 | 15 | protected function _getCurlData($url) 16 | { 17 | $curl = curl_init(); 18 | curl_setopt($curl, CURLOPT_URL, $url); 19 | curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 20 | curl_setopt($curl, CURLOPT_TIMEOUT, 10); 21 | $curlData = curl_exec($curl); 22 | curl_close($curl); 23 | return $curlData; 24 | } 25 | 26 | public function isValid($recaptcha) 27 | { 28 | 29 | $url = $this::GOOGLE_URL . "?secret=" . $this->_secretKey . "&response=" . $recaptcha; 30 | $websiteUrl = Zend_Controller_Action_HelperBroker::getStaticHelper('website')->getUrl(); 31 | $hostName = parse_url($websiteUrl, PHP_URL_HOST); 32 | $res = $this->_getCurlData($url); 33 | $res = json_decode($res, true); 34 | if (is_array($res) && !empty($res['success']) && !empty($res['hostname'])) { 35 | return ($res['success'] && $res['hostname'] == $hostName); 36 | } 37 | return false; 38 | 39 | } 40 | } -------------------------------------------------------------------------------- /seotoaster_core/application/app/Helpers/Action/Admin.php: -------------------------------------------------------------------------------- 1 | _cache = Zend_Controller_Action_HelperBroker::getStaticHelper('Cache'); 11 | $this->_view = $this->_actionController->view; 12 | } 13 | 14 | public function renderAdminPanel($userRole = null) { 15 | if ($userRole === Tools_Security_Acl::ROLE_MEMBER && (bool) Zend_Controller_Action_HelperBroker::getStaticHelper('config')->getConfig('controlPanelStatus')) { 16 | return; 17 | } 18 | $websiteHelper = Zend_Controller_Action_HelperBroker::getStaticHelper('website'); 19 | $userRole = preg_replace('/[^\w\d_]/', '', $userRole); 20 | if(!$additionalMenu = $this->_cache->load('admin_addmenu', $userRole)) { 21 | $additionalMenu = Tools_Plugins_Tools::fetchPluginsMenu($userRole); 22 | $this->_cache->save('admin_addmenu', $additionalMenu, $userRole, array(), '7200'); 23 | } 24 | $this->_view->additionalMenu = $additionalMenu; 25 | if($this->_view->placeholder('logoSource')->getValue() == array()) { 26 | $this->_view->placeholder('logoSource')->set($websiteHelper->getUrl() . 'system/images/cpanel-img.jpg'); 27 | } 28 | $this->_view->userRole = $userRole; 29 | return $this->_view->render('admin/adminpanel.phtml'); 30 | } 31 | 32 | 33 | 34 | } 35 | 36 | -------------------------------------------------------------------------------- /system/css/less/elements/separator.less: -------------------------------------------------------------------------------- 1 | hr{ 2 | clear : both; 3 | margin : 1.25em 0 1.75em; 4 | border : none; 5 | border-top : @hr-size solid @hr-color; 6 | line-height : 0; 7 | 8 | // With text 9 | &:before{ 10 | content : attr(title); 11 | top : -0.5em; 12 | position : relative; 13 | line-height : 1; 14 | color : @hr-color; 15 | margin : -(@hr-size / 2) 15px 0; 16 | padding : 0px .75em; 17 | .inline-block(); 18 | .background() when (@content-bg = transparent){ 19 | background : @body-bg; 20 | } 21 | .background() when not(@content-bg = transparent){ 22 | background : @content-bg; 23 | } 24 | .background(); 25 | } 26 | 27 | &.left when (@separator-left = true) and (@separator-style = true) { text-align : left; } 28 | &.right when (@separator-right = true) and (@separator-style = true){ text-align : right; } 29 | &.center when (@separator-center = true) and (@separator-style = true){ text-align : center; } 30 | 31 | // Separator circle 32 | &.circle when (@separator-circle = true) and (@separator-style = true){ 33 | zoom : 1; 34 | 35 | &:before{ 36 | padding : .5em; 37 | background : @hr-color; 38 | color : #fff; 39 | top : -1em; 40 | .border-radius(2em); 41 | } 42 | } 43 | } -------------------------------------------------------------------------------- /system/css/less/seotoaster-ui.less: -------------------------------------------------------------------------------- 1 | @import "base/variables"; 2 | 3 | // Modules Styles 4 | //================================================== 5 | .activate-modules() when (@modules = true){ 6 | @import "packages/modules-pack"; 7 | } 8 | .activate-modules(); 9 | 10 | // -- Buttons 11 | [type="submit"], [type="button"], button, .btn-toaster, .ui-button{ 12 | &.btn-load{ 13 | .transition(none) !important; 14 | background-image : url('../images/ajax-loader-small.gif') !important; 15 | background-position : 50% 50% !important; 16 | background-repeat : no-repeat !important; 17 | color : transparent !important; 18 | } 19 | } 20 | 21 | .btn-toaster, .ui-button{ 22 | text-decoration : none !important; 23 | .button(); 24 | .box-sizing(); 25 | .box-shadow(none, @input-shadow-focus); 26 | 27 | &:not(.icon){ 28 | .text-overflow; 29 | } 30 | 31 | &.disabled, &[disabled]{ 32 | background-color : @gray-light !important; 33 | cursor : not-allowed, default !important; 34 | .box-shadow(~'none !important', @button-box-shadow); 35 | } 36 | 37 | &:before{ 38 | margin-right : 5px; 39 | } 40 | 41 | &:active{ 42 | .box-shadow(0.2em 0.2em 0.3em rgba(0, 0, 0, .3) inset, @button-box-shadow); 43 | } 44 | } 45 | 46 | .hide, .ui-helper-hidden{ display : none; } 47 | // g recaptcha 48 | .g-recaptcha { 49 | clear:both; 50 | margin-bottom:10px; 51 | } -------------------------------------------------------------------------------- /system/js/external/tinymce5/plugins/visualblocks/plugin.min.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Tiny Technologies, Inc. All rights reserved. 3 | * Licensed under the LGPL or a commercial license. 4 | * For LGPL see License.txt in the project root for license information. 5 | * For commercial licenses see https://www.tiny.cloud/ 6 | * 7 | * Version: 5.5.1 (2020-10-01) 8 | */ 9 | !function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager"),r=function(t,o,e){var n,i;t.dom.toggleClass(t.getBody(),"mce-visualblocks"),e.set(!e.get()),n=t,i=e.get(),n.fire("VisualBlocks",{state:i})},f=function(e,n){return function(o){o.setActive(n.get());var t=function(t){return o.setActive(t.state)};return e.on("VisualBlocks",t),function(){return e.off("VisualBlocks",t)}}};t.add("visualblocks",function(t,o){var e,n,i,s,c,u,l,a=(e=!1,{get:function(){return e},set:function(t){e=t}});i=a,(n=t).addCommand("mceVisualBlocks",function(){r(n,0,i)}),c=a,(s=t).ui.registry.addToggleButton("visualblocks",{icon:"visualblocks",tooltip:"Show blocks",onAction:function(){return s.execCommand("mceVisualBlocks")},onSetup:f(s,c)}),s.ui.registry.addToggleMenuItem("visualblocks",{text:"Show blocks",icon:"visualblocks",onAction:function(){return s.execCommand("mceVisualBlocks")},onSetup:f(s,c)}),l=a,(u=t).on("PreviewFormats AfterPreviewFormats",function(t){l.get()&&u.dom.toggleClass(u.getBody(),"mce-visualblocks","afterpreviewformats"===t.type)}),u.on("init",function(){u.getParam("visualblocks_default_state",!1,"boolean")&&r(u,0,l)})})}(); -------------------------------------------------------------------------------- /system/js/external/tinymce5/plugins/nonbreaking/plugin.min.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Tiny Technologies, Inc. All rights reserved. 3 | * Licensed under the LGPL or a commercial license. 4 | * For LGPL see License.txt in the project root for license information. 5 | * For commercial licenses see https://www.tiny.cloud/ 6 | * 7 | * Version: 5.5.1 (2020-10-01) 8 | */ 9 | !function(){"use strict";var n=tinymce.util.Tools.resolve("tinymce.PluginManager"),i=function(n,e){for(var a="",o=0;o'+i(" ",e)+"":i(" ",e);n.undoManager.transact(function(){return n.insertContent(o)})},c=tinymce.util.Tools.resolve("tinymce.util.VK");n.add("nonbreaking",function(n){var e,a,o,i,t;(e=n).addCommand("mceNonBreaking",function(){r(e,1)}),(a=n).ui.registry.addButton("nonbreaking",{icon:"non-breaking",tooltip:"Nonbreaking space",onAction:function(){return a.execCommand("mceNonBreaking")}}),a.ui.registry.addMenuItem("nonbreaking",{icon:"non-breaking",text:"Nonbreaking space",onAction:function(){return a.execCommand("mceNonBreaking")}}),0<(t="boolean"==typeof(i=(o=n).getParam("nonbreaking_force_tab",0))?!0===i?3:0:i)&&o.on("keydown",function(n){if(n.keyCode===c.TAB&&!n.isDefaultPrevented()){if(n.shiftKey)return;n.preventDefault(),n.stopImmediatePropagation(),r(o,t)}})})}(); -------------------------------------------------------------------------------- /seotoaster_core/application/app/Tools/Template/Tools.php: -------------------------------------------------------------------------------- 1 | 6 | * Date: 12/14/12 7 | * Time: 10:36 AM 8 | */ 9 | class Tools_Template_Tools { 10 | 11 | const THEME_CONFIGURATION_FILE = 'theme.ini'; 12 | 13 | /** 14 | * List of required system templates 15 | * 16 | * @var array 17 | */ 18 | public static $protectedTemplates = array('index', 'default', 'category'); 19 | 20 | /** 21 | * 22 | * 23 | */ 24 | public static function findPreview() { 25 | 26 | } 27 | 28 | public static function toArray($template, $currentTemplate = null) { 29 | return array( 30 | 'id' => $template->getId(), 31 | 'name' => $template->getName(), 32 | 'isCurrent' => ($currentTemplate && ($template->getName() == $currentTemplate->getName())) ? true : false, 33 | 'pagesCount' => Tools_Page_Tools::getPagesCountByTemplate($template->getName()), 34 | 'type' => $template->getType(), 35 | 'content' => $template->getContent(), 36 | 'protected' => in_array($template->getName(), self::$protectedTemplates) 37 | //'preview_image' => isset($tmplImages[$template->getName()]) ? $this->_themeConfig['path'].$currentTheme.'/'.$this->_themeConfig['templatePreview'].$tmplImages[$template->getName()] : false, //'system/images/no_preview.png' 38 | ); 39 | } 40 | 41 | } 42 | -------------------------------------------------------------------------------- /seotoaster_core/application/app/Widgets/Search/views/links.phtml: -------------------------------------------------------------------------------- 1 | prepopLinks) && !empty($this->prepopLinks)):?> 2 | 11 | 12 | jQuery()->onLoadCaptureStart() ?> 13 | $(function() { 14 | $(document).on('click', 'a.prepop-link', function(e) { 15 | e.preventDefault(); 16 | var urlAction = "websiteUrl;?>backend/search/complexsearch/"; 17 | var searchValues = []; 18 | var containerNames = []; 19 | var prepopName = $(this).data('id').replace(/\d+/g, ''); 20 | var prepopValue = $(this).attr('title'); 21 | containerNames.push(prepopName.replace('prepop-link-', '')); 22 | searchValues.push(prepopValue); 23 | $.ajax({ 24 | type: "POST", 25 | url: urlAction, 26 | dataType: "json", 27 | data: { 28 | searchValues: searchValues, 29 | containerNames:containerNames 30 | }, 31 | success: function(responce){ 32 | var url = responce.redirect; 33 | window.location = url; 34 | } 35 | 36 | }); 37 | return false; 38 | 39 | }); 40 | }); 41 | jQuery()->onLoadCaptureEnd() ?> -------------------------------------------------------------------------------- /system/js/external/tinymce5/skins/content/dark/content.min.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Tiny Technologies, Inc. All rights reserved. 3 | * Licensed under the LGPL or a commercial license. 4 | * For LGPL see License.txt in the project root for license information. 5 | * For commercial licenses see https://www.tiny.cloud/ 6 | */ 7 | body{background-color:#2f3742;color:#dfe0e4;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif;line-height:1.4;margin:1rem}a{color:#4099ff}table{border-collapse:collapse}table:not([cellpadding]) td,table:not([cellpadding]) th{padding:.4rem}table[border]:not([border="0"]):not([style*=border-width]) td,table[border]:not([border="0"]):not([style*=border-width]) th{border-width:1px}table[border]:not([border="0"]):not([style*=border-style]) td,table[border]:not([border="0"]):not([style*=border-style]) th{border-style:solid}table[border]:not([border="0"]):not([style*=border-color]) td,table[border]:not([border="0"]):not([style*=border-color]) th{border-color:#6d737b}figure{display:table;margin:1rem auto}figure figcaption{color:#8a8f97;display:block;margin-top:.25rem;text-align:center}hr{border-color:#6d737b;border-style:solid;border-width:1px 0 0 0}code{background-color:#6d737b;border-radius:3px;padding:.1rem .2rem}.mce-content-body:not([dir=rtl]) blockquote{border-left:2px solid #6d737b;margin-left:1.5rem;padding-left:1rem}.mce-content-body[dir=rtl] blockquote{border-right:2px solid #6d737b;margin-right:1.5rem;padding-right:1rem} 8 | -------------------------------------------------------------------------------- /system/js/external/tinymce5/skins/content/document/content.min.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Tiny Technologies, Inc. All rights reserved. 3 | * Licensed under the LGPL or a commercial license. 4 | * For LGPL see License.txt in the project root for license information. 5 | * For commercial licenses see https://www.tiny.cloud/ 6 | */ 7 | @media screen{html{background:#f4f4f4;min-height:100%}}body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif}@media screen{body{background-color:#fff;box-shadow:0 0 4px rgba(0,0,0,.15);box-sizing:border-box;margin:1rem auto 0;max-width:820px;min-height:calc(100vh - 1rem);padding:4rem 6rem 6rem 6rem}}table{border-collapse:collapse}table:not([cellpadding]) td,table:not([cellpadding]) th{padding:.4rem}table[border]:not([border="0"]):not([style*=border-width]) td,table[border]:not([border="0"]):not([style*=border-width]) th{border-width:1px}table[border]:not([border="0"]):not([style*=border-style]) td,table[border]:not([border="0"]):not([style*=border-style]) th{border-style:solid}table[border]:not([border="0"]):not([style*=border-color]) td,table[border]:not([border="0"]):not([style*=border-color]) th{border-color:#ccc}figure figcaption{color:#999;margin-top:.25rem;text-align:center}hr{border-color:#ccc;border-style:solid;border-width:1px 0 0 0}.mce-content-body:not([dir=rtl]) blockquote{border-left:2px solid #ccc;margin-left:1.5rem;padding-left:1rem}.mce-content-body[dir=rtl] blockquote{border-right:2px solid #ccc;margin-right:1.5rem;padding-right:1rem} 8 | -------------------------------------------------------------------------------- /system/js/external/tinymce/plugins/fullscreen/plugin.min.js: -------------------------------------------------------------------------------- 1 | tinymce.PluginManager.add("fullscreen",function(e){function t(){var e,t,n=window,i=document,l=i.body;return l.offsetWidth&&(e=l.offsetWidth,t=l.offsetHeight),n.innerWidth&&n.innerHeight&&(e=n.innerWidth,t=n.innerHeight),{w:e,h:t}}function n(){function n(){d.setStyle(a,"height",t().h-(h.clientHeight-a.clientHeight))}var u,h,a,f,m=document.body,g=document.documentElement;s=!s,h=e.getContainer(),u=h.style,a=e.getContentAreaContainer().firstChild,f=a.style,s?(i=f.width,l=f.height,f.width=f.height="100%",c=u.width,o=u.height,u.width=u.height="",d.addClass(m,"mce-fullscreen"),d.addClass(g,"mce-fullscreen"),d.addClass(h,"mce-fullscreen"),d.bind(window,"resize",n),n(),r=n):(f.width=i,f.height=l,c&&(u.width=c),o&&(u.height=o),d.removeClass(m,"mce-fullscreen"),d.removeClass(g,"mce-fullscreen"),d.removeClass(h,"mce-fullscreen"),d.unbind(window,"resize",r)),e.fire("FullscreenStateChanged",{state:s})}var i,l,r,c,o,s=!1,d=tinymce.DOM;return e.settings.inline?void 0:(e.on("init",function(){e.addShortcut("Ctrl+Alt+F","",n)}),e.on("remove",function(){r&&d.unbind(window,"resize",r)}),e.addCommand("mceFullScreen",n),e.addMenuItem("fullscreen",{text:"Fullscreen",shortcut:"Ctrl+Alt+F",selectable:!0,onClick:n,onPostRender:function(){var t=this;e.on("FullscreenStateChanged",function(e){t.active(e.state)})},context:"view"}),e.addButton("fullscreen",{tooltip:"Fullscreen",shortcut:"Ctrl+Alt+F",onClick:n,onPostRender:function(){var t=this;e.on("FullscreenStateChanged",function(e){t.active(e.state)})}}),{isFullscreen:function(){return s}})}); -------------------------------------------------------------------------------- /manifest.json.default: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Seotoaster", 3 | "short_name": "Seotoaster", 4 | "icons": [ 5 | { 6 | "src": "/plugins/widcard/system/userdata/icons/app-icon-48x48.png", 7 | "type": "image/png", 8 | "sizes": "48x48" 9 | }, 10 | { 11 | "src": "/plugins/widcard/system/userdata/icons/app-icon-96x96.png", 12 | "type": "image/png", 13 | "sizes": "96x96" 14 | }, 15 | { 16 | "src": "/plugins/widcard/system/userdata/icons/app-icon-144x144.png", 17 | "type": "image/png", 18 | "sizes": "144x144" 19 | }, 20 | { 21 | "src": "/plugins/widcard/system/userdata/icons/app-icon-192x192.png", 22 | "type": "image/png", 23 | "sizes": "192x192" 24 | }, 25 | { 26 | "src": "/plugins/widcard/system/userdata/icons/app-icon-256x256.png", 27 | "type": "image/png", 28 | "sizes": "256x256" 29 | }, 30 | { 31 | "src": "/plugins/widcard/system/userdata/icons/app-icon-384x384.png", 32 | "type": "image/png", 33 | "sizes": "384x384" 34 | }, 35 | { 36 | "src": "/plugins/widcard/system/userdata/icons/app-icon-512x512.png", 37 | "type": "image/png", 38 | "sizes": "512x512" 39 | } 40 | ], 41 | "start_url":".", 42 | "scope": ".", 43 | "display": "standalone", 44 | "orientation": "portrait-primary", 45 | "background_color": "#FFF", 46 | "theme_color": "#3F51B5", 47 | "description": "Progressive Web App based on SEOTOASTER CMS", 48 | "dir": "ltr", 49 | "leng": "en-US", 50 | "gcm_sender_id": "" 51 | } 52 | --------------------------------------------------------------------------------