Repository files navigation

Build Status

Snowcap Core Bundle

The Snowcap Core Bundle is a bundle used at Snowcap to help us with some repetitive tasks, including (but not limited to):

  • Dealing with file and image uploads
  • RSS feed generation
  • SEO-related tasks (sitemaps, etc)

Installation

Download SnowcapCoreBundle using composer

Add SnowcapCoreBundle in your composer.json:

For Symfony < 2.7

{"require": {"snowcap/core-bundle": "~1.0"}}

For Symfony >= 2.7

{"require": {"snowcap/core-bundle": "~2.0"}}

Now tell composer to download the bundle by running the command:

$ php composer.phar update snowcap/core-bundle

Composer will install the bundle to your project's vendor/snowcap directory.

Enable the Bundle

Enable the bundle in the kernel:

<?php// app/AppKernel.phppublicfunctionregisterBundles()
{
$bundles = array(
// ...newSnowcap\CoreBundle\SnowcapCoreBundle(),
);
}

Running the tests

Before running the tests, you will need to install the bundle dependencies. Do it using composer :

$ php composer.phar --dev install

Then you can simply launch phpunit

$ phpunit

Form types

SnowcapCoreBundle provides a few useful form types.

File Field Type (snowcap_core_file)

The snowcap_core_file field type is a simple file upload widget. It extends Symfony's default file type, and bring two extra features:

  • It allows users to ask for the deletion of the current file
  • The widget includes a "download" button that allows the user to download the file

Usage

<?php// src/Acme/SiteBundle/Form/CandidateTypepublicfunctionbuildForm(FormBuilderInterface$builder, array$options)
{
$builder->add('cv', 'snowcap_core_file', array(
'label' => 'Curriculum Vitae',
'file_path' => 'cvPath',
));
}

When Symfony displays the form widget, it will also render a "donwload" button, which is basically a link pointing to the file, as specified by the file_path option.

Options

file_path

type: string or callable required

Either a public path that can be processed by Symfony's PropertyAccess component or a callable that takes the field data as sole argument and returns a path. This path will be used to build the download button url.

allow_delete

type: boolean default: true

When true, will display a checkbox allowing users to ask for the deletion of the current file. When checked, on form submission, the field data will be replaced by an instance of Snowcap\CoreBundle\File\CondemnedFile. It is up to you to process that Condemned file instance (unless you use the SnowcapCoreBundle FileSubscriber).

delete_label

type: string default: null

The label that will be displayed next to the deletion checkbox.

download_label

type: string default: null

The label that will be displayed on the download button.

Image Field Type

The snowcap_core_image field type extends the snowcap_core_file field type. It behaves the same way, except that it is rendered differently: instead of displaying a "download" button, it will actually display the uploaded image.

Note: If you are using SnowcapImBundle, in addition to the options provided by snowcap_core_file, you can specify a im_format option. It will be used to dynamically create a thumbnail of the picture. Please refer to the SnowcapImBundle documentation for more information.

About

Bundle used to manage common shared features through all Snowcap projects

Resources

Stars

3 stars

Watchers

6 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Build Status

Snowcap Core Bundle

The Snowcap Core Bundle is a bundle used at Snowcap to help us with some repetitive tasks, including (but not limited to):

  • Dealing with file and image uploads
  • RSS feed generation
  • SEO-related tasks (sitemaps, etc)

Installation

Download SnowcapCoreBundle using composer

Add SnowcapCoreBundle in your composer.json:

For Symfony < 2.7

{"require": {"snowcap/core-bundle": "~1.0"}}

For Symfony >= 2.7

{"require": {"snowcap/core-bundle": "~2.0"}}

Now tell composer to download the bundle by running the command:

$ php composer.phar update snowcap/core-bundle

Composer will install the bundle to your project's vendor/snowcap directory.

Enable the Bundle

Enable the bundle in the kernel:

<?php// app/AppKernel.phppublicfunctionregisterBundles()
{
$bundles = array(
// ...newSnowcap\CoreBundle\SnowcapCoreBundle(),
);
}

Running the tests

