├── bootstrap
├── index.php
└── upgrade.php
├── inc
├── traits
│ ├── index.php
│ ├── manager
│ │ └── index.php
│ ├── core
│ │ └── index.php
│ ├── factory
│ │ └── index.php
│ └── extension
│ │ └── index.php
├── classes
│ ├── index.php
│ ├── abstract
│ │ └── index.php
│ ├── loadfront.class.php
│ └── alias.class.php
├── compat
│ └── index.php
├── index.php
└── functions
│ └── index.php
├── extensions
├── essentials
│ ├── cord
│ │ ├── trunk
│ │ │ ├── lib
│ │ │ │ ├── images
│ │ │ │ │ ├── index.php
│ │ │ │ │ ├── icon-29x29px.png
│ │ │ │ │ ├── icon-58x58px.png
│ │ │ │ │ └── icon.svg
│ │ │ │ └── index.php
│ │ │ ├── inc
│ │ │ │ ├── classes
│ │ │ │ │ ├── index.php
│ │ │ │ │ └── core.class.php
│ │ │ │ └── index.php
│ │ │ ├── index.php
│ │ │ ├── test.json
│ │ │ └── cord.php
│ │ └── assets
│ │ │ ├── index.php
│ │ │ └── icon.svg
│ ├── articles
│ │ ├── assets
│ │ │ ├── index.php
│ │ │ └── icon.svg
│ │ └── trunk
│ │ │ ├── inc
│ │ │ ├── classes
│ │ │ │ └── index.php
│ │ │ └── index.php
│ │ │ ├── views
│ │ │ ├── inpost
│ │ │ │ ├── index.php
│ │ │ │ └── inpost.php
│ │ │ ├── index.php
│ │ │ ├── sitemap
│ │ │ │ ├── index.php
│ │ │ │ └── news.php
│ │ │ └── list
│ │ │ │ ├── index.php
│ │ │ │ ├── quickedit.php
│ │ │ │ └── bulkedit.php
│ │ │ ├── index.php
│ │ │ ├── lib
│ │ │ ├── images
│ │ │ │ ├── index.php
│ │ │ │ └── icon.svg
│ │ │ └── index.php
│ │ │ ├── test.json
│ │ │ └── articles.php
│ ├── honeypot
│ │ ├── trunk
│ │ │ ├── inc
│ │ │ │ ├── classes
│ │ │ │ │ └── index.php
│ │ │ │ └── index.php
│ │ │ ├── index.php
│ │ │ ├── js.min.js
│ │ │ ├── timer.min.js
│ │ │ ├── js.js
│ │ │ ├── honeypot.php
│ │ │ └── timer.js
│ │ └── assets
│ │ │ ├── index.php
│ │ │ └── icon.svg
│ └── focus
│ │ ├── trunk
│ │ ├── inc
│ │ │ ├── index.php
│ │ │ └── classes
│ │ │ │ ├── index.php
│ │ │ │ └── core.class.php
│ │ ├── index.php
│ │ ├── views
│ │ │ ├── index.php
│ │ │ └── inpost
│ │ │ │ ├── index.php
│ │ │ │ ├── js-templates.php
│ │ │ │ └── score-template.php
│ │ ├── lib
│ │ │ ├── css
│ │ │ │ └── index.php
│ │ │ ├── js
│ │ │ │ ├── index.php
│ │ │ │ └── tsfem-focus-parser.worker.min.js
│ │ │ └── index.php
│ │ ├── test.json
│ │ └── focus.php
│ │ └── assets
│ │ ├── index.php
│ │ └── icon.svg
├── free
│ ├── transport
│ │ ├── assets
│ │ │ ├── index.php
│ │ │ └── icon.svg
│ │ └── trunk
│ │ │ ├── inc
│ │ │ ├── classes
│ │ │ │ ├── logger
│ │ │ │ │ ├── index.php
│ │ │ │ │ └── store.class.php
│ │ │ │ ├── importers
│ │ │ │ │ ├── termmeta
│ │ │ │ │ │ └── index.php
│ │ │ │ │ ├── index.php
│ │ │ │ │ └── postmeta
│ │ │ │ │ │ ├── index.php
│ │ │ │ │ │ └── base.class.php
│ │ │ │ ├── transformers
│ │ │ │ │ └── index.php
│ │ │ │ └── index.php
│ │ │ └── index.php
│ │ │ ├── views
│ │ │ ├── index.php
│ │ │ └── layout
│ │ │ │ ├── general
│ │ │ │ ├── index.php
│ │ │ │ ├── footer.php
│ │ │ │ └── top.php
│ │ │ │ ├── panes
│ │ │ │ ├── index.php
│ │ │ │ └── logger.php
│ │ │ │ ├── pages
│ │ │ │ ├── index.php
│ │ │ │ └── transport.php
│ │ │ │ └── index.php
│ │ │ ├── lib
│ │ │ ├── images
│ │ │ │ ├── index.php
│ │ │ │ └── icon.svg
│ │ │ ├── index.php
│ │ │ └── js
│ │ │ │ ├── index.php
│ │ │ │ └── sse.worker.min.js
│ │ │ ├── test.json
│ │ │ ├── index.php
│ │ │ └── transport.php
│ ├── origin
│ │ ├── trunk
│ │ │ ├── index.php
│ │ │ ├── readme.md
│ │ │ └── origin.php
│ │ └── assets
│ │ │ ├── index.php
│ │ │ └── icon.svg
│ ├── amp
│ │ ├── trunk
│ │ │ ├── index.php
│ │ │ ├── inc
│ │ │ │ ├── index.php
│ │ │ │ └── classes
│ │ │ │ │ └── index.php
│ │ │ └── amp.php
│ │ └── assets
│ │ │ ├── index.php
│ │ │ └── icon.svg
│ ├── title-fix
│ │ ├── trunk
│ │ │ ├── inc
│ │ │ │ ├── classes
│ │ │ │ │ └── index.php
│ │ │ │ └── index.php
│ │ │ ├── index.php
│ │ │ └── title-fix.php
│ │ └── assets
│ │ │ ├── index.php
│ │ │ └── icon.svg
│ └── incognito
│ │ ├── assets
│ │ ├── index.php
│ │ └── icon.svg
│ │ └── trunk
│ │ ├── index.php
│ │ ├── incognito.php
│ │ └── readme.md
└── premium
│ ├── local
│ ├── trunk
│ │ ├── index.php
│ │ ├── views
│ │ │ ├── index.php
│ │ │ └── layout
│ │ │ │ ├── pages
│ │ │ │ ├── index.php
│ │ │ │ ├── local.php
│ │ │ │ └── settings.php
│ │ │ │ ├── general
│ │ │ │ ├── index.php
│ │ │ │ ├── footer.php
│ │ │ │ └── top.php
│ │ │ │ └── index.php
│ │ ├── inc
│ │ │ ├── index.php
│ │ │ ├── classes
│ │ │ │ ├── index.php
│ │ │ │ └── core.class.php
│ │ │ └── traits
│ │ │ │ └── index.php
│ │ ├── test.json
│ │ ├── lib
│ │ │ ├── images
│ │ │ │ ├── icon-29x29px.png
│ │ │ │ ├── icon-58x58px.png
│ │ │ │ ├── index.php
│ │ │ │ └── icon.svg
│ │ │ ├── schema
│ │ │ │ └── index.php
│ │ │ ├── index.php
│ │ │ └── js
│ │ │ │ ├── index.php
│ │ │ │ └── tsfem-local.min.js
│ │ └── upgrade.php
│ └── assets
│ │ ├── index.php
│ │ └── icon.svg
│ └── monitor
│ ├── trunk
│ ├── views
│ │ ├── forms
│ │ │ ├── index.php
│ │ │ └── connect.php
│ │ ├── layout
│ │ │ ├── general
│ │ │ │ ├── index.php
│ │ │ │ ├── footer.php
│ │ │ │ └── top.php
│ │ │ ├── pages
│ │ │ │ ├── index.php
│ │ │ │ ├── monitor.php
│ │ │ │ └── connect.php
│ │ │ └── index.php
│ │ └── index.php
│ ├── index.php
│ ├── inc
│ │ ├── index.php
│ │ └── classes
│ │ │ ├── index.php
│ │ │ └── front.class.php
│ ├── lib
│ │ ├── images
│ │ │ ├── icon-29x29px.png
│ │ │ ├── icon-58x58px.png
│ │ │ ├── index.php
│ │ │ └── icon.svg
│ │ ├── css
│ │ │ └── index.php
│ │ ├── index.php
│ │ └── js
│ │ │ └── index.php
│ ├── test.json
│ └── monitor.php
│ └── assets
│ ├── index.php
│ └── icon.svg
├── index.php
├── views
├── layout
│ ├── extension
│ │ ├── index.php
│ │ ├── footer.php
│ │ ├── top.php
│ │ ├── content.php
│ │ └── pane.php
│ ├── index.php
│ ├── pages
│ │ ├── index.php
│ │ └── extensions.php
│ └── general
│ │ ├── index.php
│ │ ├── footer.php
│ │ ├── top.php
│ │ └── pane.php
├── forms
│ ├── index.php
│ ├── free.php
│ ├── get.php
│ └── key.php
├── template
│ ├── index.php
│ ├── fbtopnotice.php
│ └── inpostnotice.php
├── index.php
└── listedit
│ ├── index.php
│ ├── bulk.php
│ └── quick.php
├── lib
├── fonts
│ └── index.php
├── js
│ ├── index.php
│ ├── tsfem-worker.min.js
│ ├── tsfem-listedit.min.js
│ ├── tsfem.min.js
│ ├── tsfem-manager.min.js
│ └── tsfinstaller.min.js
├── index.php
├── css
│ ├── index.php
│ ├── tsfem-inpost.min.css
│ ├── tsfem-inpost.css
│ └── tsfem-manager.min.css
└── images
│ ├── index.php
│ ├── tsflogo.svg
│ └── exticon-fallback.svg
├── language
└── index.php
├── security.txt
└── the-seo-framework-extension-manager.php
/bootstrap/index.php:
--------------------------------------------------------------------------------
1 | {let b=document.getElementById(a.i),c=document.getElementById(a.w);b&&c&&(b.value="",c.style.display="none")})($php_values);
2 |
--------------------------------------------------------------------------------
/extensions/premium/local/trunk/test.json:
--------------------------------------------------------------------------------
1 | {
2 | "slug" : "local",
3 | "namespace" : "\\TSF_Extension_Manager\\Extension\\Local",
4 | "test" : {
5 | "_base" : "local.php"
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/views/layout/index.php:
--------------------------------------------------------------------------------
1 | {let b,c,d=document.getElementsByName(a.n)[0],e=255*(1-Math.random()),f=f=>{void 0===b&&(b=f),c=f-b,c<1e3*(+a.t/+a.s)?(d.value=+a.t+e-c/1e3,g()):d.value=""},g=()=>setTimeout(()=>requestAnimationFrame(f),100+200*Math.random());d&&(d.value=+a.t+e,g())})($php_values);
2 |
--------------------------------------------------------------------------------
/extensions/essentials/articles/trunk/views/list/index.php:
--------------------------------------------------------------------------------
1 | {"busy"===c?b.set(a,!0):b.set(a,!1)},d=a=>c(a,"clear"),e=b=>a.get(b),f=a=>{e(a)?.terminate(),d(a)};return Object.assign({load:()=>{}},{occupyWorker:a=>c(a,"busy"),freeWorker:d,isWorkerBusy:a=>!!b.get(a),spawnWorker:(b,c)=>a.set(c,new Worker(b)),getWorker:e,stopWorker:f,despawnWorker:b=>{f(b),a.delete(b)},tellWorker:(a,b)=>new Promise((c,d)=>{const f=e(a);return f?void(f.onmessage=a=>"error"in a.data?d(a.data.error):c(a.data),f.onerror=a=>d(a),f.postMessage({id:a,data:b})):d("No worker available.")}),assignWorker:(a,b,c,d)=>{const f=e(a);return f?void(f.onmessage=c,f.onerror=d,f.postMessage({id:a,data:b})):d("No worker available.")}})}(),window.tsfem_worker.load();
2 |
--------------------------------------------------------------------------------
/extensions/premium/local/trunk/lib/js/index.php:
--------------------------------------------------------------------------------
1 | _verify_include_secret( $_secret ) or die;
10 |
11 | /**
12 | * Because positivity.
13 | */
14 | $mottos = [
15 | 'automated',
16 | 'open',
17 | 'orderly',
18 | 'elegant',
19 | 'agile',
20 | ];
21 |
22 | $motto_key = mt_rand( 0, count( $mottos ) - 1 );
23 | $motto = "An {$mottos[ $motto_key ]} Future";
24 |
25 | ?>
26 |
29 |
32 |
19 |
20 | = esc_html( $section['name'] ) ?>
21 |
22 |
25 |
26 |
27 |
19 |
20 | = esc_html( $section['name'] ) ?>
21 |
22 |
25 |
26 |
27 | _verify_include_secret( $_secret ) or die;
10 |
11 | /**
12 | * Because positivity.
13 | */
14 | $mottos = [
15 | 'simple',
16 | 'prospective',
17 | 'thorough',
18 | 'prolonged',
19 | 'magnified',
20 | ];
21 |
22 | $motto_key = mt_rand( 0, count( $mottos ) - 1 );
23 | $motto = "A {$mottos[ $motto_key ]} Solution";
24 |
25 | ?>
26 |
29 |
32 | _verify_include_secret( $_secret ) or die;
10 |
11 | /**
12 | * Because positivity.
13 | */
14 | $mottos = [
15 | 'centered',
16 | 'complete',
17 | 'conscientious',
18 | 'focussed',
19 | 'diligent',
20 | ];
21 |
22 | $motto_key = mt_rand( 0, count( $mottos ) - 1 );
23 | $motto = 'A ' . $mottos[ $motto_key ] . ' Solution';
24 |
25 | ?>
26 |
29 |
32 | _verify_include_secret( $_secret ) or die;
10 |
11 | tsfem()->_do_pane_wrap_callable(
12 | __( 'Local Settings', 'the-seo-framework-extension-manager' ),
13 | [ $this, '_local_settings_overview' ],
14 | [
15 | 'full' => true,
16 | 'collapse' => false,
17 | 'move' => false,
18 | 'pane_id' => 'tsfem-e-local-settings-pane',
19 | 'ajax' => true,
20 | 'ajax_id' => 'tsfem-e-local-settings-ajax',
21 | 'secure_obj' => true,
22 | 'footer' => [ $this, '_get_local_settings_bottom_wrap' ],
23 | ]
24 | );
25 |
--------------------------------------------------------------------------------
/extensions/free/transport/trunk/views/layout/panes/logger.php:
--------------------------------------------------------------------------------
1 | _verify_include_secret( $_secret ) or die;
10 |
11 | ?>
12 |
13 |
14 |
= esc_html__( 'Waiting for transport…', 'the-seo-framework-extension-manager' ) ?>
15 |
16 |
17 | = esc_html__( 'Logger will stop reporting if you lose connection. Transactions may still continue on the server.', 'the-seo-framework-extension-manager' ) ?>
18 |
19 |
20 |
--------------------------------------------------------------------------------
/extensions/free/transport/trunk/views/layout/general/top.php:
--------------------------------------------------------------------------------
1 | _verify_include_secret( $_secret ) or die;
10 |
11 | ?>
12 |
13 |
14 | %sTransport βeta ',
18 | sprintf(
19 | '%2$s ',
20 | esc_attr( $size ),
21 | sprintf(
22 | ' ',
23 | esc_url( \TSFEM_E_TRANSPORT_DIR_URL . 'lib/images/icon.svg', [ 'https', 'http' ] ),
24 | esc_attr( $size )
25 | )
26 | )
27 | );
28 | ?>
29 |
30 |
31 | _verify_include_secret( $_secret ) or die;
10 |
11 | $class = 'tsfem-button-primary tsfem-button-cloud';
12 | $name = __( 'Register', 'the-seo-framework-extension-manager' );
13 | $title = __( 'Connect this website to SEO Monitor', 'the-seo-framework-extension-manager' );
14 |
15 | $nonce_action = $this->_get_nonce_action_field( 'connect' );
16 | $nonce = $this->_get_nonce_field( 'connect' );
17 | $submit = $this->_get_submit_button( $name, $title, $class );
18 |
19 | $args = [
20 | 'id' => 'tsfem-e-monitor-connect-form',
21 | 'input' => compact( 'nonce_action', 'nonce', 'submit' ),
22 | ];
23 |
24 | $this->_action_button( menu_page_url( $this->monitor_page_slug, false ), $args );
25 |
--------------------------------------------------------------------------------
/views/layout/pages/extensions.php:
--------------------------------------------------------------------------------
1 | _verify_instance( $_instance, $bits[1] ) or die;
10 |
11 | $this->_do_pane_wrap(
12 | __( 'Extensions', 'the-seo-framework-extension-manager' ),
13 | $this->get_extension_overview(),
14 | [
15 | 'full' => true,
16 | 'collapse' => false,
17 | 'move' => false,
18 | 'pane_id' => 'tsfem-extensions-pane',
19 | 'ajax' => true,
20 | 'ajax_id' => 'tsfem-extensions-ajax',
21 | ]
22 | );
23 | $this->_do_pane_wrap(
24 | __( 'Account and Actions', 'the-seo-framework-extension-manager' ),
25 | $this->get_extensions_actions_overview(),
26 | [
27 | 'full' => false,
28 | 'collapse' => true,
29 | 'move' => true,
30 | 'pane_id' => 'tsfem-actions-pane',
31 | 'ajax' => true,
32 | 'ajax_id' => 'tsfem-actions-ajax',
33 | ]
34 | );
35 |
--------------------------------------------------------------------------------
/extensions/premium/monitor/trunk/views/layout/general/top.php:
--------------------------------------------------------------------------------
1 | _verify_include_secret( $_secret ) or die;
10 |
11 | $about = '';
12 | $actions = '';
13 |
14 | ?>
15 |
16 |
17 | %sMonitor',
21 | sprintf(
22 | '%2$s ',
23 | esc_attr( $size ),
24 | sprintf(
25 | ' ',
26 | esc_url( \TSFEM_E_MONITOR_DIR_URL . 'lib/images/icon.svg', [ 'https', 'http' ] ),
27 | esc_attr( $size )
28 | )
29 | )
30 | );
31 | ?>
32 |
33 |
34 |
20 |
23 |
24 |
30 | {let b,c=document.getElementById(`tsfLeData[${a}]`);try{b=JSON.parse(c.dataset.le)||void 0}catch(a){}if(b=b?.tsfem,!b)return;let d,e;for(let c in b)for(let a in b[c])if(d=document.getElementById("tsfem-pm-quick[%1$s][%2$s]".replace("%1$s",c).replace("%2$s",a)),d)if(e=b[c][a],e.isSelect){tsf.selectByValue(d,e.value);let a=d.querySelector("[value=\"0\"]");a&&(a.innerHTML=a.innerHTML.replace("%s",tsf.decodeEntities(e.default)))}else d.value=tsf.decodeEntities(e.value)},c=a=>b(a),d=()=>{let a;window.inlineEditPost&&(a="edit"in window.inlineEditPost&&window.inlineEditPost.edit,a&&(window.inlineEditPost.edit=function(c){let d=a.apply(this,arguments);return("object"==typeof c&&(c=window.inlineEditPost.getId(c)),!c)?d:(b(c),d)})),window.inlineEditTax&&(a="edit"in window.inlineEditTax&&window.inlineEditTax.edit,a&&(window.inlineEditTax.edit=function(b){let d=a.apply(this,arguments);return("object"==typeof b&&(b=window.inlineEditTax.getId(b)),!b)?d:(c(b),d)}))};return Object.assign({load:()=>{document.body.addEventListener("tsf-onload",d)}},{},{l10n:a})}(),window.tsfem_listedit.load();
2 |
--------------------------------------------------------------------------------
/views/forms/free.php:
--------------------------------------------------------------------------------
1 | _verify_instance( $_instance, $bits[1] ) or die;
10 |
11 | $class_form = isset( $classes_form ) && count( $classes_form ) > 0 ? implode( ' ', $classes_form ) : '';
12 | $class_submit = isset( $classes ) && count( $classes ) > 0 ? implode( ' ', $classes ) : 'tsfem-button tsfem-button-secondary';
13 |
14 | ?>
15 |
20 |
34 |
37 |
40 | _verify_include_secret( $_secret ) or die;
10 |
11 | $tsfem = tsfem();
12 |
13 | $tsfem->_do_pane_wrap(
14 | __( 'Common Issues', 'the-seo-framework-extension-manager' ),
15 | $this->get_issues_overview(),
16 | [
17 | 'full' => false,
18 | 'collapse' => true,
19 | 'wide' => true,
20 | 'move' => false,
21 | 'push' => true,
22 | 'pane_id' => 'tsfem-e-monitor-issues-pane',
23 | 'ajax' => true,
24 | 'ajax_id' => 'tsfem-e-monitor-issues-ajax',
25 | ]
26 | );
27 | $tsfem->_do_pane_wrap(
28 | __( 'Control Panel', 'the-seo-framework-extension-manager' ),
29 | $this->get_cp_overview(),
30 | [
31 | 'full' => false,
32 | 'collapse' => true,
33 | 'move' => false,
34 | 'pane_id' => 'tsfem-e-monitor-cp-pane',
35 | 'ajax' => true,
36 | 'ajax_id' => 'tsfem-e-monitor-cp-ajax',
37 | ]
38 | );
39 |
--------------------------------------------------------------------------------
/extensions/premium/local/trunk/views/layout/general/top.php:
--------------------------------------------------------------------------------
1 | _verify_include_secret( $_secret ) or die;
10 |
11 | ?>
12 |
13 |
14 | %sLocal',
18 | sprintf(
19 | '%2$s ',
20 | esc_attr( $size ),
21 | sprintf(
22 | ' ',
23 | esc_url( \TSFEM_E_LOCAL_DIR_URL . 'lib/images/icon.svg', [ 'https', 'http' ] ),
24 | esc_attr( $size )
25 | )
26 | )
27 | );
28 | ?>
29 |
30 |
31 | =
32 | // phpcs:ignore, WordPress.Security.EscapeOutput -- Already escaped.
33 | $this->get_test_button(), $this->get_form()->_form_button( 'submit', __( 'Save', 'the-seo-framework-extension-manager' ), 'get' )
34 | ?>
35 |
2 |
3 |
5 |
9 |
12 |
16 |
17 |
--------------------------------------------------------------------------------
/extensions/premium/local/assets/icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
8 |
15 |
16 |
--------------------------------------------------------------------------------
/extensions/premium/local/trunk/lib/images/icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
8 |
15 |
16 |
--------------------------------------------------------------------------------
/views/layout/extension/top.php:
--------------------------------------------------------------------------------
1 |
12 |
13 |
14 | %s%s',
19 | sprintf(
20 | '%2$s ',
21 | esc_attr( $size ),
22 | sprintf(
23 | ' ',
24 | esc_url( tsfem()->get_image_file_location( 'tsflogo.svg', true ), [ 'https', 'http' ] ),
25 | esc_attr( $size )
26 | )
27 | ),
28 | esc_html__( 'Extension Settings', 'the-seo-framework-extension-manager' )
29 | );
30 | ?>
31 |
32 |
33 | =
36 | // phpcs:ignore, WordPress.Security.EscapeOutput.OutputNotEscaped -- get_save_all_button() escapes.
37 | $this->get_save_all_button();
38 | ?>
39 | _verify_instance( $_instance, $bits[1] ) or die;
12 |
13 | $class_submit = isset( $classes ) && count( $classes ) > 0 ? implode( ' ', $classes ) : 'tsfem-button-primary';
14 | $value_redirect = $redirect ?? 'signup';
15 |
16 | // @TODO nonce? nonce.
17 | exit; // UNSAFE (and unused...) SCRIPT! Needs nonce.
18 |
19 | ?>
20 |
26 | _verify_include_secret( $_secret ) or die;
10 |
11 | $tsfem = tsfem();
12 |
13 | $tsfem->_do_pane_wrap_callable(
14 | __( 'Importer', 'the-seo-framework-extension-manager' ),
15 | [ $this, '_importer_overview' ],
16 | [
17 | 'full' => false,
18 | 'collapse' => true,
19 | 'wide' => false,
20 | 'move' => false,
21 | 'push' => true,
22 | 'pane_id' => 'tsfem-e-transport-importer-pane',
23 | 'ajax' => true,
24 | 'ajax_id' => 'tsfem-e-transport-importer-ajax',
25 | ]
26 | );
27 | $tsfem->_do_pane_wrap_callable(
28 | __( 'Logger', 'the-seo-framework-extension-manager' ),
29 | [ $this, '_logger_overview' ],
30 | [
31 | 'full' => true,
32 | 'collapse' => true,
33 | 'move' => false,
34 | 'pane_id' => 'tsfem-e-transport-log-pane',
35 | 'ajax' => true,
36 | 'ajax_id' => 'tsfem-e-transport-log-ajax',
37 | 'footer' => [ $this, '_logger_bottom_wrap' ],
38 | ]
39 | );
40 |
--------------------------------------------------------------------------------
/lib/js/tsfem.min.js:
--------------------------------------------------------------------------------
1 | "use strict";window.tsfem=function(a){const b=tsfemL10n.nonce,c=tsfemL10n.insecureNonce,d=tsfemL10n.i18n,e=(b,c,d)=>{let e,f;2===c?(e="tsfem-unknown",f=7500):1===c?(e="tsfem-success",f=2500):(e="tsfem-error",f=1e4);a(b).removeClass("tsfem-loading").addClass(e).text(d?a(" ").html(d).text():"").fadeOut(d?2*f:f)},f=b=>{a(b).stop(!1,!0).empty().prop("class","tsfem-ajax").show()},g=()=>{};return Object.assign({load:()=>{document.body.addEventListener("tsf-ready",g)}},{nonce:b,insecureNonce:c,i18n:d},{getNodeArray:(a,b)=>{let c=a instanceof Element||a instanceof Document?[a]:[...document.querySelectorAll(Array.isArray(a)?a.join(", "):a)];return b&&(c=c.filter(a=>!a.classList.contains(b))),c},setAjaxLoader:b=>{a(b).toggleClass("tsfem-loading")},unsetAjaxLoader:e,resetAjaxLoader:f,updatedResponse:(a,b,c)=>{0===b||1===b||2===b?e(a,b,c):f(a)},getAjaxError:(a,b,c)=>{tsf.l10n.states.debug&&(void 0);let d="";return d="abort"===c||"timeout"===c?tsfem.i18n.TimeoutError:"Bad Request"===c?tsfem.i18n.BadRequest:"Internal Server Error"===c?tsfem.i18n.FatalError:"parsererror"===c?tsfem.i18n.ParseError:tsfem.i18n.UnknownError,d},matosa:a=>{var b=null,c="";if(function e(a,d){if(d++,"object"==typeof a){let f,g;for(f in a)g=a[f];b=g,c+=1===d?f+e(g,d):`[${f}]${e(g,d)}`}else if(1===d)return b=null,c=!1;return c}(a,0),!1===c)return!1;let d={};return d[c]=b,d}})}(jQuery),window.tsfem.load();
2 |
--------------------------------------------------------------------------------
/extensions/free/incognito/assets/icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
9 |
10 |
11 |
12 |
13 |
14 |
17 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/inc/classes/loadfront.class.php:
--------------------------------------------------------------------------------
1 | .
25 | */
26 |
27 | /**
28 | * Facade Class TSF_Extension_Manager\LoadFront.
29 | *
30 | * Initializes plugin classes.
31 | *
32 | * @since 1.0.0
33 | * @access private
34 | * @final
35 | */
36 | final class LoadFront extends Core {
37 | use Construct_Master_Once_Interface;
38 |
39 | /**
40 | * Constructor, initializes WordPress actions.
41 | *
42 | * @since 1.0.0
43 | */
44 | private function construct() { }
45 | }
46 |
--------------------------------------------------------------------------------
/lib/images/tsflogo.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
9 |
14 |
18 |
19 |
--------------------------------------------------------------------------------
/extensions/essentials/cord/assets/icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
9 |
10 |
15 |
16 |
17 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/extensions/essentials/cord/trunk/lib/images/icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
9 |
10 |
15 |
16 |
17 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/lib/images/exticon-fallback.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
9 |
14 |
18 |
19 |
--------------------------------------------------------------------------------
/views/template/fbtopnotice.php:
--------------------------------------------------------------------------------
1 | format_error_notice(
19 | '{{data.code}}',
20 | [
21 | 'type' => 'error',
22 | 'message' => '',
23 | ]
24 | );
25 |
26 | $a11y = true;
27 | $escape = false;
28 | $inline = true;
29 |
30 | ?>
31 |
44 |
57 | $a['priority'] <=> $b['priority']
17 | );
18 |
19 | $_tsfem = tsfem();
20 |
21 | foreach ( $_settings as $index => $params ) {
22 | $_tsfem->_do_pane_wrap_callable(
23 | $params['title'],
24 | [ static::class, '_output_pane_settings' ],
25 | [
26 | 'logo' => $params['logo'],
27 | 'full' => in_array( 'full', $params['pane'], true ),
28 | 'wide' => in_array( 'wide', $params['pane'], true ),
29 | 'tall' => in_array( 'tall', $params['pane'], true ),
30 | 'collapse' => true,
31 | 'move' => true,
32 | 'pane_id' => "tsfem-extension-settings-pane-$index",
33 | 'ajax' => true,
34 | 'ajax_id' => "tsfem-extension-settings-ajax-$index",
35 | 'footer' => [ static::class, '_output_pane_settings_footer' ],
36 | 'cbargs' => [ $index, $params['settings'] ],
37 | 'fcbargs' => [ $index ],
38 | ]
39 | );
40 | }
41 |
--------------------------------------------------------------------------------
/extensions/free/title-fix/assets/icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
9 |
14 |
15 |
17 |
19 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/views/layout/extension/pane.php:
--------------------------------------------------------------------------------
1 |
16 |
17 |
18 |
19 |
= esc_html__( 'JavaScript required', 'the-seo-framework-extension-manager' ) ?>
20 |
= esc_html__( 'Because of the complexity of the settings, JavaScript is required.', 'the-seo-framework-extension-manager' ) ?>
21 |
22 |
23 |
24 |
25 | _form_wrap( 'start', menu_page_url( static::$settings_page_slug, false ), true );
27 | $f->_fields( $settings );
28 | $f->_form_wrap( 'end' );
29 | ?>
30 |
31 |
32 |
33 | _blocked_extension_file( $_instance, $bits[1] ) ) return;
11 |
12 | /**
13 | * Monitor extension for The SEO Framework
14 | * Copyright (C) 2016 - 2025 Sybre Waaijer, CyberWire B.V. (https://cyberwire.nl/)
15 | *
16 | * This program is free software: you can redistribute it and/or modify
17 | * it under the terms of the GNU General Public License version 3 as published
18 | * by the Free Software Foundation.
19 | *
20 | * This program is distributed in the hope that it will be useful,
21 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
22 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 | * GNU General Public License for more details.
24 | *
25 | * You should have received a copy of the GNU General Public License
26 | * along with this program. If not, see .
27 | */
28 |
29 | /**
30 | * Class TSF_Extension_Manager\Extension\Monitor\Front
31 | *
32 | * Holds extension front-end methods.
33 | *
34 | * @since 1.0.0
35 | * @access private
36 | * @uses TSF_Extension_Manager\Traits
37 | * @final
38 | */
39 | final class Front {
40 | use \TSF_Extension_Manager\Construct_Master_Once_Final_Interface;
41 |
42 | /**
43 | * @ignore
44 | */
45 | private function construct() { }
46 | }
47 |
--------------------------------------------------------------------------------
/extensions/essentials/honeypot/trunk/js.js:
--------------------------------------------------------------------------------
1 | /**
2 | * This file holds Honeypot's code for the JS field. The contents are minified, stored, and outputted via PHP.
3 | * Serve JavaScript as an addition, not as an ends or means.
4 | *
5 | * @author Sybre Waaijer
6 | * @link
7 | */
8 |
9 | /**
10 | * Honeypot extension for The SEO Framework
11 | * Copyright (C) 2021 - 2025 Sybre Waaijer, CyberWire B.V. (https://cyberwire.nl/)
12 | *
13 | * This program is free software: you can redistribute it and/or modify
14 | * it under the terms of the GNU General Public License version 3 as published
15 | * by the Free Software Foundation.
16 | *
17 | * This program is distributed in the hope that it will be useful,
18 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 | * GNU General Public License for more details.
21 | *
22 | * You should have received a copy of the GNU General Public License
23 | * along with this program. If not, see .
24 | */
25 |
26 | 'use strict';
27 |
28 | /**
29 | * @since 2.0.0
30 | * @param {Object} phpValues See method output_timer_honeypot()'s $php_values.
31 | */
32 | ( phpValues => {
33 | let input = document.getElementById( phpValues.i ),
34 | wrapper = document.getElementById( phpValues.w );
35 |
36 | if ( input && wrapper ) {
37 | input.value = '';
38 | wrapper.style.display = 'none';
39 | }
40 | } )( $php_values );
41 |
--------------------------------------------------------------------------------
/extensions/essentials/articles/trunk/views/list/quickedit.php:
--------------------------------------------------------------------------------
1 |
26 |
27 |
28 | %s', \esc_html( $post_meta['type']['label'] ) );
31 | // phpcs:disable, WordPress.Security.EscapeOutput -- make_single_select_form() escapes.
32 | echo make_single_select_form( [
33 | 'id' => ListEdit::get_quick_option_key( 'type', $pm_index ),
34 | 'name' => ListEdit::get_quick_option_key( 'type', $pm_index ),
35 | 'options' => $post_meta['type']['options'],
36 | 'default' => '',
37 | ] );
38 | // phpcs:enable, WordPress.Security.EscapeOutput
39 | ?>
40 |
41 |
42 |
--------------------------------------------------------------------------------
/extensions/essentials/articles/trunk/views/list/bulkedit.php:
--------------------------------------------------------------------------------
1 |
26 |
27 |
28 | %s', \esc_html( $post_meta['type']['label'] ) );
31 | // phpcs:disable, WordPress.Security.EscapeOutput -- make_single_select_form() escapes.
32 | echo make_single_select_form( [
33 | 'id' => ListEdit::get_bulk_option_key( 'type', $pm_index ),
34 | 'name' => ListEdit::get_bulk_option_key( 'type', $pm_index ),
35 | 'options' => $post_meta['type']['options'],
36 | 'default' => 'nochange',
37 | ] );
38 | // phpcs:enable, WordPress.Security.EscapeOutput
39 | ?>
40 |
41 |
42 |
--------------------------------------------------------------------------------
/views/template/inpostnotice.php:
--------------------------------------------------------------------------------
1 |
24 |
37 |
41 |
54 | _verify_instance( $_instance, $bits[1] ) or die;
10 |
11 | $class_form = isset( $classes_form ) && count( $classes_form ) > 0 ? implode( ' ', $classes_form ) : '';
12 | $submit_class = isset( $classes ) && count( $classes ) > 0 ? implode( ' ', $classes ) : 'tsfem-button-primary';
13 |
14 | ?>
15 |
22 |
2 |
3 |
5 |
9 |
10 |
13 |
16 |
17 |
23 |
24 |
--------------------------------------------------------------------------------
/extensions/premium/local/trunk/lib/js/tsfem-local.min.js:
--------------------------------------------------------------------------------
1 | "use strict";window.tsfem_e_local={nonce:tsfem_e_localL10n.nonce,i18n:tsfem_e_localL10n.i18n,validateFormJson:a=>{let b,c,d=a.target.getAttribute("form");if(d){if(b=document.getElementById(d),!b)return!1;if(!tsfemForm.doValidityRoutine(b,tsfem_e_local.i18n.fixForm))return!1;c=a.target}else return!1;let e=jQuery(b).closest(".tsfem-pane-wrap").find(".tsfem-pane-header .tsfem-ajax"),f=0,g="";tsfemForm.disableButton(c),tsfem.resetAjaxLoader(e),tsfem.setAjaxLoader(e);let h=window,i="_tsfemMarkupTester",j=window.open("about:blank",i);return jQuery.ajax({method:"POST",url:ajaxurl,dataType:"json",data:{action:"tsfem_e_local_validateFormJson",nonce:tsfem_e_local.nonce,data:jQuery(b).serialize()},processData:!0,timeout:14e3}).done(a=>{a=tsf.convertJSONResponse(a),tsf.l10n.states.debug&&void 0;let b=a?.data,c=a?.type;if(!b||!c)g=tsfem.i18n.InvalidResponse;else{let a=b?.results?.code,c=b?.results?.success;if(!a)g=tsfem.i18n.UnknownError,j.close(),h.focus();else if(!c)tsfem_ui.setTopNotice(a),j.close(),h.focus();else{let a=b.tdata||void 0;if(f=1,g=tsfem_e_local.i18n.testNewWindow,a){let b=jQuery("