Before running the tests, you will need to install the bundle dependencies. Do it using composer :

$ php composer.phar --dev install

Then you can simply launch phpunit

$ phpunit

Form types

SnowcapCoreBundle provides a few useful form types.

File Field Type (snowcap_core_file)

The snowcap_core_file field type is a simple file upload widget. It extends Symfony's default file type, and bring two extra features:

  • It allows users to ask for the deletion of the current file
  • The widget includes a "download" button that allows the user to download the file

Usage

<?php// src/Acme/SiteBundle/Form/CandidateTypepublicfunctionbuildForm(FormBuilderInterface$builder, array$options)
{
$builder->add('cv', 'snowcap_core_file', array(
'label' => 'Curriculum Vitae',
'file_path' => 'cvPath',
));
}

When Symfony displays the form widget, it will also render a "donwload" button, which is basically a link pointing to the file, as specified by the file_path option.

Options

file_path

type: string or callable required

Either a public path that can be processed by Symfony's PropertyAccess component or a callable that takes the field data as sole argument and returns a path. This path will be used to build the download button url.

allow_delete

type: boolean default: true

When true, will display a checkbox allowing users to ask for the deletion of the current file. When checked, on form submission, the field data will be replaced by an instance of Snowcap\CoreBundle\File\CondemnedFile. It is up to you to process that Condemned file instance (unless you use the SnowcapCoreBundle FileSubscriber).

delete_label

type: string default: null

The label that will be displayed next to the deletion checkbox.

download_label

type: string default: null

The label that will be displayed on the download button.

Image Field Type

The snowcap_core_image field type extends the snowcap_core_file field type. It behaves the same way, except that it is rendered differently: instead of displaying a "download" button, it will actually display the uploaded image.

Note: If you are using SnowcapImBundle, in addition to the options provided by snowcap_core_file, you can specify a im_format option. It will be used to dynamically create a thumbnail of the picture. Please refer to the SnowcapImBundle documentation for more information.

About

Bundle used to manage common shared features through all Snowcap projects

Resources

Stars

3 stars

Watchers

6 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Build Status

Snowcap Core Bundle

The Snowcap Core Bundle is a bundle used at Snowcap to help us with some repetitive tasks, including (but not limited to):

  • Dealing with file and image uploads
  • RSS feed generation
  • SEO-related tasks (sitemaps, etc)

Installation

Download SnowcapCoreBundle using composer

Add SnowcapCoreBundle in your composer.json:

For Symfony < 2.7

{"require": {"snowcap/core-bundle": "~1.0"}}

For Symfony >= 2.7

{"require": {"snowcap/core-bundle": "~2.0"}}

Now tell composer to download the bundle by running the command:

$ php composer.phar update snowcap/core-bundle

Composer will install the bundle to your project's vendor/snowcap directory.

Enable the Bundle

Enable the bundle in the kernel:

<?php// app/AppKernel.phppublicfunctionregisterBundles()
{
$bundles = array(
// ...newSnowcap\CoreBundle\SnowcapCoreBundle(),
);
}

Running the tests

Before running the tests, you will need to install the bundle dependencies. Do it using composer :

$ php composer.phar --dev install

Then you can simply launch phpunit

$ phpunit

Form types

SnowcapCoreBundle provides a few useful form types.

File Field Type (snowcap_core_file)

The snowcap_core_file field type is a simple file upload widget. It extends Symfony's default file type, and bring two extra features:

  • It allows users to ask for the deletion of the current file
  • The widget includes a "download" button that allows the user to download the file

Usage

<?php// src/Acme/SiteBundle/Form/CandidateTypepublicfunctionbuildForm(FormBuilderInterface$builder, array$options)
{
$builder->add('cv', 'snowcap_core_file', array(
'label' => 'Curriculum Vitae',
'file_path' => 'cvPath',
));
}

When Symfony displays the form widget, it will also render a "donwload" button, which is basically a link pointing to the file, as specified by the file_path option.

Options

file_path

type: string or callable required

Either a public path that can be processed by Symfony's PropertyAccess component or a callable that takes the field data as sole argument and returns a path. This path will be used to build the download button url.

allow_delete

type: boolean default: true

When true, will display a checkbox allowing users to ask for the deletion of the current file. When checked, on form submission, the field data will be replaced by an instance of Snowcap\CoreBundle\File\CondemnedFile. It is up to you to process that Condemned file instance (unless you use the SnowcapCoreBundle FileSubscriber).

delete_label

type: string default: null

The label that will be displayed next to the deletion checkbox.

download_label

type: string default: null

The label that will be displayed on the download button.

Image Field Type

The snowcap_core_image field type extends the snowcap_core_file field type. It behaves the same way, except that it is rendered differently: instead of displaying a "download" button, it will actually display the uploaded image.

Note: If you are using SnowcapImBundle, in addition to the options provided by snowcap_core_file, you can specify a im_format option. It will be used to dynamically create a thumbnail of the picture. Please refer to the SnowcapImBundle documentation for more information.

About

Bundle used to manage common shared features through all Snowcap projects

Resources

Stars

3 stars

Watchers

6 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Build Status

Snowcap Core Bundle

The Snowcap Core Bundle is a bundle used at Snowcap to help us with some repetitive tasks, including (but not limited to):

  • Dealing with file and image uploads
  • RSS feed generation
  • SEO-related tasks (sitemaps, etc)

Installation

Download SnowcapCoreBundle using composer

Add SnowcapCoreBundle in your composer.json:

For Symfony < 2.7

{"require": {"snowcap/core-bundle": "~1.0"}}

For Symfony >= 2.7

{"require": {"snowcap/core-bundle": "~2.0"}}

Now tell composer to download the bundle by running the command:

$ php composer.phar update snowcap/core-bundle

Composer will install the bundle to your project's vendor/snowcap directory.

Enable the Bundle

Enable the bundle in the kernel:

<?php// app/AppKernel.phppublicfunctionregisterBundles()
{
$bundles = array(
// ...newSnowcap\CoreBundle\SnowcapCoreBundle(),
);
}

Running the tests

Before running the tests, you will need to install the bundle dependencies. Do it using composer :

$ php composer.phar --dev install

Then you can simply launch phpunit

$ phpunit

Form types

SnowcapCoreBundle provides a few useful form types.

File Field Type (snowcap_core_file)

The snowcap_core_file field type is a simple file upload widget. It extends Symfony's default file type, and bring two extra features:

  • It allows users to ask for the deletion of the current file
  • The widget includes a "download" button that allows the user to download the file

Usage

<?php// src/Acme/SiteBundle/Form/CandidateTypepublicfunctionbuildForm(FormBuilderInterface$builder, array$options)
{
$builder->add('cv', 'snowcap_core_file', array(
'label' => 'Curriculum Vitae',
'file_path' => 'cvPath',
));
}

When Symfony displays the form widget, it will also render a "donwload" button, which is basically a link pointing to the file, as specified by the file_path option.

Options

file_path

type: string or callable required

Either a public path that can be processed by Symfony's PropertyAccess component or a callable that takes the field data as sole argument and returns a path. This path will be used to build the download button url.

allow_delete

type: boolean default: true

When true, will display a checkbox allowing users to ask for the deletion of the current file. When checked, on form submission, the field data will be replaced by an instance of Snowcap\CoreBundle\File\CondemnedFile. It is up to you to process that Condemned file instance (unless you use the SnowcapCoreBundle FileSubscriber).

delete_label

type: string default: null

The label that will be displayed next to the deletion checkbox.

download_label

type: string default: null

The label that will be displayed on the download button.

Image Field Type

The snowcap_core_image field type extends the snowcap_core_file field type. It behaves the same way, except that it is rendered differently: instead of displaying a "download" button, it will actually display the uploaded image.

Note: If you are using SnowcapImBundle, in addition to the options provided by snowcap_core_file, you can specify a im_format option. It will be used to dynamically create a thumbnail of the picture. Please refer to the SnowcapImBundle documentation for more information.

About

Bundle used to manage common shared features through all Snowcap projects

Resources

Stars

3 stars

Watchers

6 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Build Status

Snowcap Core Bundle

The Snowcap Core Bundle is a bundle used at Snowcap to help us with some repetitive tasks, including (but not limited to):

  • Dealing with file and image uploads
  • RSS feed generation
  • SEO-related tasks (sitemaps, etc)

Installation

Download SnowcapCoreBundle using composer

Add SnowcapCoreBundle in your composer.json:

For Symfony < 2.7

{"require": {"snowcap/core-bundle": "~1.0"}}

For Symfony >= 2.7

{"require": {"snowcap/core-bundle": "~2.0"}}

Now tell composer to download the bundle by running the command:

$ php composer.phar update snowcap/core-bundle

Composer will install the bundle to your project's vendor/snowcap directory.

Enable the Bundle

Enable the bundle in the kernel:

<?php// app/AppKernel.phppublicfunctionregisterBundles()
{
$bundles = array(
// ...newSnowcap\CoreBundle\SnowcapCoreBundle(),
);
}

Running the tests

Before running the tests, you will need to install the bundle dependencies. Do it using composer :

$ php composer.phar --dev install

Then you can simply launch phpunit

$ phpunit

Form types

SnowcapCoreBundle provides a few useful form types.

File Field Type (snowcap_core_file)

The snowcap_core_file field type is a simple file upload widget. It extends Symfony's default file type, and bring two extra features:

  • It allows users to ask for the deletion of the current file
  • The widget includes a "download" button that allows the user to download the file

Usage

<?php// src/Acme/SiteBundle/Form/CandidateTypepublicfunctionbuildForm(FormBuilderInterface$builder, array$options)
{
$builder->add('cv', 'snowcap_core_file', array(
'label' => 'Curriculum Vitae',
'file_path' => 'cvPath',
));
}

When Symfony displays the form widget, it will also render a "donwload" button, which is basically a link pointing to the file, as specified by the file_path option.

Options

file_path

type: string or callable required

Either a public path that can be processed by Symfony's PropertyAccess component or a callable that takes the field data as sole argument and returns a path. This path will be used to build the download button url.

allow_delete

type: boolean default: true

When true, will display a checkbox allowing users to ask for the deletion of the current file. When checked, on form submission, the field data will be replaced by an instance of Snowcap\CoreBundle\File\CondemnedFile. It is up to you to process that Condemned file instance (unless you use the SnowcapCoreBundle FileSubscriber).

delete_label

type: string default: null

The label that will be displayed next to the deletion checkbox.

download_label

type: string default: null

The label that will be displayed on the download button.

Image Field Type

The snowcap_core_image field type extends the snowcap_core_file field type. It behaves the same way, except that it is rendered differently: instead of displaying a "download" button, it will actually display the uploaded image.

Note: If you are using SnowcapImBundle, in addition to the options provided by snowcap_core_file, you can specify a im_format option. It will be used to dynamically create a thumbnail of the picture. Please refer to the SnowcapImBundle documentation for more information.

About

Bundle used to manage common shared features through all Snowcap projects

Resources

Stars

3 stars

Watchers

6 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Build Status

Snowcap Core Bundle

The Snowcap Core Bundle is a bundle used at Snowcap to help us with some repetitive tasks, including (but not limited to):

  • Dealing with file and image uploads
  • RSS feed generation
  • SEO-related tasks (sitemaps, etc)

Installation

Download SnowcapCoreBundle using composer

Add SnowcapCoreBundle in your composer.json:

For Symfony < 2.7

{"require": {"snowcap/core-bundle": "~1.0"}}

For Symfony >= 2.7

{"require": {"snowcap/core-bundle": "~2.0"}}

Now tell composer to download the bundle by running the command:

$ php composer.phar update snowcap/core-bundle

Composer will install the bundle to your project's vendor/snowcap directory.

Enable the Bundle

Enable the bundle in the kernel:

<?php// app/AppKernel.phppublicfunctionregisterBundles()
{
$bundles = array(
// ...newSnowcap\CoreBundle\SnowcapCoreBundle(),
);
}

Running the tests

Before running the tests, you will need to install the bundle dependencies. Do it using composer :

$ php composer.phar --dev install

Then you can simply launch phpunit

$ phpunit

Form types

SnowcapCoreBundle provides a few useful form types.

File Field Type (snowcap_core_file)

The snowcap_core_file field type is a simple file upload widget. It extends Symfony's default file type, and bring two extra features:

  • It allows users to ask for the deletion of the current file
  • The widget includes a "download" button that allows the user to download the file

Usage

<?php// src/Acme/SiteBundle/Form/CandidateTypepublicfunctionbuildForm(FormBuilderInterface$builder, array$options)
{
$builder->add('cv', 'snowcap_core_file', array(
'label' => 'Curriculum Vitae',
'file_path' => 'cvPath',
));
}

When Symfony displays the form widget, it will also render a "donwload" button, which is basically a link pointing to the file, as specified by the file_path option.

Options

file_path

type: string or callable required

Either a public path that can be processed by Symfony's PropertyAccess component or a callable that takes the field data as sole argument and returns a path. This path will be used to build the download button url.

allow_delete

type: boolean default: true

When true, will display a checkbox allowing users to ask for the deletion of the current file. When checked, on form submission, the field data will be replaced by an instance of Snowcap\CoreBundle\File\CondemnedFile. It is up to you to process that Condemned file instance (unless you use the SnowcapCoreBundle FileSubscriber).

delete_label

type: string default: null

The label that will be displayed next to the deletion checkbox.

download_label

type: string default: null

The label that will be displayed on the download button.

Image Field Type

The snowcap_core_image field type extends the snowcap_core_file field type. It behaves the same way, except that it is rendered differently: instead of displaying a "download" button, it will actually display the uploaded image.

Note: If you are using SnowcapImBundle, in addition to the options provided by snowcap_core_file, you can specify a im_format option. It will be used to dynamically create a thumbnail of the picture. Please refer to the SnowcapImBundle documentation for more information.

About

Bundle used to manage common shared features through all Snowcap projects

Resources

Stars

3 stars

Watchers

6 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Build Status

Snowcap Core Bundle

The Snowcap Core Bundle is a bundle used at Snowcap to help us with some repetitive tasks, including (but not limited to):

  • Dealing with file and image uploads
  • RSS feed generation
  • SEO-related tasks (sitemaps, etc)

Installation

Download SnowcapCoreBundle using composer

Add SnowcapCoreBundle in your composer.json:

For Symfony < 2.7

{"require": {"snowcap/core-bundle": "~1.0"}}

For Symfony >= 2.7

{"require": {"snowcap/core-bundle": "~2.0"}}

Now tell composer to download the bundle by running the command:

$ php composer.phar update snowcap/core-bundle

Composer will install the bundle to your project's vendor/snowcap directory.

Enable the Bundle

Enable the bundle in the kernel:

<?php// app/AppKernel.phppublicfunctionregisterBundles()
{
$bundles = array(
// ...newSnowcap\CoreBundle\SnowcapCoreBundle(),
);
}

Running the tests

Before running the tests, you will need to install the bundle dependencies. Do it using composer :

$ php composer.phar --dev install

Then you can simply launch phpunit

$ phpunit

Form types

SnowcapCoreBundle provides a few useful form types.

File Field Type (snowcap_core_file)

The snowcap_core_file field type is a simple file upload widget. It extends Symfony's default file type, and bring two extra features:

  • It allows users to ask for the deletion of the current file
  • The widget includes a "download" button that allows the user to download the file

Usage

<?php// src/Acme/SiteBundle/Form/CandidateTypepublicfunctionbuildForm(FormBuilderInterface$builder, array$options)
{
$builder->add('cv', 'snowcap_core_file', array(
'label' => 'Curriculum Vitae',
'file_path' => 'cvPath',
));
}

When Symfony displays the form widget, it will also render a "donwload" button, which is basically a link pointing to the file, as specified by the file_path option.

Options

file_path

type: string or callable required

Either a public path that can be processed by Symfony's PropertyAccess component or a callable that takes the field data as sole argument and returns a path. This path will be used to build the download button url.

allow_delete

type: boolean default: true

When true, will display a checkbox allowing users to ask for the deletion of the current file. When checked, on form submission, the field data will be replaced by an instance of Snowcap\CoreBundle\File\CondemnedFile. It is up to you to process that Condemned file instance (unless you use the SnowcapCoreBundle FileSubscriber).

delete_label

type: string default: null

The label that will be displayed next to the deletion checkbox.

download_label

type: string default: null

The label that will be displayed on the download button.

Image Field Type

The snowcap_core_image field type extends the snowcap_core_file field type. It behaves the same way, except that it is rendered differently: instead of displaying a "download" button, it will actually display the uploaded image.

Note: If you are using SnowcapImBundle, in addition to the options provided by snowcap_core_file, you can specify a im_format option. It will be used to dynamically create a thumbnail of the picture. Please refer to the SnowcapImBundle documentation for more information.

About

Bundle used to manage common shared features through all Snowcap projects

Resources

Stars

3 stars

Watchers

6 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Build Status

Snowcap Core Bundle

The Snowcap Core Bundle is a bundle used at Snowcap to help us with some repetitive tasks, including (but not limited to):

  • Dealing with file and image uploads
  • RSS feed generation
  • SEO-related tasks (sitemaps, etc)

Installation

Download SnowcapCoreBundle using composer

Add SnowcapCoreBundle in your composer.json:

For Symfony < 2.7

{"require": {"snowcap/core-bundle": "~1.0"}}

For Symfony >= 2.7

{"require": {"snowcap/core-bundle": "~2.0"}}

Now tell composer to download the bundle by running the command:

$ php composer.phar update snowcap/core-bundle

Composer will install the bundle to your project's vendor/snowcap directory.

Enable the Bundle

Enable the bundle in the kernel:

<?php// app/AppKernel.phppublicfunctionregisterBundles()
{
$bundles = array(
// ...newSnowcap\CoreBundle\SnowcapCoreBundle(),
);
}

Running the tests

Before running the tests, you will need to install the bundle dependencies. Do it using composer :

$ php composer.phar --dev install

Then you can simply launch phpunit

$ phpunit

Form types

SnowcapCoreBundle provides a few useful form types.

File Field Type (snowcap_core_file)

The snowcap_core_file field type is a simple file upload widget. It extends Symfony's default file type, and bring two extra features:

  • It allows users to ask for the deletion of the current file
  • The widget includes a "download" button that allows the user to download the file

Usage

<?php// src/Acme/SiteBundle/Form/CandidateTypepublicfunctionbuildForm(FormBuilderInterface$builder, array$options)
{
$builder->add('cv', 'snowcap_core_file', array(
'label' => 'Curriculum Vitae',
'file_path' => 'cvPath',
));
}

When Symfony displays the form widget, it will also render a "donwload" button, which is basically a link pointing to the file, as specified by the file_path option.

Options

file_path

type: string or callable required

Either a public path that can be processed by Symfony's PropertyAccess component or a callable that takes the field data as sole argument and returns a path. This path will be used to build the download button url.

allow_delete

type: boolean default: true

When true, will display a checkbox allowing users to ask for the deletion of the current file. When checked, on form submission, the field data will be replaced by an instance of Snowcap\CoreBundle\File\CondemnedFile. It is up to you to process that Condemned file instance (unless you use the SnowcapCoreBundle FileSubscriber).

delete_label

type: string default: null

The label that will be displayed next to the deletion checkbox.

download_label

type: string default: null

The label that will be displayed on the download button.

Image Field Type

The snowcap_core_image field type extends the snowcap_core_file field type. It behaves the same way, except that it is rendered differently: instead of displaying a "download" button, it will actually display the uploaded image.

Note: If you are using SnowcapImBundle, in addition to the options provided by snowcap_core_file, you can specify a im_format option. It will be used to dynamically create a thumbnail of the picture. Please refer to the SnowcapImBundle documentation for more information.

About

Bundle used to manage common shared features through all Snowcap projects

Resources

Stars

3 stars

Watchers

6 watching

Forks

Releases

Packages

Used by

Contributors

Languages