├── .gitignore ├── templates ├── index.twig ├── _humansPreview.twig ├── _robotsPreview.twig ├── _humans.twig ├── _robots.twig ├── meta │ ├── _sidebar.twig │ └── index.twig ├── _seomatic_tabs.twig ├── _error.twig ├── _robotsDefault.twig ├── _humansDefault.twig ├── _googleTagManager.twig ├── _googleDisplayPreview.twig ├── json-ld │ ├── _json-ld.twig │ └── _json-ld_core.twig ├── _googleAnalytics.twig ├── _preview_humans_modal.twig ├── _preview_robots_modal.twig ├── _facebookDisplayPreview.twig ├── _twitterCardDisplayPreview.twig ├── _preview_display_modal.twig ├── welcome.twig └── settings.twig ├── vendor ├── crodas │ ├── languagedetector │ │ ├── .gitignore │ │ ├── tests │ │ │ ├── assert │ │ │ │ ├── arabic │ │ │ │ │ ├── 1.txt │ │ │ │ │ └── 2.txt │ │ │ │ ├── french │ │ │ │ │ ├── 3.txt │ │ │ │ │ ├── 1.txt │ │ │ │ │ └── 2.txt │ │ │ │ ├── hebrew │ │ │ │ │ ├── 2.txt │ │ │ │ │ └── 1.txt │ │ │ │ ├── portuguese │ │ │ │ │ ├── 3.txt │ │ │ │ │ ├── 2.txt │ │ │ │ │ ├── 4.txt │ │ │ │ │ └── 1.txt │ │ │ │ ├── german │ │ │ │ │ ├── 6.txt │ │ │ │ │ ├── 1.txt │ │ │ │ │ ├── 7.txt │ │ │ │ │ ├── 4.txt │ │ │ │ │ ├── 3.txt │ │ │ │ │ ├── 5.txt │ │ │ │ │ └── 2.txt │ │ │ │ ├── english │ │ │ │ │ ├── 3.txt │ │ │ │ │ ├── 6.txt │ │ │ │ │ ├── 4.txt │ │ │ │ │ ├── 7.txt │ │ │ │ │ └── 2.txt │ │ │ │ ├── catalan │ │ │ │ │ ├── 4.txt │ │ │ │ │ ├── 2.txt │ │ │ │ │ ├── 1.txt │ │ │ │ │ ├── 3.txt │ │ │ │ │ └── 5.txt │ │ │ │ ├── esperanto │ │ │ │ │ ├── 1.txt │ │ │ │ │ ├── 2.txt │ │ │ │ │ └── 3.txt │ │ │ │ ├── latin │ │ │ │ │ ├── 2.txt │ │ │ │ │ ├── 4.txt │ │ │ │ │ ├── 1.txt │ │ │ │ │ └── 3.txt │ │ │ │ ├── italian │ │ │ │ │ ├── 2.txt │ │ │ │ │ ├── 1.txt │ │ │ │ │ └── 3.txt │ │ │ │ ├── euskara │ │ │ │ │ ├── 2.txt │ │ │ │ │ └── 1.txt │ │ │ │ ├── dutch │ │ │ │ │ ├── 1.txt │ │ │ │ │ └── 2.txt │ │ │ │ ├── ladino │ │ │ │ │ └── 1.txt │ │ │ │ ├── finnish │ │ │ │ │ └── 1.txt │ │ │ │ └── spanish │ │ │ │ │ ├── 2.txt │ │ │ │ │ ├── 1.txt │ │ │ │ │ └── 3.txt │ │ │ ├── bootstrap.php │ │ │ └── AssertTest.php │ │ ├── .travis.yml │ │ ├── lib │ │ │ └── LanguageDetector │ │ │ │ └── Format │ │ │ │ └── AbstractFileFormat.php │ │ ├── composer.json │ │ ├── example │ │ │ ├── learn.php │ │ │ ├── classify.php │ │ │ └── samples │ │ │ │ └── arabic │ │ └── phpunit.xml │ └── text-rank │ │ ├── tests │ │ ├── fixtures │ │ │ ├── italian.expected │ │ │ ├── english1.summary │ │ │ ├── spanish1.expected │ │ │ ├── english1.expected │ │ │ ├── spanish1.summary │ │ │ ├── italian.summary │ │ │ └── spanish1.txt │ │ ├── bootstrap.php │ │ └── QuickTest.php │ │ ├── .travis.yml │ │ ├── lib │ │ └── TextRank │ │ │ ├── Stopword │ │ │ ├── hungarian-stopwords.txt │ │ │ ├── generate.php │ │ │ ├── dutch-stopwords.txt │ │ │ ├── danish-stopwords.txt │ │ │ ├── turkish-stopwords.txt │ │ │ ├── norwegian-stopwords.txt │ │ │ ├── french-stopwords.txt │ │ │ ├── czech-stopwords.txt │ │ │ ├── italian-stopwords.txt │ │ │ ├── portuguese-stopwords.txt │ │ │ ├── english-stopwords.txt │ │ │ └── spanish-stopwords.txt │ │ │ └── POS │ │ │ └── English │ │ │ └── generate.php │ │ ├── composer.json │ │ ├── phpunit.xml │ │ ├── LICENSE │ │ ├── composer.lock │ │ └── README.md ├── autoload.php ├── composer │ ├── autoload_psr4.php │ ├── autoload_namespaces.php │ ├── autoload_classmap.php │ ├── LICENSE │ ├── autoload_real.php │ └── autoload_static.php ├── davechild │ └── textstatistics │ │ ├── phpunit.xml.dist │ │ ├── .travis.yml │ │ ├── src │ │ └── DaveChild │ │ │ └── TextStatistics │ │ │ ├── resources │ │ │ └── Homographs.txt │ │ │ └── Resource.php │ │ ├── composer.json │ │ └── LICENSE └── sunra │ └── php-simple-html-dom-parser │ ├── Src │ └── Sunra │ │ └── PhpSimple │ │ └── HtmlDomParser.php │ ├── README.md │ └── composer.json ├── resources ├── images │ ├── missing_image.png │ ├── no_image_set.png │ ├── seometrics_badge.png │ ├── humanstxt-isolated-blank.gif │ ├── seo_meta.svg │ ├── seo_site.svg │ ├── site_identity.svg │ └── site_creator.svg ├── screenshots │ ├── seomatic01.png │ ├── seomatic02.png │ ├── seomatic03.png │ ├── seomatic04.png │ ├── seomatic05.png │ ├── seomatic06.png │ ├── seomatic07.png │ └── seomatic08.png ├── css │ ├── css-reset.css │ └── seo-metrics-style.css ├── js │ ├── metalist.js │ ├── site.js │ ├── seomatic.js │ ├── creator.js │ ├── field_settings.js │ └── meta.js ├── icon.svg └── icon-mask.svg ├── composer.json ├── migrations ├── m160209_000000_seomatic_alterDescriptionsColumns.php ├── m160209_000001_seomatic_addRobotsTxt.php ├── m160227_000000_seomatic_addFacebookAppId.php ├── m151225_000000_seomatic_addHumansField.php ├── m160723_000000_seomatic_addSeoMainEntityOfPage.php ├── m160724_000000_seomatic_addSeoMainEntityCategory.php ├── m160811_000000_seomatic_addVimeo.php ├── m170212_000000_seomatic_addWikipedia.php ├── m161220_000000_seomatic_addPriceRange.php ├── m160101_000000_seomatic_addRobotsFields.php ├── m160707_000000_seomatic_addGoogleTagManager.php ├── m160206_000000_seomatic_addGoogleAnalyticsSendPageView.php ├── m170212_000000_seomatic_addGoogleAnalyticsAnonymizeIp.php ├── m151226_000000_seomatic_addTwitterFacebookFields.php ├── m160111_000000_seomatic_addTitleFields.php ├── m160904_000000_seomatic_addTwitterFacebookImages.php ├── m160204_000000_seomatic_addGoogleAnalytics.php ├── m160206_000000_seomatic_addGoogleAnalyticsPlugins.php ├── m160202_000000_seomatic_addSocialHandles.php ├── m160416_000000_seomatic_addContactPoints.php ├── m160509_000000_seomatic_addSiteLinksBing.php ├── m160122_000000_seomatic_addTypeFields.php ├── m160205_000000_seomatic_addResturantMenu.php └── m160123_000000_seomatic_addOpeningHours.php ├── LICENSE.txt ├── models ├── Seomatic_SocialModel.php └── Seomatic_SiteMetaModel.php ├── translations └── nl.php └── records └── Seomatic_MetaRecord.php /.gitignore: -------------------------------------------------------------------------------- 1 | bower_components 2 | .DS_Store 3 | .idea 4 | -------------------------------------------------------------------------------- /templates/index.twig: -------------------------------------------------------------------------------- 1 | {% redirect url('seomatic/seometrics') %} -------------------------------------------------------------------------------- /vendor/crodas/languagedetector/.gitignore: -------------------------------------------------------------------------------- 1 | vendor 2 | composer.lock 3 | -------------------------------------------------------------------------------- /templates/_humansPreview.twig: -------------------------------------------------------------------------------- 1 | {{ craft.seomatic.renderHumansTemplate() | raw }} -------------------------------------------------------------------------------- /templates/_robotsPreview.twig: -------------------------------------------------------------------------------- 1 | {{ craft.seomatic.renderRobotsTemplate() | raw }} -------------------------------------------------------------------------------- /vendor/crodas/languagedetector/tests/assert/arabic/1.txt: -------------------------------------------------------------------------------- 1 | حزب الله هم الغالبون 2 | -------------------------------------------------------------------------------- /vendor/crodas/text-rank/tests/fixtures/italian.expected: -------------------------------------------------------------------------------- 1 | Brunetta 2 | *pensioni 3 | -------------------------------------------------------------------------------- /vendor/crodas/languagedetector/tests/assert/arabic/2.txt: -------------------------------------------------------------------------------- 1 | مقلبتك يابوي 2 | يلعن ام النذاله 3 | -------------------------------------------------------------------------------- /vendor/crodas/text-rank/tests/bootstrap.php: -------------------------------------------------------------------------------- 1 | 7 |

Error: {{ errorMessage }}

8 | -------------------------------------------------------------------------------- /vendor/composer/autoload_psr4.php: -------------------------------------------------------------------------------- 1 | array($vendorDir . '/composer/installers/src/Composer/Installers'), 10 | ); 11 | -------------------------------------------------------------------------------- /vendor/crodas/text-rank/tests/fixtures/italian.summary: -------------------------------------------------------------------------------- 1 | Per l’economista Pd, a cui il premier Enrico Letta ha delegato la regia per la legge di Stabilità, ci saranno anche «interventi per rimodulare la deindicizzazione delle pensioni e «massimo impegno per evitare l’aumento dei contributi previdenziali ai lavoratori delle partite Iva» 2 | -------------------------------------------------------------------------------- /vendor/crodas/text-rank/lib/TextRank/Stopword/hungarian-stopwords.txt: -------------------------------------------------------------------------------- 1 | a 2 | az 3 | egy 4 | be 5 | ki 6 | le 7 | fel 8 | meg 9 | el 10 | át 11 | rá 12 | ide oda 13 | szét 14 | össze 15 | vissza 16 | de 17 | hát 18 | és 19 | vagy 20 | hogy 21 | van 22 | lesz 23 | volt csak 24 | nem 25 | igen 26 | mint 27 | én 28 | te 29 | õ 30 | mi 31 | ti 32 | õk 33 | ön 34 | -------------------------------------------------------------------------------- /vendor/crodas/languagedetector/tests/assert/german/6.txt: -------------------------------------------------------------------------------- 1 | Die Geschichte Barcelonas begann vor 2000 Jahren mit der iberischen Siedlung Barkeno. Ihre leicht zu verteidigende Lage auf einer Küstenebene zwischen dem Collserola-Kamm und dem Mittelmeer auf dem Weg von Mitteleuropa zur Iberischen Halbinsel hat die Bedeutung dieser Stadt durch alle Zeiten sichergestellt. 2 | 3 | -------------------------------------------------------------------------------- /vendor/crodas/languagedetector/tests/assert/german/1.txt: -------------------------------------------------------------------------------- 1 | Kreise - Italiens Präsident könnte rasche Neuwahl ermöglichen 2 | Rom (Reuters) - Der italienische Präsident Giorgio Napolitano erwägt Kreisen zufolge einen sofortigen Rücktritt, um den Weg für Parlamentswahlen freizumachen. Hintergrund sind die gescheiterten Bemühungen, eine neue Regierung zu finden. Der Rücktritt ... 3 | -------------------------------------------------------------------------------- /vendor/davechild/textstatistics/phpunit.xml.dist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | ./tests/ 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /vendor/davechild/textstatistics/.travis.yml: -------------------------------------------------------------------------------- 1 | language: php 2 | before_script: 3 | - wget http://getcomposer.org/composer.phar 4 | - php composer.phar install --dev 5 | php: 6 | - 5.3 7 | script: phpunit --coverage-clover=coverage.clover 8 | after_script: 9 | - wget https://scrutinizer-ci.com/ocular.phar 10 | - php ocular.phar code-coverage:upload --format=php-clover coverage.clover 11 | -------------------------------------------------------------------------------- /vendor/crodas/languagedetector/tests/assert/english/3.txt: -------------------------------------------------------------------------------- 1 | nnouncement 2 | Do you want to help seed? We are always looking for new seeders who can sustain 10mbit and/or higher upload speeds! 3 | 4 | If you think you would be able to help seed at least five new torrents a day, likes the thought of receiving the shows 5 | before everyone else while giving back to the community, and have some free time - please stop by our IRC channel and contact an op. 6 | -------------------------------------------------------------------------------- /vendor/crodas/text-rank/lib/TextRank/POS/English/generate.php: -------------------------------------------------------------------------------- 1 | path = $path; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /vendor/crodas/text-rank/lib/TextRank/Stopword/dutch-stopwords.txt: -------------------------------------------------------------------------------- 1 | aan 2 | af 3 | al 4 | als 5 | bij 6 | dan 7 | dat 8 | die 9 | dit 10 | een 11 | en 12 | er 13 | had 14 | heb 15 | hem 16 | het 17 | hij 18 | hoe 19 | hun 20 | ik 21 | in 22 | is 23 | je 24 | kan 25 | me 26 | men 27 | met 28 | mij 29 | nog 30 | nu 31 | of 32 | ons 33 | ook 34 | te 35 | tot 36 | uit 37 | van 38 | was 39 | wat 40 | we 41 | wel 42 | wij 43 | zal 44 | ze 45 | zei 46 | zij 47 | zo 48 | zou 49 | -------------------------------------------------------------------------------- /vendor/davechild/textstatistics/src/DaveChild/TextStatistics/resources/Homographs.txt: -------------------------------------------------------------------------------- 1 | Homographs which have different syllables depending upon their meaning. 2 | 3 | agape 4 | aged 5 | blessed 6 | coax 7 | coop 8 | crooked 9 | cube 10 | denier 11 | dogged 12 | ewe 13 | file 14 | fine 15 | forte 16 | hades 17 | jagged 18 | lame 19 | learned 20 | legged 21 | lineage 22 | mare 23 | moped 24 | pate 25 | prayer 26 | ragged 27 | real 28 | rose 29 | sake 30 | separate 31 | tier 32 | -------------------------------------------------------------------------------- /vendor/composer/autoload_namespaces.php: -------------------------------------------------------------------------------- 1 | array($vendorDir . '/sunra/php-simple-html-dom-parser/Src'), 10 | 'LanguageDetector' => array($vendorDir . '/crodas/languagedetector/lib'), 11 | 'DaveChild\\TextStatistics' => array($vendorDir . '/davechild/textstatistics/src'), 12 | ); 13 | -------------------------------------------------------------------------------- /vendor/crodas/languagedetector/tests/assert/esperanto/1.txt: -------------------------------------------------------------------------------- 1 | Lucy LAWLESS, naskiĝis kiel Lucille Frances Ryan (* 29-a de marto 1968 en Mount Albert, Nov-Zelando) estas novzelanda aktorino. 2 | Ŝi iĝis mondkonata en la rolo de Xena, kiel ĉefrolulo de la televida serio. Ŝi ankaŭ rolludis en etaj roloj, kiel en la kineja filmo "Spiderman" aŭ en la TV-serio "Tarzan" en 2002. Ŝi ankaŭ donis sian voĉon ĉe "The Simpsons". 3 | Ŝi estas edziniĝinta ekde 1998 kun Robert G. Tapert, produktisto de la serio "Xena". 4 | [redakti] 5 | -------------------------------------------------------------------------------- /vendor/crodas/languagedetector/tests/assert/german/7.txt: -------------------------------------------------------------------------------- 1 | PHP (rekursives Akronym und Backronym für „PHP: Hypertext Preprocessor“, ursprünglich „Personal Home Page Tools“) ist eine Skriptsprache mit einer an C und Perl angelehnten Syntax, die hauptsächlich zur Erstellung dynamischer Webseiten oder Webanwendungen verwendet wird.[2] PHP wird als freie Software unter der PHP-Lizenz verbreitet. PHP zeichnet sich durch die breite Datenbankunterstützung[3] und Internet-Protokolleinbindung sowie die Verfügbarkeit zahlreicher Funktionsbibliotheken[4] aus. 2 | -------------------------------------------------------------------------------- /vendor/crodas/text-rank/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "crodas/text-rank", 3 | "description": "Extract relevant keywords from a given text", 4 | "require": { 5 | "ext-mbstring": "*", 6 | "crodas/languagedetector": "~0.1" 7 | }, 8 | "suggest": { 9 | "ext-stem": "Improves keywords selection" 10 | }, 11 | "authors": [ 12 | { 13 | "name": "César D. Rodas", 14 | "email": "crodas@php.net" 15 | } 16 | ], 17 | "minimum-stability": "dev", 18 | "autoload": { 19 | "classmap":["lib/"] 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /vendor/crodas/languagedetector/tests/assert/catalan/2.txt: -------------------------------------------------------------------------------- 1 | El claustre d'estil romànic del Mas del Vent de Palamós és un conjunt arquitectònic suposadament datat del segle XII i que s'ha considerat procedent de Castella que es troba dins d'una finca privada des de 1959. La seva troballa va sortir a la premsa a inicis de juny de 2012 gràcies a la investigació de Gerardo Boto, investigador del Departament d'Història i Història de l'Art de la Universitat de Girona,[1] tot i que varis documents anteriors ja tenien constància de la seva existència.[2][3] L'obra està mancada de qualsevol catalogació o protecció.[4] 2 | 3 | -------------------------------------------------------------------------------- /templates/_humansDefault.twig: -------------------------------------------------------------------------------- 1 | /* TEAM */ 2 | 3 | {% if seomaticCreator.name is defined and seomaticCreator.name %} 4 | Creator: {{ seomaticCreator.name }} 5 | {% endif %} 6 | {% if seomaticCreator.url is defined and seomaticCreator.url %} 7 | URL: {{ seomaticCreator.url }} 8 | {% endif %} 9 | {% if seomaticCreator.description is defined and seomaticCreator.description %} 10 | Description: {{ seomaticCreator.description }} 11 | {% endif %} 12 | 13 | /* THANKS */ 14 | 15 | Pixel & Tonic - https://pixelandtonic.com 16 | 17 | /* SITE */ 18 | 19 | Standards: HTML5, CSS3 20 | Components: Craft CMS, Yii, PHP, Javascript, SEOmatic -------------------------------------------------------------------------------- /vendor/crodas/languagedetector/tests/assert/latin/2.txt: -------------------------------------------------------------------------------- 1 | Cybele (Graece: Κυβέλη) seu Cybebe (Κυβήβη) est dea Phrygia, cuius praecipuum templum Pessinunte situm erat. Cultus huius deae bello Punico secundo anno 204 a.C.n. Romam introductus est, ob fabulam de originibus Troianis Romanorum. Etenim Troia urbs Phrygia[1] erat et Cybele Magna Mater Idaea vocata est, id est montis Idae prope Troiam. Praeterea illo tempore populus Romanus societatem cum Attalo rege Pergamenorum adversus Macedones iniit. Qui rex baetulum nigrum (quo dea figurabatur), sive ex Pessinunte sive ex delubro Pergameno,[2] populo Romano donavit. Cui lapidi templum in monte Palatino aedificatum est. 2 | 3 | -------------------------------------------------------------------------------- /templates/_googleTagManager.twig: -------------------------------------------------------------------------------- 1 | {% if seomaticHelper.ownerGoogleTagManagerID %} 2 | 10 | {% endif %} -------------------------------------------------------------------------------- /vendor/crodas/languagedetector/tests/assert/english/6.txt: -------------------------------------------------------------------------------- 1 | Mayday is an emergency procedure word used internationally as a distress signal in voice procedure radio communications. It derives from the French venez m'aider, meaning "come help me".[1] 2 | It is used to signal a life-threatening emergency primarily by mariners and aviators, but in some countries local organisations such as police forces, firefighters, and transportation organizations also use the term. The call is always given three times in a row ("Mayday Mayday Mayday") to prevent mistaking it for some similar-sounding phrase under noisy conditions, and to distinguish an actual Mayday call from a message about a Mayday call. 3 | 4 | -------------------------------------------------------------------------------- /templates/_googleDisplayPreview.twig: -------------------------------------------------------------------------------- 1 |
2 |

3 | {{ seomaticMeta.og.title |raw }} 4 |

5 |
6 |
7 |
8 | {{ seomaticMeta.canonicalUrl | replace({'http://': ''}) | replace({'https://': ''}) }} 9 |
10 | 11 |
12 |
13 | {{ seomaticMeta.seoDescription |raw }} 14 |
15 |
16 |
-------------------------------------------------------------------------------- /vendor/crodas/languagedetector/tests/assert/italian/2.txt: -------------------------------------------------------------------------------- 1 | Lucille Frances Ryan (Mount Albert, 29 marzo 1968) è un'attrice e cantante neozelandese, è conosciuta soprattutto per il personaggio eponimo della serie televisiva Xena - Principessa guerriera, prodotta dal 1995 al 2001. 2 | 3 | Quinta figlia di Frank e di Julie Ryan, Lucy ha iniziato ad appassionarsi al teatro quando inizia la scuola secondaria. Ha studiato lingue straniere all'università di Auckland, per un anno, poi ha lasciato la scuola ed è partita per l'Europa con il suo ragazzo, Garth Lawless, per viaggiare in Germania e in Svizzera. Si sono guadagnati da vivere facendo lavori occasionali e addirittura lavorando presso una compagnia mineraria in Australia. 4 | 5 | -------------------------------------------------------------------------------- /vendor/crodas/languagedetector/tests/assert/italian/1.txt: -------------------------------------------------------------------------------- 1 | Xena - Principessa guerriera (Xena: Warrior Princess) è una serie televisiva statunitense di ambientazione fantasy mitologico. Prodotta dal 1995 al 2001, nacque come spin-off della serie Hercules. 2 | Fantasy storico ambientato nell'antica Grecia (pur ricca di anacronismi ed imprecisioni), la serie narra le avventure di Xena (già personaggio antagonista di Hercules nell'omonima serie, interpretata da Lucy Lawless), una signora della guerra pentita, in viaggio per redimere i suoi peccati passati. Xena è accompagnata nei suoi viaggi da Olimpia (Renée O'Connor), una giovane donna che diventa la sua migliore amica e la sua alleata più fidata. La serie è stata girata in Nuova Zelanda. 3 | -------------------------------------------------------------------------------- /vendor/sunra/php-simple-html-dom-parser/Src/Sunra/PhpSimple/HtmlDomParser.php: -------------------------------------------------------------------------------- 1 | alterColumn('seomatic_settings', 'genericOwnerDescription', array(ColumnType::Varchar, 'maxLength' => 1024)); 18 | $this->alterColumn('seomatic_settings', 'genericCreatorDescription', array(ColumnType::Varchar, 'maxLength' => 1024)); 19 | 20 | // return true and let craft know its done 21 | return true; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /vendor/crodas/languagedetector/example/learn.php: -------------------------------------------------------------------------------- 1 | useMb(true); 15 | 16 | $c = new Learn($config); 17 | foreach (glob(__DIR__ . '/samples/*') as $file) { 18 | $c->addSample(basename($file), file_get_contents($file)); 19 | } 20 | $c->addStepCallback(function($lang, $status) { 21 | echo "Learning {$lang}: $status\n"; 22 | }); 23 | $c->save(AbstractFormat::initFormatByPath(__DIR__ . '/datafile.php')); 24 | $c->save(AbstractFormat::initFormatByPath(__DIR__ . '/datafile.ses')); 25 | $c->save(AbstractFormat::initFormatByPath(__DIR__ . '/datafile.json')); 26 | -------------------------------------------------------------------------------- /vendor/sunra/php-simple-html-dom-parser/README.md: -------------------------------------------------------------------------------- 1 | php-simple-html-dom-parser 2 | ========================== 3 | 4 | Version 1.5 5 | 6 | Adaptation for Composer and PSR-0 of: 7 | 8 | A HTML DOM parser written in PHP5+ let you manipulate HTML in a very easy way! 9 | Require PHP 5+. 10 | Supports invalid HTML. 11 | Find tags on an HTML page with selectors just like jQuery. 12 | Extract contents from HTML in a single line. 13 | 14 | http://simplehtmldom.sourceforge.net/ 15 | 16 | 17 | Install 18 | ------- 19 | 20 | composer.phar 21 | ```json 22 | "require": { 23 | "sunra/php-simple-html-dom-parser": "v1.5.0" 24 | } 25 | ``` 26 | 27 | Usage 28 | ----- 29 | 30 | ```php 31 | use Sunra\PhpSimple\HtmlDomParser; 32 | 33 | ... 34 | $dom = HtmlDomParser::str_get_html( $str ); 35 | or 36 | $dom = HtmlDomParser::file_get_html( $file_name ); 37 | 38 | $elems = $dom->find($elem_name); 39 | ... 40 | 41 | ``` 42 | -------------------------------------------------------------------------------- /resources/js/seomatic.js: -------------------------------------------------------------------------------- 1 | // LOAD EVENTS 2 | 3 | $(function () { 4 | 5 | $('#preview-seometrics').on('click', function(e) { 6 | 7 | // Prevents the default action to be triggered. 8 | e.preventDefault(); 9 | 10 | // Triggering bPopup when click event is fired 11 | $('#preview-seometrics-popup').bPopup(); 12 | 13 | }); 14 | 15 | $('#preview-display').on('click', function(e) { 16 | 17 | // Prevents the default action to be triggered. 18 | e.preventDefault(); 19 | 20 | // Triggering bPopup when click event is fired 21 | $('#preview-display-popup').bPopup(); 22 | 23 | }); 24 | 25 | $('#preview-tags').on('click', function(e) { 26 | 27 | // Prevents the default action to be triggered. 28 | e.preventDefault(); 29 | 30 | // Triggering bPopup when click event is fired 31 | $('#preview-tags-popup').bPopup(); 32 | 33 | }); 34 | 35 | }); -------------------------------------------------------------------------------- /vendor/composer/autoload_classmap.php: -------------------------------------------------------------------------------- 1 | $vendorDir . '/crodas/text-rank/lib/TextRank/Config.php', 10 | 'crodas\\TextRank\\DefaultEvents' => $vendorDir . '/crodas/text-rank/lib/TextRank/DefaultEvents.php', 11 | 'crodas\\TextRank\\POS\\English\\Tagger' => $vendorDir . '/crodas/text-rank/lib/TextRank/POS/English/Tagger.php', 12 | 'crodas\\TextRank\\Stopword' => $vendorDir . '/crodas/text-rank/lib/TextRank/Stopword.php', 13 | 'crodas\\TextRank\\Summary' => $vendorDir . '/crodas/text-rank/lib/TextRank/Summary.php', 14 | 'crodas\\TextRank\\SummaryPageRank' => $vendorDir . '/crodas/text-rank/lib/TextRank/SummaryPageRank.php', 15 | 'crodas\\TextRank\\TextRank' => $vendorDir . '/crodas/text-rank/lib/TextRank/TextRank.php', 16 | ); 17 | -------------------------------------------------------------------------------- /vendor/crodas/languagedetector/tests/assert/catalan/3.txt: -------------------------------------------------------------------------------- 1 | Segons el càlcul de Gerardo Boto, les galeries fan 23,8 i 23,9 metres de llargada. Dues d'elles presenten deu arcs sobre columnes i capitells dobles, excepte la del mig, que és quàdruple. De les altres dues galeries que acabarien de tancar el claustre de 44 capitells no se'n conserven columnes ni arcs i els capitells reposen directament sobre les bases.[7] Envoltat de pins, oliveres i garrofers,[8] compta amb un petit teulat de ferro que el protegeix de la humitat.[9] 2 | [modifica] 3 | 4 | El claustre del Mas del Vent, segons Gerardo Boto, historiador de l'art nascut a Lleó, és d'enormes proporcions. Els capitells superen les mides de qualsevol altre conjunt conegut i els arcs fan 3,21 metres des del fust a la clau.[5][6] Alguns capitells mostren figures humanes i gran nombre d'elements vegetals i animals, sobretot aus, lleons i senglars i monstres, tot i que no hi ha cap motiu religiós.[1][4] 5 | 6 | -------------------------------------------------------------------------------- /vendor/crodas/languagedetector/tests/assert/ladino/1.txt: -------------------------------------------------------------------------------- 1 | La Lingua Neerlandesa pertenese a la famiya jermanika del grup de las linguas indoevropeas. Konforma parte del grupo jermániko oksidental, relasionada kon el basho alemán. Es la lingua materna de unos 22,5 milyones de personas enel mundo. 2 | Es lingua ofisiala en losPayises Bashos[1], Karibe Neerlandez, Sint Maarten, Kurasao i Aruba), en Beljika (en las rejiones[2] de Flandes i Rejion de Bruselas-Kapitala[3]) i en Surinam. Por ekstensión es también una de las linguas ofisialas de la Union Evropea i de la Union de Nasiones Sudamerikanas. 3 | Sin ser ofisial es avlado también komo lingua materna en la rejión del basho Rin de Almania i en el nord de Fransia (unos 60.000 avlantes). Shukur a la kolonizasión i la emigrasión se avla también en Kanada (unos 129.000), en Estatos Unitos,[4] en Mueva Zelanda (unos 29.000) i en alkunas partes de Indonesya, ande era la lingua uzada en la administrasión públika kolonial olandeza. 4 | -------------------------------------------------------------------------------- /templates/json-ld/_json-ld.twig: -------------------------------------------------------------------------------- 1 | {# -------------------------------------------------------------------------------- 2 | This is rendered via 3 | -------------------------------------------------------------------------------- #} 4 | {% set level = 0 %} 5 | -------------------------------------------------------------------------------- /vendor/crodas/languagedetector/tests/assert/english/4.txt: -------------------------------------------------------------------------------- 1 | "Doctor Who" depicts the adventures of a mysterious and eccentric Time Lord known as the Doctor (Matt Smith -11th doctor) who travels through time and space in his time machine, the TARDIS, which normally appears from the exterior to be a blue 1960s British police box. With his companions, he explores time and space, faces a variety of foes and saves civilizations, helping people and righting wrongs. 2 | 3 | Note: Doctor Who Confidential -- In September 2011, BBC controller Zai Bennett cancelled the series as a cost-cutting measure. People involved with the show such as Neil Gaiman who wrote "The Doctor's Wife" and Tom MacRae who wrote "The Girl Who Waited" have also expressed their concern with the axing of the programme. In 2012, seventh series executive producer Caroline Skinner announced that small behind-the-scenes features would be released on the BBC's Doctor Who website to make up for Confidential's cancellation. 4 | 5 | -------------------------------------------------------------------------------- /vendor/crodas/languagedetector/tests/assert/esperanto/2.txt: -------------------------------------------------------------------------------- 1 | Barcelono (Katalune: Barcelona) estas la ĉefurbo de la aŭtonoma Regiono de Katalunio, nord-oriente en Hispanio. Tio situas ĉe Mediteraneo, 160 km sude de Pireneoj kaj la franca limo. La urbo estas la 2-a plejgranda en Hispanio kaj la plej granda de Katalunio (loĝantaro 1,6 milionoj. Se oni alkalkulas la loĝantaron de la ĉirkaŭaĵo, tiam la nombro superas 3 milionojn). 2 | En la jaro 1992 okazis la Olimpiaj ludoj en Barcelono. Somere 2004 okazis la Internacia Forumo de Kulturoj. 3 | 4 | Pro sia historio Barcelono havas elstaregan gotikan arkitekturon, kiu 5 | konserviĝis pro la stagnado de la urbo dum jarcentoj. Nova etapo de ekonomia 6 | bonfarto koincidis kun la ekspansio de la urbo, tial ke ĝia impona kolekto de 7 | modernismaj konstruaĵoj (kun ok Mondaj Kulturheredaĵoj de Unesko) ne stariĝis 8 | sur la malnovaj mezepokaj palacoj. Nuntempe Barcelono plu aperigas novajn 9 | elstarajn konstruaĵojn, kiel Torre Agbar (2005). 10 | 11 | -------------------------------------------------------------------------------- /vendor/crodas/languagedetector/tests/assert/latin/1.txt: -------------------------------------------------------------------------------- 1 | Nonnumquam enim in Anatolia sub specie saxi vel petrae in antro venerabatur.[3] Saepius tamen, ut ceterae deae Graecae et Romanae, sub specie pulchrae mulieris sculpebatur vel in nummis exprimebatur : tunc coronam turritam in capite gerebat (ut Fortunae (Graece Τύχαι) poliades : urbem Romam enim tuebatur[4]) et bigis leonum plerumque vehebatur. Etiam cum in throno sedebat, leones ad pedes iacebant vel catulum leonis in sinu retinebat. In nonnullis nummis Romanis, in magno altari Pergameno ac postea etiam Romae in ipsa spina circi prope obeliscum, in tergo leonis sedens ostenditur. Alibi nonnumquam tympanum manu tenet, aut etiam cornucopiam vel spicas frumenti.[5] Saepe sola erat nisi eam deus paredrus Attis vel armati saltatores, quibus Corybantibus nomen erat, comitabantur. 2 | 3 | In templo Palatino lapis niger ex Pessinunte in statuam inclusus vultum deae reddebat.[6] Unum e divinis pignoribus erat, quae diuturnitatem Imperii Romani sanciebant. 4 | -------------------------------------------------------------------------------- /vendor/crodas/languagedetector/tests/assert/dutch/2.txt: -------------------------------------------------------------------------------- 1 | Het Nederlands is nauw verwant aan het Engels en Duits, en wordt tussen beide geplaatst. Naast het feit dat het Nederlands de Hoogduitse klankverschuiving niet heeft ondergaan, verschilt het Nederlands – net als het Engels – verder ook van het Duits door de sterke reductie van de naamvallen, de algemene zeldzaamheid van de Germaanse umlaut en een meer regelmatige morfologie. Het moderne Nederlands heeft in oorsprong drie grammaticale geslachten, waarvan er twee in de praktijk grotendeels samenvallen (de de-woorden). Bijgevolg speelt het grammaticale geslacht een kleinere grammaticale rol dan in het Duits. De Nederlandse woordvolgorde is onderwerp-werkwoord-lijdend voorwerp (SVO) in hoofdzinnen maar past, net als in het Duits, inversie toe in bijzinnen (SOV). Het Nederlands kent een hoofdzakelijk Germaanse woordenschat, in grotere mate dan het sterk geromaniseerde Engels, maar aangevuld door een grotere Romaanse component dan in het Duits. 2 | [bewerken] 3 | -------------------------------------------------------------------------------- /vendor/crodas/text-rank/tests/fixtures/spanish1.txt: -------------------------------------------------------------------------------- 1 | El “Operativo Frontera Sur”, que se puso en marcha con alrededor de 100 militares, en la región de Foz de Yguazú, en el oeste del estado de Paraná, tiene como objetivo combatir el tráfico de drogas y de armas, informa el portal Vanguardia. 2 | 3 | “El operativo que se inició hoy tiene fecha de inicio pero no de culminación. El objetivo es el combate a los crímenes transfronterizos, principalmente la entrada de drogas, armas y municiones por esta frontera oeste del país”, comentó el comandante do Ejército en Foz de Yguazú, el teniente coronel Messias Coelho Freitas. 4 | 5 | Dentro del marco del operativo, de duración indefinida, se tiene previsto bloqueos en las aduanas del Puente de la Amistad, frontera con nuestro país y en Tancredo Neves, que une a Brasil con Argentina. 6 | 7 | Los efectivos militares, realizaron desde este lunes ya intensos controles, tanto a peatones y como vehículos, que ingresaban con mercaderías desde Ciudad del Este. 8 | 9 | 10 | -------------------------------------------------------------------------------- /templates/json-ld/_json-ld_core.twig: -------------------------------------------------------------------------------- 1 | {% for key,value in object %} 2 | {% if value is iterable %}{% if value|keys|first=="0" %}{%for i in 0..level %} {% endfor %}"{{ key |raw }}": [{% for subValue in value %}{% if subValue is iterable %} 3 | 4 | {%for i in 0..level+1 %} {% endfor %}{ 5 | {% include 'json-ld/_json-ld_core' with {'object': subValue, 'level': (level + 2) } only %} 6 | {%for i in 0..level+1 %} {% endfor %}}{% if not loop.last%},{% else %} 7 | 8 | {%for i in 0..level %} {% endfor %} 9 | {% endif %}{% else %}"{{ subValue |raw }}"{% if not loop.last%},{% endif %}{% endif %}{% endfor %}]{% else %}{%for i in 0..level %} {% endfor %}"{{ key |raw }}": { 10 | {% include 'json-ld/_json-ld_core' with {'object': value, 'level': (level + 1) } only %}{%for i in 0..level %} {% endfor %}}{% endif %}{% else %}{%for i in 0..level %} {% endfor %}"{% if key == "type" %}@{% endif %}{{ key |raw }}": "{{ value |raw }}"{% endif %}{% if not loop.last %}, 11 | {% else %} 12 | {% endif %} 13 | {% endfor %} -------------------------------------------------------------------------------- /vendor/sunra/php-simple-html-dom-parser/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "sunra/php-simple-html-dom-parser", 3 | "type": "library", 4 | "description": "Composer adaptation of: A HTML DOM parser written in PHP5+ let you manipulate HTML in a very easy way! Require PHP 5+. Supports invalid HTML. Find tags on an HTML page with selectors just like jQuery. Extract contents from HTML in a single line.", 5 | "keywords": ["html", "dom", "parser"], 6 | "homepage": "https://github.com/sunra/php-simple-html-dom-parser", 7 | "license": "MIT", 8 | "authors": [ 9 | { 10 | "homepage": "http://sourceforge.net/projects/simplehtmldom/" 11 | }, 12 | { 13 | "name": "Sunra", 14 | "email": "sunra@yandex.ru", 15 | "homepage": "https://github.com/sunra" 16 | } 17 | ], 18 | "require": { 19 | "php": ">=5.3.2" 20 | }, 21 | "autoload": { 22 | "psr-0": { "Sunra\\PhpSimple\\HtmlDomParser": "Src/" } 23 | } 24 | } -------------------------------------------------------------------------------- /vendor/crodas/languagedetector/tests/assert/german/4.txt: -------------------------------------------------------------------------------- 1 | Barcelona (kat. [bəɾsəˈɫonə]; span. [baɾθeˈlona]; dt. [baʁtseˈloːna], 2 | zunehmend auch [baʁseˈloːna]) ist die Hauptstadt Kataloniens und 3 | zweitgrößte Stadt Spaniens. Sie liegt am Mittelmeer, circa 120 Kilometer 4 | südlich der Pyrenäen und der Grenze zu Frankreich. Barcelona ist 5 | Verwaltungssitz der gleichnamigen Provinz und der Comarca Barcelonès. 6 | Innerhalb des Stadtgebietes leben etwa 1,6 Millionen Menschen, darunter 15,9 7 | Prozent Ausländer (Stand: 31. Dezember 2005). Somit ist Barcelona die 8 | elftgrößte Gemeinde der Europäischen Union, nach Hamburg die zweitgrößte, die 9 | nicht die Hauptstadt eines Mitgliedstaates ist und die nach Paris am 10 | dichtesten besiedelte Millionenstadt Europas. Zusammen mit den in der Àrea 11 | Metropolitana de Barcelona zusammengeschlossenen Gemeinden der Agglomeration 12 | beträgt die Einwohnerzahl 3,16 Millionen. Im weiteren Einzugsbereich der 13 | Metropolregion (Àmbit Metropolità de Barcelona) leben insgesamt 4,86 Millionen 14 | Menschen. 15 | -------------------------------------------------------------------------------- /vendor/crodas/languagedetector/tests/assert/finnish/1.txt: -------------------------------------------------------------------------------- 1 | Suomen tasavalta eli Suomi (ruots. Republiken Finland, Finland) on valtio Pohjois-Euroopassa Itämeren rannalla. Suomi kuuluu Pohjoismaihin ja Euroopan unioniin. Se rajautuu idässä Venäjään ja siihen kuuluvaan Karjalan tasavaltaan, pohjoisessa Norjaan ja lännessä Ruotsiin. Etelässä lähin maa on Viro Suomenlahden eteläpuolella. Ahvenanmaa on Suomen demilitarisoitu maakunta, jolla on itsehallinto. 2 | Suomi kuuluu maapallon lämpövyöhykkeistä pääosin lauhkeaan vyöhykkeeseen ja sen pohjoisosaan, jota voidaan nimittää myös viileäksi vyöhykkeeksi. Kasvillisuusvyöhykkeistä Suomi kuuluu pääosin pohjoiseen havumetsävyöhykkeeseen. 3 | Suomi on verraten harvaan asuttu maa, ja sen 5,4 miljoonaa asukasta[7] keskittyvät pääosin maan etelä- ja keskiosiin. Maan perustuslaki määrittelee kansalliskieliksi suomen (puhujia 90,0 % väestöstä vuoden 2011 lopussa) ja ruotsin (5,4 %).[8] 4 | Suomi valittiin maailman onnistuneimmaksi maaksi vuonna 2012.[9] Kategorioina ovat muun muassa tasa-arvo, köyhyys ja valtion talous, ihmisoikeudet ja turvallisuus.[10] 5 | -------------------------------------------------------------------------------- /vendor/crodas/languagedetector/tests/assert/latin/3.txt: -------------------------------------------------------------------------------- 1 | Per multa iam saecula Cybele dea mater et domina ferarum in Anatolia et in oriente Mediterraneo fuerat, cum Graeci eam colere saeculo sexto a.C.n. coeperunt : tum Rheae, uxori Croni, adsimulata est. Itaque Mater Deum dicebatur et in Aeneide Iovem velut filium suum adloquitur.[7] Etiam cum Demetre nonnumquam partim confundebatur. Apud Romanos non tantum cum Ope,[8] Saturni uxore, quae eadem esse atque Rhea putabatur, sed etiam cum tellure confundebatur, quae alma dea fruges et alios cibos hominibus suppeditabat. Lucretius similitudine verborum ludens sic huius facti rationem reddit : fruges in Phrygia primum apparuisse.[9] Et anno quo dea Romam vecta est messes uberiores fuisse dicuntur quam prioribus annis[10]. Ut Terra eos recipiens etiam dea mortuorum fuit. Postea a secundo saeculo p.C., dum theologi pagani diversas deas in unum numen cogere conantur, Cybele multis aliis quoque deabus adsimulatur : Minerva/Bellona/Virtus, Demeter/Ceres, Proserpina, Diana, Isis.[11] Atque orgia Magnae Matris saepe a Graecis cum Bacchanalibus confundebantur[12]. 2 | 3 | -------------------------------------------------------------------------------- /vendor/davechild/textstatistics/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "davechild/textstatistics", 3 | "description": "PHP package to measure the readability of text according to various algorithms.", 4 | "homepage": "https://github.com/DaveChild/Text-Statistics", 5 | "authors": [ 6 | { 7 | "name": "Dave Child", 8 | "email": "dave@addedbytes.com", 9 | "homepage": "https://www.addedbytes.com/", 10 | "role": "Developer" 11 | } 12 | ], 13 | "license": "BSD-2-Clause", 14 | "require": { 15 | "php": ">=5.3.0" 16 | }, 17 | "require-dev": { 18 | "phpunit/phpunit": "4.2.*" 19 | }, 20 | "autoload": { 21 | "psr-0" : { 22 | "DaveChild\\TextStatistics" : "src" 23 | } 24 | }, 25 | "extra": { 26 | "branch-alias": { 27 | "dev-master": "1.0.x-dev" 28 | } 29 | }, 30 | "suggest": { 31 | "ext-bcmath": "More accurate floating point calculations.", 32 | "ext-mbstring": "Handle multi-byte text properly." 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /vendor/crodas/text-rank/lib/TextRank/Stopword/danish-stopwords.txt: -------------------------------------------------------------------------------- 1 | af 2 | alle 3 | andet 4 | andre 5 | at 6 | begge 7 | da 8 | de 9 | den 10 | denne 11 | der 12 | deres 13 | det 14 | dette 15 | dig 16 | din 17 | dog 18 | du 19 | ej 20 | eller 21 | en 22 | end 23 | ene 24 | eneste 25 | enhver 26 | et 27 | fem 28 | fire 29 | flere 30 | fleste 31 | for 32 | fordi 33 | forrige 34 | fra 35 | få 36 | før 37 | god 38 | han 39 | hans 40 | har 41 | hendes 42 | her 43 | hun 44 | hvad 45 | hvem 46 | hver 47 | hvilken 48 | hvis 49 | hvor 50 | hvordan 51 | hvorfor 52 | hvornår 53 | i 54 | ikke 55 | ind 56 | ingen 57 | intet 58 | jeg 59 | jeres 60 | kan 61 | kom 62 | kommer 63 | lav 64 | lidt 65 | lille 66 | man 67 | mand 68 | mange 69 | med 70 | meget 71 | men 72 | mens 73 | mere 74 | mig 75 | ned 76 | ni 77 | nogen 78 | noget 79 | ny 80 | nyt 81 | nær 82 | næste 83 | næsten 84 | og 85 | op 86 | otte 87 | over 88 | på 89 | se 90 | seks 91 | ses 92 | som 93 | stor 94 | store 95 | syv 96 | ti 97 | til 98 | to 99 | tre 100 | ud 101 | var 102 | -------------------------------------------------------------------------------- /vendor/composer/LICENSE: -------------------------------------------------------------------------------- 1 | 2 | Copyright (c) 2016 Nils Adermann, Jordi Boggiano 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is furnished 9 | to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in all 12 | copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | 22 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | The SEOmatic License 2 | Copyright (c) 2015 nystudio107 3 | 4 | Permission is hereby granted, free of charge, to any person or entity obtaining a copy of this software and associated documentation files (the "Software"), to use the software in any capacity, including commercial and for-profit use. Permission is also granted to alter, modify, or extend the Software for your own use, or commission a third-party to perform modifications for you. 5 | 6 | Permission is NOT granted to create derivative works, sublicense, and/or sell copies of the Software. This is not FOSS software. 7 | 8 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 9 | 10 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /models/Seomatic_SocialModel.php: -------------------------------------------------------------------------------- 1 | array(AttributeType::String, 'default' => ''), 14 | 'twitterHandle' => array(AttributeType::String, 'default' => ''), 15 | 'facebookHandle' => array(AttributeType::String, 'default' => ''), 16 | 'facebookProfileId' => array(AttributeType::String, 'default' => ''), 17 | 'linkedInHandle' => array(AttributeType::String, 'default' => ''), 18 | 'googlePlusHandle' => array(AttributeType::String, 'default' => ''), 19 | 'youtubeHandle' => array(AttributeType::String, 'default' => ''), 20 | 'instagramHandle' => array(AttributeType::String, 'default' => ''), 21 | 'pinterestHandle' => array(AttributeType::String, 'default' => ''), 22 | )); 23 | } 24 | 25 | } /* -- class Seomatic_SocialModel */ -------------------------------------------------------------------------------- /vendor/crodas/languagedetector/tests/assert/german/3.txt: -------------------------------------------------------------------------------- 1 | Die Deutsche Bahn soll für dieses und das kommende Jahr vom Bund insgesamt 500 Millionen Euro zusätzlich erhalten, um Bahnhöfe sicherer und barrierefrei zu gestalten sowie um Eisenbahnbrücken zu sanieren. Das Geld stammt aus Mitteln, die der Bahn eigentlich für den Neu- und Ausbau von Strecken zur Verfügung gestellt worden waren, bei denen sie es jedoch nicht geschafft hatte, sie rechtzeitig zu verbauen. Daher will Bundesverkehrsminister Peter Ramsauer das Geld nun in den Topf für Erhaltungsmaßnahmen umschichten. 2 | 3 | "Bahnhöfe sind das Aushängeschild der Bahn und die Visitenkarte der Städte", sagte er zur Süddeutschen Zeitung. "Mit den Sondermitteln wollen wir die Bahn dabei unterstützen, die dringendsten Umbaumaßnahmen zügig voranzutreiben." 4 | 5 | ANZEIGE 6 | 7 | Welche Brücken und Bahnhöfe modernisiert werden sollen, wird derzeit noch festgelegt. Bundestags-Ausschüsse sowie der Bundesrechnungshof müssen dem Programm noch zustimmen. 8 | 9 | Verwunderung dürfte hervorrufen, dass die Bahn normalerweise klagt, ihr fehle für den Neu- und Ausbau wichtiger Strecken das Geld. Jetzt zeigt sich: Was ihr vor allem fehlt, ist die Kapazität, vorhandene Mittel schnell zu verbauen 10 | -------------------------------------------------------------------------------- /models/Seomatic_SiteMetaModel.php: -------------------------------------------------------------------------------- 1 | array(AttributeType::String, 'default' => ''), 14 | 'siteSeoName' => array(AttributeType::String, 'default' => ''), 15 | 'siteSeoTitle' => array(AttributeType::String, 'default' => ''), 16 | 'siteSeoDescription' => array(AttributeType::String, 'default' => ''), 17 | 'siteSeoKeywords' => array(AttributeType::String, 'default' => ''), 18 | 'siteTwitterCardType' => array(AttributeType::String, 'default' => ''), 19 | 'siteOpenGraphType' => array(AttributeType::String, 'default' => ''), 20 | 'siteRobots' => array(AttributeType::String, 'default' => ''), 21 | 'siteSeoImageId' => array(AttributeType::Number, 'default' => null), 22 | )); 23 | } 24 | 25 | } /* -- class Seomatic_SiteMetaModel */ -------------------------------------------------------------------------------- /vendor/crodas/languagedetector/phpunit.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 21 | 22 | 23 | 24 | tests/ 25 | 26 | 27 | 28 | 29 | 30 | tests/ 31 | lib/ 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /vendor/crodas/text-rank/lib/TextRank/Stopword/turkish-stopwords.txt: -------------------------------------------------------------------------------- 1 | acaba 2 | altmýþ 3 | altý 4 | ama 5 | bana 6 | bazý 7 | belki 8 | ben 9 | benden 10 | beni 11 | benim 12 | beþ 13 | bin 14 | bir 15 | biri 16 | birkaç 17 | birkez 18 | birþey 19 | birþeyi 20 | biz 21 | bizden 22 | bizi 23 | bizim 24 | bu 25 | buna 26 | bunda 27 | bundan 28 | bunu 29 | bunun 30 | da 31 | daha 32 | dahi 33 | de 34 | defa 35 | diye 36 | doksan 37 | dokuz 38 | dört 39 | elli 40 | en gibi 41 | hem 42 | hep 43 | hepsi 44 | her 45 | hiç 46 | iki 47 | ile 48 | INSERmi 49 | ise 50 | için 51 | katrilyon 52 | kez 53 | ki 54 | kim 55 | kimden 56 | kime 57 | kimi 58 | kýrk 59 | milyar 60 | milyon 61 | mu 62 | mü 63 | mý 64 | nasýl 65 | ne 66 | neden 67 | nerde 68 | nerede 69 | nereye 70 | niye 71 | niçin 72 | on 73 | ona 74 | ondan 75 | onlar 76 | onlardan 77 | onlari 78 | onlarýn 79 | onu otuz 80 | sanki 81 | sekiz 82 | seksen 83 | sen 84 | senden 85 | seni 86 | senin 87 | siz 88 | sizden 89 | sizi 90 | sizin 91 | trilyon 92 | tüm 93 | ve 94 | veya 95 | ya 96 | yani 97 | yedi 98 | yetmiþ 99 | yirmi 100 | yüz 101 | çok 102 | çünkü 103 | üç 104 | þey 105 | þeyden 106 | þeyi 107 | þeyler 108 | þu 109 | þuna 110 | þunda 111 | þundan 112 | þunu 113 | -------------------------------------------------------------------------------- /vendor/crodas/text-rank/lib/TextRank/Stopword/norwegian-stopwords.txt: -------------------------------------------------------------------------------- 1 | alle 2 | andre 3 | arbeid 4 | av 5 | begge 6 | bort 7 | bra 8 | bruke 9 | da 10 | denne 11 | der 12 | deres 13 | det 14 | din 15 | disse 16 | du 17 | eller 18 | en 19 | ene 20 | eneste 21 | enhver 22 | enn 23 | er 24 | et 25 | folk 26 | for 27 | fordi 28 | forsÛke 29 | fra 30 | fÅ 31 | fÛr 32 | fÛrst 33 | gjorde 34 | gjÛre 35 | god 36 | gÅ 37 | ha 38 | hadde 39 | han 40 | hans 41 | hennes 42 | her 43 | hva 44 | hvem 45 | hver 46 | hvilken 47 | hvis 48 | hvor 49 | hvordan 50 | hvorfor 51 | i 52 | ikke 53 | inn 54 | innen 55 | kan 56 | kunne 57 | lage 58 | lang 59 | lik 60 | like 61 | makt 62 | mange 63 | med 64 | meg 65 | meget 66 | men 67 | mens 68 | mer 69 | mest 70 | min 71 | mye 72 | mÅ 73 | mÅte 74 | navn 75 | nei 76 | ny 77 | nÅ 78 | nÅr 79 | og 80 | ogsÅ 81 | om 82 | opp 83 | oss 84 | over 85 | part 86 | punkt 87 | pÅ 88 | rett 89 | riktig 90 | samme 91 | sant 92 | si 93 | siden 94 | sist 95 | skulle 96 | slik 97 | slutt 98 | som 99 | start 100 | stille 101 | sÅ 102 | tid 103 | til 104 | tilbake 105 | tilstand 106 | under 107 | ut 108 | uten 109 | var 110 | ved 111 | verdi 112 | vi 113 | vil 114 | ville 115 | vite 116 | vÅr 117 | vÖre 118 | vÖrt 119 | Å 120 | -------------------------------------------------------------------------------- /templates/_googleAnalytics.twig: -------------------------------------------------------------------------------- 1 | {% if seomaticHelper.ownerGoogleAnalyticsUID %} 2 | 31 | {% endif %} -------------------------------------------------------------------------------- /vendor/davechild/textstatistics/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2014, Dave Child 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without 5 | modification, are permitted provided that the following conditions are met: 6 | 7 | * Redistributions of source code must retain the above copyright notice, this 8 | list of conditions and the following disclaimer. 9 | 10 | * Redistributions in binary form must reproduce the above copyright notice, 11 | this list of conditions and the following disclaimer in the documentation 12 | and/or other materials provided with the distribution. 13 | 14 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 15 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 17 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 18 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 20 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 21 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 22 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 23 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 | -------------------------------------------------------------------------------- /vendor/crodas/text-rank/phpunit.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 21 | 22 | 23 | 24 | tests/ 25 | 26 | 27 | 28 | 29 | 30 | lib/ 31 | tests/tmp/ 32 | 33 | lib/Dispatcher/Template 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /templates/_preview_humans_modal.twig: -------------------------------------------------------------------------------- 1 | 21 | -------------------------------------------------------------------------------- /vendor/crodas/text-rank/lib/TextRank/Stopword/french-stopwords.txt: -------------------------------------------------------------------------------- 1 | alors 2 | au 3 | aucuns 4 | aussi 5 | autre 6 | avant 7 | avec 8 | avoir 9 | bon 10 | car 11 | ce 12 | cela 13 | ces 14 | ceux 15 | chaque 16 | ci 17 | comme 18 | comment 19 | dans 20 | des 21 | du 22 | dedans 23 | dehors 24 | depuis 25 | deux 26 | devrait 27 | doit 28 | donc 29 | dos 30 | droite 31 | début 32 | elle 33 | elles 34 | en 35 | encore 36 | essai 37 | est 38 | et 39 | eu 40 | fait 41 | faites 42 | fois 43 | font 44 | force 45 | haut 46 | hors 47 | ici 48 | il 49 | ils 50 | je juste 51 | la 52 | le 53 | les 54 | leur 55 | là 56 | ma 57 | maintenant 58 | mais 59 | mes 60 | mine 61 | moins 62 | mon 63 | mot 64 | même 65 | ni 66 | nommés 67 | notre 68 | nous 69 | nouveaux 70 | ou 71 | où 72 | par 73 | parce 74 | parole 75 | pas 76 | personnes 77 | peut 78 | peu 79 | pièce 80 | plupart 81 | pour 82 | pourquoi 83 | quand 84 | que 85 | quel 86 | quelle 87 | quelles 88 | quels 89 | qui 90 | sa 91 | sans 92 | ses 93 | seulement 94 | si 95 | sien 96 | son 97 | sont 98 | sous 99 | soyez 100 | sujet 101 | sur 102 | ta 103 | tandis 104 | tellement 105 | tels 106 | tes 107 | ton 108 | tous 109 | tout 110 | trop 111 | très 112 | tu 113 | valeur 114 | voie 115 | voient 116 | vont 117 | votre 118 | vous 119 | vu 120 | ça 121 | étaient 122 | état 123 | étions 124 | été 125 | être 126 | -------------------------------------------------------------------------------- /vendor/crodas/text-rank/lib/TextRank/Stopword/czech-stopwords.txt: -------------------------------------------------------------------------------- 1 | dnes 2 | cz 3 | timto 4 | budes 5 | budem 6 | byli 7 | jses 8 | muj 9 | svym 10 | ta 11 | tomto 12 | tohle 13 | tuto 14 | tyto 15 | jej 16 | zda 17 | proc 18 | mate 19 | tato 20 | kam 21 | tohoto 22 | kdo 23 | kteri 24 | mi 25 | nam 26 | tom 27 | tomuto 28 | mit 29 | nic 30 | proto 31 | kterou 32 | byla 33 | toho 34 | protoze 35 | asi 36 | ho 37 | nasi 38 | napiste 39 | re 40 | coz 41 | tim 42 | takze 43 | svych 44 | jeji 45 | svymi 46 | jste 47 | aj 48 | tu 49 | tedy 50 | teto bylo 51 | kde 52 | ke 53 | prave 54 | ji 55 | nad 56 | nejsou 57 | ci 58 | pod 59 | tema 60 | mezi 61 | pres 62 | ty 63 | pak 64 | vam 65 | ani 66 | kdyz 67 | vsak 68 | ne 69 | jsem 70 | tento 71 | clanku 72 | clanky 73 | aby 74 | jsme 75 | pred 76 | pta 77 | jejich 78 | byl 79 | jeste 80 | az 81 | bez 82 | take 83 | pouze 84 | prvni 85 | vase 86 | ktera 87 | nas 88 | novy 89 | tipy 90 | pokud 91 | muze 92 | design 93 | strana 94 | jeho 95 | sve 96 | jine 97 | zpravy 98 | nove 99 | neni vas 100 | jen 101 | podle 102 | zde 103 | clanek 104 | uz 105 | email 106 | byt 107 | vice 108 | bude 109 | jiz 110 | nez 111 | ktery 112 | by 113 | ktere 114 | co 115 | nebo 116 | ten 117 | tak 118 | ma 119 | pri 120 | od 121 | po 122 | jsou 123 | jak 124 | dalsi 125 | ale 126 | si 127 | ve 128 | to 129 | jako 130 | za 131 | zpet 132 | ze 133 | do 134 | pro 135 | je 136 | na 137 | -------------------------------------------------------------------------------- /vendor/crodas/languagedetector/tests/AssertTest.php: -------------------------------------------------------------------------------- 1 | detect(file_get_contents($file)); 27 | if (is_array($lang)) { 28 | $this->assertEquals($expected, $lang[0]['lang']); 29 | return; 30 | } 31 | $this->assertEquals($expected, $lang); 32 | } 33 | 34 | /** 35 | * @dataProvider langProvider 36 | */ 37 | public function testGetLanguages($format) 38 | { 39 | $detect = LanguageDetector\Detect::initByPath(__DIR__."/../example/datafile." . $format); 40 | $langs = $detect->getLanguages(); 41 | $this->assertTrue(is_array($langs)); 42 | $this->assertTrue(count($langs) > 10); 43 | } 44 | } 45 | 46 | -------------------------------------------------------------------------------- /templates/_preview_robots_modal.twig: -------------------------------------------------------------------------------- 1 | 19 | -------------------------------------------------------------------------------- /translations/nl.php: -------------------------------------------------------------------------------- 1 | 'Site Ontwikkelaar', 5 | 'Site Identity' => 'Site Identiteit', 6 | 'Google Site Verification' => 'Google Site Verificatie', 7 | 8 | 'Corporation' => 'Corporatie', 9 | 'Organization' => 'Organisatie', 10 | 'Person' => 'Persoon', 11 | 12 | 'General Info' => 'Algemene Informatie', 13 | 14 | 15 | 'Site SEO Title' => 'Site SEO titel', 16 | 'SEO Title' => 'SEO titel', 17 | 'Site SEO Description' => 'Site SEO omschrijving', 18 | 'SEO Description' => 'SEO omschrijving', 19 | 'Site SEO Image' => 'Site SEO afbeelding', 20 | 'SEO Image' => 'SEO afbeelding', 21 | 'Site SEO Name' => 'Site SEO naam', 22 | 'Site SEO Keywords' => 'Site SEO keywords', 23 | 'SEO Keywords' => 'SEO keywords', 24 | 'Template Path' => 'Template pad', 25 | 26 | 'Source:' => 'Bron:', 27 | 'Custom Text' => 'Aangepaste tekst', 28 | 'Custom Image' => 'Aangepaste afbeelding', 29 | 'Select SEO Image' => 'Selecteer SEO afbeelding', 30 | 'From Field' => 'Van veld', 31 | 'Keywords From Field' => 'Keywords van veld', 32 | 33 | 'Twitter Handle' => 'Twitter naam', 34 | 'Facebook Handle' => 'Facebook naam', 35 | 'Facebook Profiel ID' => 'Facebook Profiel ID', 36 | 'LinkedIn Handle' => 'LinkedIn naam', 37 | 'Google+ Handle' => 'Google+ naam', 38 | 'YouTube Handle' => 'YouTube naam', 39 | 'Instagram Handle' => 'Instagram naam', 40 | 'Pinterest Handle' => 'Pinterest naam', 41 | 42 | 'New Template Meta' => 'Nieuw Template Meta', 43 | 'Untitled Meta' => 'Naamloze Meta', 44 | ); 45 | -------------------------------------------------------------------------------- /vendor/crodas/languagedetector/tests/assert/esperanto/3.txt: -------------------------------------------------------------------------------- 1 | Historio 2 | 3 | Laŭ sagao, la urbo (Barcino) estis fondita de Hamilkar Barka, patro de Hanibal Barka el Kartago. Post tio trakonstruis la urbon la romianoj al fortikaĵo (castrum). La centro de la urbo kuŝis sur Mons Taber, sur malgranda monteto proksime al la tiama Konsildomo (Plaça de Sant Jaume). Oni povas ankoraŭ hodiaŭ trovi restaĵojn de la romia urbomuro en la praurba parto. Gravaj romiaj trovitaĵoj estas ekspoziciitaj ĉe Plaça del Rei. En la 5-a jarcento la urbon konkeris visigotoj, en la 8-a jc. la maŭroj. En 801 konkeris la urbon la franca reĝo. Je 985 disrabis Barcelonon Al-Mansur, armeestro de Kordovo. 4 | En la mezepoko Barcelono estis ĉefurbo de Reĝlando de Aragono kaj elstara mara kaj komerca potenco en la okcidenta Mediteranea maro, kun gravaj posedaĵoj, kiel Sardio kaj Sicilio. Ekde la 15-a jarcento, post la Kompromiso de Caspe (1412) kaj la enlanda milito (1462-1472), la urbo perdis potencon, unue favore al Valencio kaj poste al kastiliaj urboj. La malvenko en la milito de postveno de Hispanio (1701-1714) kaj la postaj reprezalioj de Filipo la 5-a de Kastilio plimalfortigis kaj katenis la urbon ĝis meze de la 19-a jarcento, kiam estiĝis permeso malkonstrui la urbomurojn. 5 | La ekonomia bonfarto permesis rapidegan plilarĝigon de la urbo, kiu ensorbis diversajn antaŭurbojn kiel Sants, Gràcia kaj Sarrià. Partoj de la urbo aldoniĝis post eventoj, kiel la internaciaj ekspozicioj de 1888 kaj 1929, la Olimpikaj ludoj (1992) aŭ la Forumo de la Kulturoj (2004). 6 | [redakti] 7 | -------------------------------------------------------------------------------- /vendor/davechild/textstatistics/src/DaveChild/TextStatistics/Resource.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /resources/icon-mask.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /resources/images/seo_meta.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /resources/images/seo_site.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /vendor/crodas/text-rank/lib/TextRank/Stopword/italian-stopwords.txt: -------------------------------------------------------------------------------- 1 | a 2 | adesso 3 | ai 4 | al 5 | alla 6 | allo 7 | allora 8 | altre 9 | altri 10 | altro 11 | anche 12 | ancora 13 | avere 14 | aveva 15 | avevano 16 | ben 17 | buono 18 | che 19 | chi 20 | cinque 21 | comprare 22 | con 23 | consecutivi 24 | consecutivo 25 | cosa 26 | cui 27 | da 28 | del 29 | della 30 | delle 31 | dentro 32 | deve 33 | devo 34 | di 35 | doppio 36 | due 37 | e 38 | ecco 39 | fare 40 | fine 41 | fino 42 | fra 43 | gente 44 | giu 45 | ha 46 | hai 47 | hanno 48 | ho 49 | il 50 | indietro invece 51 | io 52 | la 53 | lavoro 54 | le 55 | lei 56 | lo 57 | loro 58 | lui 59 | lungo 60 | ma 61 | me 62 | meglio 63 | molta 64 | molti 65 | molto 66 | nei 67 | nel 68 | nella 69 | nelle 70 | no 71 | noi 72 | nome 73 | nostro 74 | nove 75 | nuovi 76 | nuovo 77 | o 78 | oltre 79 | ora 80 | otto 81 | peggio 82 | pero 83 | persone 84 | piu 85 | poco 86 | primo 87 | promesso 88 | qua 89 | quarto 90 | quasi 91 | quattro 92 | quello 93 | questo 94 | qui 95 | quindi 96 | quinto 97 | rispetto 98 | sara 99 | secondo 100 | sei 101 | sembra sembrava 102 | senza 103 | sette 104 | sia 105 | siamo 106 | siete 107 | solo 108 | sono 109 | sopra 110 | soprattutto 111 | tutte 112 | tutto 113 | sotto 114 | stati 115 | stato 116 | stesso 117 | su 118 | subito 119 | sul 120 | sulla 121 | tanto 122 | te 123 | tempo 124 | terzo 125 | tra 126 | tre 127 | triplo 128 | ultimo 129 | un 130 | una 131 | uno 132 | va 133 | vai 134 | voi 135 | volte 136 | vostro 137 | -------------------------------------------------------------------------------- /templates/meta/index.twig: -------------------------------------------------------------------------------- 1 | {% extends '_layouts/elementindex' %} 2 | 3 | {% includeCssResource "seomatic/css/style.css" %} 4 | {% includeJsResource "seomatic/js/metalist.js" %} 5 | 6 | {% set title = craft.seomatic.getPluginName() %} 7 | 8 | {% set elementType = 'Seomatic_Meta' %} 9 | 10 | {% set docsUrl = "https://github.com/nystudio107/seomatic/wiki" %} 11 | 12 | {% set seomaticSections = { 13 | seometrics: { label: "SEOmetrics"|t, url: url('seomatic/seometrics') }, 14 | meta: { label: "Template Meta"|t, url: url('seomatic/meta') }, 15 | site: { label: "Site Meta"|t, url: url('seomatic/site') }, 16 | identity: { label: "Site Identity"|t, url: url('seomatic/identity') }, 17 | social: { label: "Social Media"|t, url: url('seomatic/social') }, 18 | creator: { label: "Site Creator"|t, url: url('seomatic/creator') }, 19 | settings: { label: "Settings"|t, url: url('seomatic/settings') }, 20 | } %} 21 | 22 | {% set crumbs = [ 23 | { label: craft.seomatic.getPluginName(), url: url('seomatic') }, 24 | { label: "Template Meta"|t, url: url('seomatic/meta') }, 25 | ] %} 26 | 27 | {% if craft.app.version < 2.5 %} 28 | {% set tabs = seomaticSections %} 29 | {% set selectedTab = 'meta' %} 30 | {% else %} 31 | {% set subnav = seomaticSections %} 32 | {% set selectedSubnavItem = 'meta' %} 33 | {% endif %} 34 | 35 | {% block sidebar %} 36 | 37 |
38 | 39 |
40 |
{{ "New Template Meta"|t }}
41 |
42 | 43 |
44 | 45 | {{ parent() }} 46 | 47 | {% endblock %} 48 | -------------------------------------------------------------------------------- /vendor/crodas/text-rank/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2013, César D. Rodas 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without modification, 5 | are permitted provided that the following conditions are met: 6 | 7 | * Redistributions of source code must retain the above copyright notice, this 8 | list of conditions and the following disclaimer. 9 | 10 | * Redistributions in binary form must reproduce the above copyright notice, this 11 | list of conditions and the following disclaimer in the documentation and/or 12 | other materials provided with the distribution. 13 | 14 | * Neither the name of the {organization} nor the names of its 15 | contributors may be used to endorse or promote products derived from 16 | this software without specific prior written permission. 17 | 18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 19 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR 22 | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 23 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 24 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 25 | ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 27 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | -------------------------------------------------------------------------------- /vendor/crodas/languagedetector/example/classify.php: -------------------------------------------------------------------------------- 1 | detect("Agricultura (-ae, f.), sensu latissimo, est summa omnium artium et scientiarum et technologiarum quae de terris colendis et animalibus creandis curant, ut poma, frumenta, charas, carnes, textilia, et aliae res e terra bene producantur. Specialius, agronomia est ars et scientia quae terris colendis student, agricultio autem animalibus creandis.")); 7 | 8 | var_dump($detect->detect("El llatí és una llengua indoeuropea de la branca itàlica, parlada antigament pels romans. A partir de l'evolució de la seva versió vulgar en sorgiren les llengües romàniques que sobreviuen avui dia. 9 | ")); 10 | var_dump($detect->detect("hola")); 11 | var_dump($detect->detect("Hi there, this is a tiny text")); 12 | var_dump($detect->detect("* This file implements in memory hash tables with insert/del/replace/find/ 13 | * get-random-element operations. Hash tables will auto resize if needed 14 | * tables of power of two in size are used, collisions are handled by 15 | * chaining. See the source code for more information... :)")); 16 | 17 | var_dump($detect->detect("House of Cards is an American political drama series developed and produced by Beau Willimon. It is an adaptation of a previous BBC miniseries of the same name which is based on the novel by Michael Dobbs. The entire first season premiered on February 1, 2013, on the streaming service Netflix.[1] A second season of 13 episodes is currently in production.[1][2] 18 | ")); 19 | -------------------------------------------------------------------------------- /vendor/crodas/languagedetector/tests/assert/euskara/1.txt: -------------------------------------------------------------------------------- 1 | Eskozia (ingelesez eta scotseraz Scotland; Eskoziako gaeleraz Alba) Erresuma Batua osatzen duten lau herrialdeetatik iparraldeena kokatzen dena da. Ingalaterra eta Galesekin batera Britainia Handiko Uhartea osatzen dute, Eskoziak lurralde honen heren bat hartzen du eta 790 uharte baino gehiago ditu. Ipar eta mendebaldean Ozeano Atlantikoarekin mugatzen du, ekialdean Ipar Itsasoarekin, hegoaldean Ingalaterrarekin eta azkenik hego-mendebaldean Iparraldeko kanala eta Irlandako itsasoarekin. Eskoziar lurraldea 78.772 km2-tan hedatzen da eta bere biztanleria gutxi-gorabehera 5.116.900 biztanletakoa da, honek km2-ko 65 biztanleko dentsitatea ematen duelarik. Hiriburua Edinburgh da, aldiz hiririk handiena Glasgow, azken honen hiriguneak eskoziar biztanlegoaren %20a osatzen duelarik. 2 | 1707 urterarte Eskoziako Erresuma independientea izan zen, data honetan Britainia Handia sortzeko Ingalaterrarekin Batasun Agiria sinatu zelarik. Batasunak ez zuen Eskoziako berezko sistema legal edo judizialaren aldaketarik suposatu, hau ordudanik Gales, Ingalaterra eta Ipar Irlandakotik ezberdina delarik, honenbestez nazioarteko zuzenbidean erakunde juridiko ezberdintzat onartu eta hartzen da. Berezko legeen biziraupena jaso da, baita eskoziar kulturako zati diren hezkuntza eta erlijio sistema ezberdinak, hauek mendeetan zehar garatu direlarik. XIX. mendean sortua, eskoziar independentismoa eragina eta indarra pilatuz joan da, batez ere XX. mendearen amaieratik aurrera, eta Scottish National Party (SNP, Eskoziako Alderdi Nazionala) alderdia ordezkari duela. Alderdi horren helburu nagusia Eskoziaren independentzia da eta 2011ko Eskoziar Parlamenturako hauteskundeetan gehiengo absolutua lortu zuen. 3 | -------------------------------------------------------------------------------- /vendor/crodas/languagedetector/tests/assert/german/5.txt: -------------------------------------------------------------------------------- 1 | Geographie [Bearbeiten] 2 | 3 | Lage [Bearbeiten] 4 | Barcelona liegt im Nordosten der iberischen Halbinsel an der Küste des 5 | Mittelmeeres auf einem fünf Kilometer breiten Plateau, das von der Bergkette 6 | Serra de Collserola und den Flüssen Llobregat im Süden sowie Besòs im Norden 7 | begrenzt wird. Die Pyrenäen liegen circa 120 Kilometer nördlich der Stadt. 8 | Die Serra de Collserola, Teil des Küstengebirges, bildet den sanft gerundeten 9 | Hintergrund der Stadt. Ihr höchster Punkt, der Tibidabo, ist 512 Meter hoch 10 | und wird von dem 288,4 Meter hohen und weithin sichtbaren Sendeturm Torre de 11 | Collserola überragt. Der höchste Punkt der Stadtmitte ist der 12 Meter hohe 12 | Mont Taber, auf dem die Kathedrale gebaut ist. Die Stadt ist von kleinen, 13 | meist bebauten Hügeln durchzogen, die den auf ihnen errichteten Vierteln 14 | den Namen gaben: Carmel (267 Meter), Monterols (121 Meter), Putxet (181 15 | Meter), Rovira (261 Meter) und Peira (133 Meter). Der Berg 16 | Montjuïc (173 Meter) liegt im Südwesten und überblickt den Hafen. Auf ihm 17 | liegt auch die Festung aus dem 17. und 18. Jahrhundert, die als Ersatz 18 | für die Ciutadella die Stadt kontrollierte. Heute ist die Festung ein 19 | Militärmuseum, und der Berg beherbergt einige olympische und kulturelle 20 | Einrichtungen sowie bekannte Gärten. 21 | Im Norden grenzt die Stadt an die Gemeinden Santa Coloma de Gramenet und 22 | Sant Adrià de Besòs, im Süden an L’Hospitalet de Llobregat und Esplugues 23 | de Llobregat, im Südosten liegt das Mittelmeer und im Westen liegen 24 | Montcada i Reixac und Sant Cugat del Vallès sowie Cerdanyola del Vallès. 25 | -------------------------------------------------------------------------------- /vendor/crodas/text-rank/lib/TextRank/Stopword/portuguese-stopwords.txt: -------------------------------------------------------------------------------- 1 | último 2 | é 3 | acerca 4 | agora 5 | algmas 6 | alguns 7 | ali 8 | ambos 9 | antes 10 | apontar 11 | aquela 12 | aquelas 13 | aquele 14 | aqueles 15 | aqui 16 | atrás 17 | bem 18 | bom 19 | cada 20 | caminho 21 | cima 22 | com 23 | como 24 | comprido 25 | conhecido 26 | corrente 27 | das 28 | debaixo 29 | dentro 30 | desde 31 | desligado 32 | deve 33 | devem 34 | deverá 35 | direita 36 | diz 37 | dizer 38 | dois 39 | dos 40 | e 41 | ela 42 | ele 43 | eles 44 | em 45 | enquanto 46 | então 47 | está 48 | estão 49 | estado 50 | estar estará 51 | este 52 | estes 53 | esteve 54 | estive 55 | estivemos 56 | estiveram 57 | eu 58 | fará 59 | faz 60 | fazer 61 | fazia 62 | fez 63 | fim 64 | foi 65 | fora 66 | horas 67 | iniciar 68 | inicio 69 | ir 70 | irá 71 | ista 72 | iste 73 | isto 74 | ligado 75 | maioria 76 | maiorias 77 | mais 78 | mas 79 | mesmo 80 | meu 81 | muito 82 | muitos 83 | nós 84 | não 85 | nome 86 | nosso 87 | novo 88 | o 89 | onde 90 | os 91 | ou 92 | outro 93 | para 94 | parte 95 | pegar 96 | pelo 97 | pessoas 98 | pode 99 | poderá podia 100 | por 101 | porque 102 | povo 103 | promeiro 104 | quê 105 | qual 106 | qualquer 107 | quando 108 | quem 109 | quieto 110 | são 111 | saber 112 | sem 113 | ser 114 | seu 115 | somente 116 | têm 117 | tal 118 | também 119 | tem 120 | tempo 121 | tenho 122 | tentar 123 | tentaram 124 | tente 125 | tentei 126 | teu 127 | teve 128 | tipo 129 | tive 130 | todos 131 | trabalhar 132 | trabalho 133 | tu 134 | um 135 | uma 136 | umas 137 | uns 138 | usa 139 | usar 140 | valor 141 | veja 142 | ver 143 | verdade 144 | verdadeiro 145 | você 146 | -------------------------------------------------------------------------------- /vendor/crodas/languagedetector/tests/assert/catalan/5.txt: -------------------------------------------------------------------------------- 1 | Xena: Warrior Princess (en català. Xena: la princesa guerrera) és una sèrie de televisió originalment emesa entre el 15 de setembre de 1995 i el 18 de juny de 2001. La sèrie va ser creada el 1995 pels directors i productors Robert Tapert i John Schulian, amb l'ajuda dels productors Sam Raimi i RJ Stewart. La idea va sorgir a partir de Xena, un personatge secundari de la primera temporada de Hercules: The Legendary Journeys. Rodada a Nova Zelanda, es tracta d'una coproducció entre aquest país i els Estats Units. La sèrie ha estat produïda per la Pacific Renaissance Pictures Ltd, els creadors són Robert Tapert i Sam Raimi, productors de la sèrie i fou distribuïda per Universal Studios. La sèrie, ambientada a l'Antiga Grècia, narra les aventures de Xena (Lucy Lawless) i Gabrielle (Renée O'Connor), dos grans guerreres i inseparables amigues que lluiten contra les injustícies de l'època. 2 | La sèrie es va mantenir en l'aire durant sis temporades als Estats Units, entre 1995 i 2001, convertint-se en la més reeixida de les sèries sindicades del moment i arribant a ser un autèntic fenomen social al llarg de tot el món .De fet, és considerada una de les millors sèries de la història per la revista TV Guide i, avui dia, el fanatisme per la sèrie continua actiu a Internet. Aquesta sèrie d'aventures, vista en més de vuitanta-sis països dels cinc continents, ha rebut diversos premis, incloent un Emmy. A més, aprofitant l'èxit de la mateixa, s'han comercialitzat nombrosos productes sobre ella, com ara episodis en DVD, una pel·lícula, llibres, còmics o videojocs. La influència de la sèrie fora de la pantalla arriba a sectors com la comunitat lèsbica o la astronòmica, així com a altres sèries de televisió i pel·lícules. 3 | -------------------------------------------------------------------------------- /migrations/m160209_000001_seomatic_addRobotsTxt.php: -------------------------------------------------------------------------------- 1 | ColumnType::Text 19 | ); 20 | 21 | $this->_addColumnsAfter("seomatic_settings", $newColumns, "siteRobots"); 22 | 23 | // return true and let craft know its done 24 | return true; 25 | } 26 | 27 | private function _addColumnsAfter($tableName, $newColumns, $afterColumnHandle) 28 | { 29 | 30 | // this is a foreach loop, enough said 31 | foreach ($newColumns as $columnName => $columnType) 32 | { 33 | // check if the column does NOT exist 34 | if (!craft()->db->columnExists($tableName, $columnName)) 35 | { 36 | $this->addColumnAfter($tableName, $columnName, array( 37 | 'column' => $columnType, 38 | 'null' => false, 39 | ), 40 | $afterColumnHandle 41 | ); 42 | 43 | // log that we created the new column 44 | SeomaticPlugin::log("Created the `$columnName` in the `$tableName` table.", LogLevel::Info, true); 45 | 46 | } 47 | 48 | // if the column already exists in the table 49 | else { 50 | 51 | // tell craft that we couldn't create the column as it alredy exists. 52 | SeomaticPlugin::log("Column `$columnName` already exists in the `$tableName` table.", LogLevel::Info, true); 53 | 54 | } 55 | } 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /migrations/m160227_000000_seomatic_addFacebookAppId.php: -------------------------------------------------------------------------------- 1 | ColumnType::Varchar, 19 | ); 20 | 21 | $this->_addColumnsAfter("seomatic_settings", $newColumns, "facebookProfileId"); 22 | 23 | // return true and let craft know its done 24 | return true; 25 | } 26 | 27 | private function _addColumnsAfter($tableName, $newColumns, $afterColumnHandle) 28 | { 29 | 30 | // this is a foreach loop, enough said 31 | foreach ($newColumns as $columnName => $columnType) 32 | { 33 | // check if the column does NOT exist 34 | if (!craft()->db->columnExists($tableName, $columnName)) 35 | { 36 | $this->addColumnAfter($tableName, $columnName, array( 37 | 'column' => $columnType, 38 | 'null' => false, 39 | ), 40 | $afterColumnHandle 41 | ); 42 | 43 | // log that we created the new column 44 | SeomaticPlugin::log("Created the `$columnName` in the `$tableName` table.", LogLevel::Info, true); 45 | 46 | } 47 | 48 | // if the column already exists in the table 49 | else { 50 | 51 | // tell craft that we couldn't create the column as it alredy exists. 52 | SeomaticPlugin::log("Column `$columnName` already exists in the `$tableName` table.", LogLevel::Info, true); 53 | 54 | } 55 | } 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /migrations/m151225_000000_seomatic_addHumansField.php: -------------------------------------------------------------------------------- 1 | ColumnType::Text 19 | ); 20 | 21 | $this->_addColumnsAfter("seomatic_settings", $newColumns, "personCreatorBirthPlace"); 22 | 23 | // return true and let craft know its done 24 | return true; 25 | } 26 | 27 | private function _addColumnsAfter($tableName, $newColumns, $afterColumnHandle) 28 | { 29 | 30 | // this is a foreach loop, enough said 31 | foreach ($newColumns as $columnName => $columnType) 32 | { 33 | // check if the column does NOT exist 34 | if (!craft()->db->columnExists($tableName, $columnName)) 35 | { 36 | $this->addColumnAfter($tableName, $columnName, array( 37 | 'column' => $columnType, 38 | 'null' => false, 39 | ), 40 | $afterColumnHandle 41 | ); 42 | 43 | // log that we created the new column 44 | SeomaticPlugin::log("Created the `$columnName` in the `$tableName` table.", LogLevel::Info, true); 45 | 46 | } 47 | 48 | // if the column already exists in the table 49 | else { 50 | 51 | // tell craft that we couldn't create the column as it alredy exists. 52 | SeomaticPlugin::log("Column `$columnName` already exists in the `$tableName` table.", LogLevel::Info, true); 53 | 54 | } 55 | } 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /migrations/m160723_000000_seomatic_addSeoMainEntityOfPage.php: -------------------------------------------------------------------------------- 1 | ColumnType::Varchar 20 | ); 21 | 22 | $this->_addColumnsAfter("seomatic_meta", $newColumns, "metaPath"); 23 | 24 | // return true and let craft know its done 25 | return true; 26 | } 27 | 28 | private function _addColumnsAfter($tableName, $newColumns, $afterColumnHandle) 29 | { 30 | 31 | // this is a foreach loop, enough said 32 | foreach ($newColumns as $columnName => $columnType) 33 | { 34 | // check if the column does NOT exist 35 | if (!craft()->db->columnExists($tableName, $columnName)) 36 | { 37 | $this->addColumnAfter($tableName, $columnName, array( 38 | 'column' => $columnType, 39 | 'null' => false, 40 | ), 41 | $afterColumnHandle 42 | ); 43 | 44 | // log that we created the new column 45 | SeomaticPlugin::log("Created the `$columnName` in the `$tableName` table.", LogLevel::Info, true); 46 | 47 | } 48 | 49 | // if the column already exists in the table 50 | else { 51 | 52 | // tell craft that we couldn't create the column as it alredy exists. 53 | SeomaticPlugin::log("Column `$columnName` already exists in the `$tableName` table.", LogLevel::Info, true); 54 | 55 | } 56 | } 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /migrations/m160724_000000_seomatic_addSeoMainEntityCategory.php: -------------------------------------------------------------------------------- 1 | ColumnType::Varchar 20 | ); 21 | 22 | $this->_addColumnsAfter("seomatic_meta", $newColumns, "metaPath"); 23 | 24 | // return true and let craft know its done 25 | return true; 26 | } 27 | 28 | private function _addColumnsAfter($tableName, $newColumns, $afterColumnHandle) 29 | { 30 | 31 | // this is a foreach loop, enough said 32 | foreach ($newColumns as $columnName => $columnType) 33 | { 34 | // check if the column does NOT exist 35 | if (!craft()->db->columnExists($tableName, $columnName)) 36 | { 37 | $this->addColumnAfter($tableName, $columnName, array( 38 | 'column' => $columnType, 39 | 'null' => false, 40 | ), 41 | $afterColumnHandle 42 | ); 43 | 44 | // log that we created the new column 45 | SeomaticPlugin::log("Created the `$columnName` in the `$tableName` table.", LogLevel::Info, true); 46 | 47 | } 48 | 49 | // if the column already exists in the table 50 | else { 51 | 52 | // tell craft that we couldn't create the column as it alredy exists. 53 | SeomaticPlugin::log("Column `$columnName` already exists in the `$tableName` table.", LogLevel::Info, true); 54 | 55 | } 56 | } 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /templates/_facebookDisplayPreview.twig: -------------------------------------------------------------------------------- 1 | {% if seomaticMeta.og is defined and seomaticMeta.og %} 2 |
3 |
4 | 5 | 9 | 10 |
11 |
12 | 27 |
28 |
29 | 30 | 40 | {% else %} 41 |

No Facebook Profile ID has been set

42 | {% endif %} -------------------------------------------------------------------------------- /migrations/m160811_000000_seomatic_addVimeo.php: -------------------------------------------------------------------------------- 1 | ColumnType::Varchar 19 | ); 20 | 21 | $this->_addColumnsAfter("seomatic_settings", $newColumns, "githubHandle"); 22 | $this->alterColumn('seomatic_settings', 'vimeoHandle', array(ColumnType::Varchar, 'maxLength' => 50)); 23 | 24 | // return true and let craft know its done 25 | return true; 26 | } 27 | 28 | private function _addColumnsAfter($tableName, $newColumns, $afterColumnHandle) 29 | { 30 | 31 | // this is a foreach loop, enough said 32 | foreach ($newColumns as $columnName => $columnType) 33 | { 34 | // check if the column does NOT exist 35 | if (!craft()->db->columnExists($tableName, $columnName)) 36 | { 37 | $this->addColumnAfter($tableName, $columnName, array( 38 | 'column' => $columnType, 39 | 'null' => false, 40 | ), 41 | $afterColumnHandle 42 | ); 43 | 44 | // log that we created the new column 45 | SeomaticPlugin::log("Created the `$columnName` in the `$tableName` table.", LogLevel::Info, true); 46 | 47 | } 48 | 49 | // if the column already exists in the table 50 | else { 51 | 52 | // tell craft that we couldn't create the column as it alredy exists. 53 | SeomaticPlugin::log("Column `$columnName` already exists in the `$tableName` table.", LogLevel::Info, true); 54 | 55 | } 56 | } 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /vendor/crodas/languagedetector/tests/assert/english/7.txt: -------------------------------------------------------------------------------- 1 | Xena: Warrior Princess is an American–New Zealand supernatural fantasy adventure series that aired in syndication from September 4, 1995 until June 18, 2001.[2] 2 | The series was created in 1995 by writer-director-producer Robert Tapert under his production tag, Renaissance Pictures with later executive producers being R. J. Stewart (who developed the series along with Tapert) and Sam Raimi. The series narrative follows Xena (played by Lucy Lawless), a warrior in a quest to seek redemption for her past sins as a ruthless warlord by using her formidable fighting skills to help people. Xena is accompanied by Gabrielle (played by Renee O'Connor), who during the series changes from a simple farm girl into an Amazon warrior and Xena's comrade-in-arms; her initial naïveté helps to balance Xena and assists her in recognizing and pursuing the "greater good". 3 | The show is a spin-off of the television series Hercules: The Legendary Journeys;[3] the saga began with three episodes in Hercules where Xena was a recurring character originally scheduled to die in her third appearance. Aware that the character of Xena had been very successful among the public, the producers of the series decided to create a spin-off series based on her adventures. Xena was a successful show which has aired in more than 108 countries around the world since 1998. In 2004[citation needed] and 2007, it was ranked #9 and #10 on TV Guide's Top Cult Shows Ever[4] and the title character was ranked #100 on Bravo's 100 Greatest TV Characters.[5] Xena's success has led to hundreds of tie-in products, including, comics, books, video games and conventions, realized annually since 1998 in Pasadena, California and London.[6] 4 | The series has received a strong cult following, attention in fandom, parody, and academia, and has influenced the direction of other television series.[7] 5 | -------------------------------------------------------------------------------- /migrations/m170212_000000_seomatic_addWikipedia.php: -------------------------------------------------------------------------------- 1 | ColumnType::Varchar 19 | ); 20 | 21 | $this->_addColumnsAfter("seomatic_settings", $newColumns, "vimeoHandle"); 22 | $this->alterColumn('seomatic_settings', 'wikipediaUrl', array(ColumnType::Varchar, 'maxLength' => 100)); 23 | 24 | // return true and let craft know its done 25 | return true; 26 | } 27 | 28 | private function _addColumnsAfter($tableName, $newColumns, $afterColumnHandle) 29 | { 30 | 31 | // this is a foreach loop, enough said 32 | foreach ($newColumns as $columnName => $columnType) 33 | { 34 | // check if the column does NOT exist 35 | if (!craft()->db->columnExists($tableName, $columnName)) 36 | { 37 | $this->addColumnAfter($tableName, $columnName, array( 38 | 'column' => $columnType, 39 | 'null' => false, 40 | ), 41 | $afterColumnHandle 42 | ); 43 | 44 | // log that we created the new column 45 | SeomaticPlugin::log("Created the `$columnName` in the `$tableName` table.", LogLevel::Info, true); 46 | 47 | } 48 | 49 | // if the column already exists in the table 50 | else { 51 | 52 | // tell craft that we couldn't create the column as it alredy exists. 53 | SeomaticPlugin::log("Column `$columnName` already exists in the `$tableName` table.", LogLevel::Info, true); 54 | 55 | } 56 | } 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /vendor/composer/autoload_real.php: -------------------------------------------------------------------------------- 1 | = 50600 && !defined('HHVM_VERSION'); 27 | if ($useStaticLoader) { 28 | require_once __DIR__ . '/autoload_static.php'; 29 | 30 | call_user_func(\Composer\Autoload\ComposerStaticInit5b938720cfef7b7256946290ccab109b::getInitializer($loader)); 31 | } else { 32 | $map = require __DIR__ . '/autoload_namespaces.php'; 33 | foreach ($map as $namespace => $path) { 34 | $loader->set($namespace, $path); 35 | } 36 | 37 | $map = require __DIR__ . '/autoload_psr4.php'; 38 | foreach ($map as $namespace => $path) { 39 | $loader->setPsr4($namespace, $path); 40 | } 41 | 42 | $classMap = require __DIR__ . '/autoload_classmap.php'; 43 | if ($classMap) { 44 | $loader->addClassMap($classMap); 45 | } 46 | } 47 | 48 | $loader->register(true); 49 | 50 | return $loader; 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /migrations/m161220_000000_seomatic_addPriceRange.php: -------------------------------------------------------------------------------- 1 | ColumnType::Varchar 19 | ); 20 | 21 | $this->_addColumnsAfter("seomatic_settings", $newColumns, "organizationOwnerContactPoints"); 22 | $this->alterColumn('seomatic_settings', 'localBusinessPriceRange', array(ColumnType::Varchar, 'maxLength' => 10)); 23 | 24 | // return true and let craft know its done 25 | return true; 26 | } 27 | 28 | private function _addColumnsAfter($tableName, $newColumns, $afterColumnHandle) 29 | { 30 | 31 | // this is a foreach loop, enough said 32 | foreach ($newColumns as $columnName => $columnType) 33 | { 34 | // check if the column does NOT exist 35 | if (!craft()->db->columnExists($tableName, $columnName)) 36 | { 37 | $this->addColumnAfter($tableName, $columnName, array( 38 | 'column' => $columnType, 39 | 'null' => false, 40 | ), 41 | $afterColumnHandle 42 | ); 43 | 44 | // log that we created the new column 45 | SeomaticPlugin::log("Created the `$columnName` in the `$tableName` table.", LogLevel::Info, true); 46 | 47 | } 48 | 49 | // if the column already exists in the table 50 | else { 51 | 52 | // tell craft that we couldn't create the column as it alredy exists. 53 | SeomaticPlugin::log("Column `$columnName` already exists in the `$tableName` table.", LogLevel::Info, true); 54 | 55 | } 56 | } 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /resources/js/creator.js: -------------------------------------------------------------------------------- 1 | // LOAD EVENTS 2 | 3 | $(function () { 4 | 5 | $('.metaPane').hide(); 6 | var value = $('#siteCreatorType').val(); 7 | value = value.capitalizeFirstLetter(); 8 | $('#'+value).show(); 9 | if (value != "Person") 10 | $('#generic').show(); 11 | 12 | $('#siteCreatorType').on('change', function(e) { 13 | $('.metaPane').hide(); 14 | $('#'+this.value).show(); 15 | if (this.value != "Person") 16 | $('#generic').show(); 17 | }); 18 | 19 | $('#preview-humans').on('click', function(e) { 20 | 21 | // Prevents the default action to be triggered. 22 | e.preventDefault(); 23 | 24 | // Triggering bPopup when click event is fired 25 | $('#preview-humans-popup').bPopup(); 26 | 27 | }); 28 | 29 | $('#geolookup').on('click', function(e) { 30 | address = $('#genericCreatorStreetAddress').val() + ", " 31 | + $('#genericCreatorAddressLocality').val() + ", " 32 | + $('#genericCreatorAddressRegion').val() + ", " 33 | + $('#genericCreatorPostalCode').val() + ", " 34 | + $('#genericCreatorAddressCountry').val(); 35 | $.ajax({ 36 | url:"//maps.googleapis.com/maps/api/geocode/json?address="+address+"&sensor=false", 37 | type: "POST", 38 | success:function(res) { 39 | $('#geolookup-errors').hide(); 40 | if (res.results.length) { 41 | $('#genericCreatorGeoLatitude').val(res.results[0].geometry.location.lat); 42 | $('#genericCreatorGeoLongitude').val(res.results[0].geometry.location.lng); 43 | } else { 44 | $('#geolookup-errors').show(); 45 | } 46 | } 47 | }); 48 | }); 49 | 50 | }); 51 | 52 | String.prototype.capitalizeFirstLetter = function() { 53 | return this.charAt(0).toUpperCase() + this.slice(1); 54 | } 55 | -------------------------------------------------------------------------------- /vendor/crodas/languagedetector/tests/assert/spanish/2.txt: -------------------------------------------------------------------------------- 1 | EFE.- "Desde ahora, las relaciones Norte-Sur entrarán en estado de guerra y los asuntos que surjan entre el Norte y el Sur serán tratados de acuerdo con ello", señaló el régimen a través de un anuncio especial publicado en la agencia estatal. 2 | 3 | En su habitual tono belicista, los medios norcoreanos publicaron ayer que su líder Kim Jong-un ordenó tener preparados sus misiles para atacar en "cualquier momento" intereses de EEUU y Corea del Sur 4 | 5 | En su nuevo anuncio Corea del Norte aseguró que "la situación en la cual no hay ni guerra ni paz de la península de Corea ha terminado". 6 | 7 | Las dos Coreas han permanecido técnicamente en guerra desde el final del conflicto que las enfrentó entre 1950-1953 y que concluyó con un alto el fuego, tras el cual se firmó un armisticio y acuerdos de no agresión. 8 | 9 | El comunicado advirtió además de un "combate a gran escala" más allá de la región si Corea del Sur y EEUU continúan con sus actividades militares en la zona desmilitarizada entre las dos Coreas. 10 | 11 | Según la KCNA, que actúa de portavoz del régimen, el anuncio especial de hoy ha sido emitido por el Partido de los Trabajadores, ministros y otras instituciones. 12 | 13 | Estos anuncios se enmarcan en la campaña de amenazas que el régimen de Pyongyang dirige a Corea del Sur y EEUU desde que el pasado día 7 de marzo la ONU anunciara nuevas sanciones al país comunista por su última prueba nuclear de febrero. 14 | 15 | En dichas sanciones, China, principal aliado de Corea del Norte, respaldó y apoyó la penalización contra Pyongyang, una maniobra que según los analistas ha profundizado el aislamiento y la incapacidad para poder anticipar su inesperada respuesta. 16 | 17 | Esta misma semana Corea del Norte anunció la suspensión de la única línea de comunicación militar que mantenía con Corea del Sur y que gestiona el acceso al complejo industrial común de Kaesong, en medio de una escalada de tensión entre los dos países. 18 | -------------------------------------------------------------------------------- /migrations/m160101_000000_seomatic_addRobotsFields.php: -------------------------------------------------------------------------------- 1 | ColumnType::Varchar 19 | ); 20 | 21 | $this->_addColumnsAfter("seomatic_meta", $newColumns, "openGraphType"); 22 | 23 | // specify columns and AttributeType 24 | $newColumns = array ( 25 | 'siteRobots' => ColumnType::Varchar 26 | ); 27 | 28 | $this->_addColumnsAfter("seomatic_settings", $newColumns, "siteOpenGraphType"); 29 | 30 | // return true and let craft know its done 31 | return true; 32 | } 33 | 34 | private function _addColumnsAfter($tableName, $newColumns, $afterColumnHandle) 35 | { 36 | 37 | // this is a foreach loop, enough said 38 | foreach ($newColumns as $columnName => $columnType) 39 | { 40 | // check if the column does NOT exist 41 | if (!craft()->db->columnExists($tableName, $columnName)) 42 | { 43 | $this->addColumnAfter($tableName, $columnName, array( 44 | 'column' => $columnType, 45 | 'null' => false, 46 | ), 47 | $afterColumnHandle 48 | ); 49 | 50 | // log that we created the new column 51 | SeomaticPlugin::log("Created the `$columnName` in the `$tableName` table.", LogLevel::Info, true); 52 | 53 | } 54 | 55 | // if the column already exists in the table 56 | else { 57 | 58 | // tell craft that we couldn't create the column as it alredy exists. 59 | SeomaticPlugin::log("Column `$columnName` already exists in the `$tableName` table.", LogLevel::Info, true); 60 | 61 | } 62 | } 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /vendor/crodas/text-rank/lib/TextRank/Stopword/english-stopwords.txt: -------------------------------------------------------------------------------- 1 | a 2 | about 3 | above 4 | after 5 | again 6 | against 7 | all 8 | am 9 | an 10 | and 11 | any 12 | are 13 | aren't 14 | as 15 | at 16 | be 17 | because 18 | been 19 | before 20 | being 21 | below 22 | between 23 | both 24 | but 25 | by 26 | can't 27 | cannot 28 | could 29 | couldn't 30 | did 31 | didn't 32 | do 33 | does 34 | doesn't 35 | doing 36 | don't 37 | down 38 | during 39 | each 40 | e.g. 41 | few 42 | for 43 | from 44 | further 45 | had 46 | hadn't 47 | has 48 | hasn't 49 | have 50 | haven't 51 | having 52 | he 53 | he'd 54 | he'll 55 | he's 56 | her 57 | here 58 | here's 59 | hers 60 | herself 61 | him 62 | himself 63 | his 64 | how 65 | how's 66 | i 67 | i'd 68 | i'll 69 | i'm 70 | i've 71 | if 72 | in 73 | into 74 | is 75 | isn't 76 | it 77 | it's 78 | its 79 | itself 80 | let's 81 | me 82 | more 83 | most 84 | mustn't 85 | my 86 | myself 87 | no 88 | nor 89 | not 90 | of 91 | off 92 | on 93 | once 94 | only 95 | or 96 | other 97 | ought 98 | our 99 | ours 100 | ourselves 101 | out 102 | over 103 | own 104 | same 105 | shan't 106 | she 107 | she'd 108 | she'll 109 | she's 110 | should 111 | shouldn't 112 | so 113 | some 114 | such 115 | than 116 | that 117 | that's 118 | the 119 | their 120 | theirs 121 | them 122 | themselves 123 | then 124 | there 125 | there's 126 | these 127 | they 128 | they'd 129 | they'll 130 | they're 131 | they've 132 | this 133 | those 134 | through 135 | to 136 | too 137 | under 138 | until 139 | up 140 | very 141 | was 142 | wasn't 143 | we 144 | we'd 145 | we'll 146 | we're 147 | we've 148 | were 149 | weren't 150 | what 151 | what's 152 | when 153 | when's 154 | where 155 | where's 156 | which 157 | while 158 | who 159 | who's 160 | whom 161 | why 162 | why's 163 | with 164 | won't 165 | would 166 | wouldn't 167 | you 168 | you'd 169 | you'll 170 | you're 171 | you've 172 | your 173 | yours 174 | yourself 175 | yourselves 176 | -------------------------------------------------------------------------------- /vendor/crodas/text-rank/composer.lock: -------------------------------------------------------------------------------- 1 | { 2 | "_readme": [ 3 | "This file locks the dependencies of your project to a known state", 4 | "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file" 5 | ], 6 | "hash": "8d372775f7c62aeef298600677e8e4ed", 7 | "packages": [ 8 | { 9 | "name": "crodas/languagedetector", 10 | "version": "v0.1.1", 11 | "source": { 12 | "type": "git", 13 | "url": "https://github.com/crodas/LanguageDetector.git", 14 | "reference": "07aa8bb806cb71fe4e4352c12232a5c74bf416ed" 15 | }, 16 | "dist": { 17 | "type": "zip", 18 | "url": "https://api.github.com/repos/crodas/LanguageDetector/zipball/07aa8bb806cb71fe4e4352c12232a5c74bf416ed", 19 | "reference": "07aa8bb806cb71fe4e4352c12232a5c74bf416ed", 20 | "shasum": "" 21 | }, 22 | "require-dev": { 23 | "crodas/autoloader": "~0.1" 24 | }, 25 | "type": "library", 26 | "autoload": { 27 | "psr-0": { 28 | "LanguageDetector": "lib/" 29 | } 30 | }, 31 | "notification-url": "https://packagist.org/downloads/", 32 | "license": [ 33 | "BSD-4-Clause" 34 | ], 35 | "authors": [ 36 | { 37 | "name": "César D. Rodas", 38 | "email": "crodas@php.net" 39 | } 40 | ], 41 | "description": "simple library to classify texts", 42 | "time": "2013-11-06 01:26:03" 43 | } 44 | ], 45 | "packages-dev": [ 46 | 47 | ], 48 | "aliases": [ 49 | 50 | ], 51 | "minimum-stability": "dev", 52 | "stability-flags": [ 53 | 54 | ], 55 | "platform": { 56 | "ext-mbstring": "*" 57 | }, 58 | "platform-dev": [ 59 | 60 | ] 61 | } 62 | -------------------------------------------------------------------------------- /vendor/crodas/languagedetector/tests/assert/portuguese/4.txt: -------------------------------------------------------------------------------- 1 | A campanha da presidente Dilma Rousseff à reeleição, no ano que vem, será ancorada por um tripé de apelo popular, “traduzido” pelo Palácio do Planalto como “energia/comida/juros”. A um ano e meio da disputa, o marketing eleitoral dita a agenda da presidente e vai embalar o programa do PT, a ser exibido em rede nacional de TV no dia 9 de maio. 2 | 3 | 4 | Divulgação 5 | Cortes de impostos, queda dos juros e redução da conta de luz terão destaque no cardápio petista para o segundo mandato de Dilma, se tudo correr como o script previsto pelo Planalto. A estratégia é mostrar que a desoneração dos produtos da cesta básica, a tesourada nos juros, hoje em 7,25% ao ano, e a diminuição do preço da energia elétrica fazem parte de um pacote para promover a distribuição de renda e transformar o Brasil em um país de classe média. 6 | 7 | Dilma avalia que já tem marcas próprias de governo para exibir na propaganda eleitoral, além dos projetos herdados do ex-presidente Luiz Inácio Lula da Silva. Ela tem conversado com o ministro da Educação, Aloizio Mercadante, sobre a evolução do modelo que, a seu ver, criou um mercado de massas a partir de um “ciclo virtuoso”, com aumento dos investimentos, do emprego e do crédito. 8 | 9 | “Esse tripé dará as condições para a consolidação da imagem de Dilma e a manutenção da vantagem dela na eleição de 2014”, afirmou o deputado Paulo Teixeira (SP), secretário-geral do PT. 10 | 11 | A última pesquisa Ibope, feita em parceria com o Estado, confirmou o resultado de sondagens encomendadas pelo marqueteiro João Santana, consultor de Dilma, e reforçou a estratégia presidencial. Realizado entre os dias 14 e 18 deste mês, o levantamento indicou que as aparições de Dilma na TV, anunciando cortes de impostos e tarifas, renderam a ela nove pontos a mais desde novembro. 12 | 13 | Se as eleições fossem hoje, a presidente venceria no primeiro turno. Na pesquisa Ibope, ela tem 76% de potencial de voto, o que representa um eleitorado três vezes maior do que a soma de todos os seus adversários. 14 | -------------------------------------------------------------------------------- /vendor/crodas/text-rank/README.md: -------------------------------------------------------------------------------- 1 | TextRank [![Build Status](https://travis-ci.org/crodas/TextRank.png?branch=master)](https://travis-ci.org/crodas/TextRank) Flattr this 2 | ======== 3 | 4 | extract relevant keywords from a given text 5 | 6 | 7 | How to use it 8 | ------------- 9 | 10 | In order to use the class, you must instance a `Config` object. 11 | 12 | 13 | ```php 14 | getKeywords($some_long_text); 25 | 26 | var_dump($keywords); 27 | 28 | ``` 29 | 30 | It is possible to get better results by adding few information about the language (`stopword` list, `stemmer` with `pecl install stem`). 31 | 32 | 33 | ```php 34 | addListener(new Stopword); 44 | 45 | $textrank = new TextRank($config); 46 | $keywords = $textrank->getKeywords($some_long_text); 47 | 48 | var_dump($keywords); 49 | 50 | ``` 51 | By doing this it will detect the language of the text and will remove common words (from the stopword list). If `ext-stem` is available the results will be even better. 52 | 53 | 54 | Summarize large texts 55 | --------------------- 56 | 57 | This class is also capable of summarizing long texts 58 | 59 | ```php 60 | $config = new \crodas\TextRank\Config; 61 | $config->addListener(new \crodas\TextRank\Stopword); 62 | $analizer = new \crodas\TextRank\Summary($config); 63 | $summary = $analizer->getSummary($text); 64 | ``` 65 | 66 | `$summary` is at most 5% of the sentences of the text. 67 | -------------------------------------------------------------------------------- /templates/_twitterCardDisplayPreview.twig: -------------------------------------------------------------------------------- 1 | {% if seomaticMeta.twitter is defined and seomaticMeta.twitter %} 2 | {% set lg = false %} 3 | {% if seomaticMeta.twitter.card == "summary_large_image" %} 4 | {% set lg = true %} 5 | {% endif %} 6 |
7 |
8 | 9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |

{{ seomaticMeta.twitter.title |raw }}

18 |

{{ seomaticMeta.twitter.description |raw }}

19 | {{ siteUrl | replace({'http://': ''}) | replace({'https://': ''}) | replace({'/': ''}) }} 20 |
21 |
22 |
23 |
24 |
25 | 26 | 36 | {% else %} 37 |

Twitter Handle has not been set

38 | {% endif %} -------------------------------------------------------------------------------- /migrations/m160707_000000_seomatic_addGoogleTagManager.php: -------------------------------------------------------------------------------- 1 | ColumnType::Varchar, 19 | ); 20 | 21 | $this->_addColumnsAfter("seomatic_settings", $newColumns, "googleAnalyticsUID"); 22 | 23 | // return true and let craft know its done 24 | return true; 25 | } 26 | 27 | private function _addColumnsAfter($tableName, $newColumns, $afterColumnHandle) 28 | { 29 | 30 | // this is a foreach loop, enough said 31 | foreach ($newColumns as $columnName => $columnType) 32 | { 33 | // check if the column does NOT exist 34 | if (!craft()->db->columnExists($tableName, $columnName)) 35 | { 36 | $this->addColumnAfter($tableName, $columnName, array( 37 | 'column' => $columnType, 38 | 'null' => false, 39 | ), 40 | $afterColumnHandle 41 | ); 42 | 43 | // log that we created the new column 44 | SeomaticPlugin::log("Created the `$columnName` in the `$tableName` table.", LogLevel::Info, true); 45 | 46 | } 47 | 48 | // if the column already exists in the table 49 | else { 50 | 51 | // tell craft that we couldn't create the column as it alredy exists. 52 | SeomaticPlugin::log("Column `$columnName` already exists in the `$tableName` table.", LogLevel::Info, true); 53 | 54 | } 55 | } 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /migrations/m160206_000000_seomatic_addGoogleAnalyticsSendPageView.php: -------------------------------------------------------------------------------- 1 | ColumnType::Bool, 19 | ); 20 | 21 | $this->_addColumnsAfter("seomatic_settings", $newColumns, "googleAnalyticsUID"); 22 | 23 | // return true and let craft know its done 24 | return true; 25 | } 26 | 27 | private function _addColumnsAfter($tableName, $newColumns, $afterColumnHandle) 28 | { 29 | 30 | // this is a foreach loop, enough said 31 | foreach ($newColumns as $columnName => $columnType) 32 | { 33 | // check if the column does NOT exist 34 | if (!craft()->db->columnExists($tableName, $columnName)) 35 | { 36 | $this->addColumnAfter($tableName, $columnName, array( 37 | 'column' => $columnType, 38 | 'null' => false, 39 | ), 40 | $afterColumnHandle 41 | ); 42 | 43 | // log that we created the new column 44 | SeomaticPlugin::log("Created the `$columnName` in the `$tableName` table.", LogLevel::Info, true); 45 | 46 | } 47 | 48 | // if the column already exists in the table 49 | else { 50 | 51 | // tell craft that we couldn't create the column as it alredy exists. 52 | SeomaticPlugin::log("Column `$columnName` already exists in the `$tableName` table.", LogLevel::Info, true); 53 | 54 | } 55 | } 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /migrations/m170212_000000_seomatic_addGoogleAnalyticsAnonymizeIp.php: -------------------------------------------------------------------------------- 1 | ColumnType::Bool, 19 | ); 20 | 21 | $this->_addColumnsAfter("seomatic_settings", $newColumns, "googleAnalyticsLinker"); 22 | 23 | // return true and let craft know its done 24 | return true; 25 | } 26 | 27 | private function _addColumnsAfter($tableName, $newColumns, $afterColumnHandle) 28 | { 29 | 30 | // this is a foreach loop, enough said 31 | foreach ($newColumns as $columnName => $columnType) 32 | { 33 | // check if the column does NOT exist 34 | if (!craft()->db->columnExists($tableName, $columnName)) 35 | { 36 | $this->addColumnAfter($tableName, $columnName, array( 37 | 'column' => $columnType, 38 | 'null' => false, 39 | ), 40 | $afterColumnHandle 41 | ); 42 | 43 | // log that we created the new column 44 | SeomaticPlugin::log("Created the `$columnName` in the `$tableName` table.", LogLevel::Info, true); 45 | 46 | } 47 | 48 | // if the column already exists in the table 49 | else { 50 | 51 | // tell craft that we couldn't create the column as it alredy exists. 52 | SeomaticPlugin::log("Column `$columnName` already exists in the `$tableName` table.", LogLevel::Info, true); 53 | 54 | } 55 | } 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /migrations/m151226_000000_seomatic_addTwitterFacebookFields.php: -------------------------------------------------------------------------------- 1 | ColumnType::Varchar, 19 | 'openGraphType' => ColumnType::Varchar 20 | ); 21 | 22 | $this->_addColumnsAfter("seomatic_meta", $newColumns, "seoKeywords"); 23 | 24 | // specify columns and AttributeType 25 | $newColumns = array ( 26 | 'siteTwitterCardType' => ColumnType::Varchar, 27 | 'siteOpenGraphType' => ColumnType::Varchar 28 | ); 29 | 30 | $this->_addColumnsAfter("seomatic_settings", $newColumns, "siteSeoKeywords"); 31 | 32 | // return true and let craft know its done 33 | return true; 34 | } 35 | 36 | private function _addColumnsAfter($tableName, $newColumns, $afterColumnHandle) 37 | { 38 | 39 | // this is a foreach loop, enough said 40 | foreach ($newColumns as $columnName => $columnType) 41 | { 42 | // check if the column does NOT exist 43 | if (!craft()->db->columnExists($tableName, $columnName)) 44 | { 45 | $this->addColumnAfter($tableName, $columnName, array( 46 | 'column' => $columnType, 47 | 'null' => false, 48 | ), 49 | $afterColumnHandle 50 | ); 51 | 52 | // log that we created the new column 53 | SeomaticPlugin::log("Created the `$columnName` in the `$tableName` table.", LogLevel::Info, true); 54 | 55 | } 56 | 57 | // if the column already exists in the table 58 | else { 59 | 60 | // tell craft that we couldn't create the column as it alredy exists. 61 | SeomaticPlugin::log("Column `$columnName` already exists in the `$tableName` table.", LogLevel::Info, true); 62 | 63 | } 64 | } 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /resources/js/field_settings.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Functionality for Seomatic MetaField fieldtype settings 3 | * by Andrew Welch - http://nystudio107.com 4 | * 5 | * Depends on: jQuery 6 | */ 7 | 8 | 9 | $( document ).ready(function() { 10 | 11 | /* -- Show/hide the select fields initially */ 12 | 13 | $('.selectField > select').each(function( index, value ) { 14 | popupValue = $(this).val(); 15 | switch (popupValue) { 16 | case "custom": 17 | $(this).closest('.comboField-wrapper').children('.selectFieldWrapper').hide(); 18 | $(this).closest('.comboField-wrapper').children('.customFieldWrapper').show(); 19 | break; 20 | 21 | case "keywords": 22 | $(this).closest('.comboField-wrapper').children('.selectFieldWrapper').show(); 23 | $(this).closest('.comboField-wrapper').children('.customFieldWrapper').hide(); 24 | break; 25 | 26 | case "field": 27 | $(this).closest('.comboField-wrapper').children('.selectFieldWrapper').show(); 28 | $(this).closest('.comboField-wrapper').children('.customFieldWrapper').hide(); 29 | break; 30 | } 31 | }); 32 | 33 | $('.selectField > select').on('change', function(e) { 34 | 35 | switch (this.value) { 36 | case "custom": 37 | $(this).closest('.comboField-wrapper').children('.selectFieldWrapper').hide(); 38 | $(this).closest('.comboField-wrapper').children('.customFieldWrapper').show(); 39 | break; 40 | 41 | case "keywords": 42 | $(this).closest('.comboField-wrapper').children('.selectFieldWrapper').show(); 43 | $(this).closest('.comboField-wrapper').children('.customFieldWrapper').hide(); 44 | break; 45 | 46 | case "field": 47 | $(this).closest('.comboField-wrapper').children('.selectFieldWrapper').show(); 48 | $(this).closest('.comboField-wrapper').children('.customFieldWrapper').hide(); 49 | break; 50 | } 51 | }); 52 | }); 53 | -------------------------------------------------------------------------------- /migrations/m160111_000000_seomatic_addTitleFields.php: -------------------------------------------------------------------------------- 1 | ColumnType::Varchar, 19 | 'siteSeoTitlePlacement' => ColumnType::Varchar 20 | ); 21 | 22 | $this->_addColumnsAfter("seomatic_settings", $newColumns, "siteSeoTitle"); 23 | 24 | // return true and let craft know its done 25 | return true; 26 | } 27 | 28 | private function _addColumnsAfter($tableName, $newColumns, $afterColumnHandle) 29 | { 30 | 31 | // this is a foreach loop, enough said 32 | foreach ($newColumns as $columnName => $columnType) 33 | { 34 | // check if the column does NOT exist 35 | if (!craft()->db->columnExists($tableName, $columnName)) 36 | { 37 | $this->addColumnAfter($tableName, $columnName, array( 38 | 'column' => $columnType, 39 | 'null' => false, 40 | ), 41 | $afterColumnHandle 42 | ); 43 | 44 | // log that we created the new column 45 | SeomaticPlugin::log("Created the `$columnName` in the `$tableName` table.", LogLevel::Info, true); 46 | 47 | } 48 | 49 | // if the column already exists in the table 50 | else { 51 | 52 | // tell craft that we couldn't create the column as it alredy exists. 53 | SeomaticPlugin::log("Column `$columnName` already exists in the `$tableName` table.", LogLevel::Info, true); 54 | 55 | } 56 | } 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /migrations/m160904_000000_seomatic_addTwitterFacebookImages.php: -------------------------------------------------------------------------------- 1 | ColumnType::Int, 20 | 'seoFacebookImageId' => ColumnType::Int 21 | ); 22 | 23 | $this->_addColumnsAfter("seomatic_meta", $newColumns, "seoImageId"); 24 | 25 | // specify columns and AttributeType 26 | $newColumns = array ( 27 | 'siteSeoTwitterImageId' => ColumnType::Int, 28 | 'siteSeoFacebookImageId' => ColumnType::Int 29 | ); 30 | 31 | $this->_addColumnsAfter("seomatic_settings", $newColumns, "siteSeoImageId"); 32 | 33 | // return true and let craft know its done 34 | return true; 35 | } 36 | 37 | private function _addColumnsAfter($tableName, $newColumns, $afterColumnHandle) 38 | { 39 | 40 | // this is a foreach loop, enough said 41 | foreach ($newColumns as $columnName => $columnType) 42 | { 43 | // check if the column does NOT exist 44 | if (!craft()->db->columnExists($tableName, $columnName)) 45 | { 46 | $this->addColumnAfter($tableName, $columnName, array( 47 | 'column' => $columnType, 48 | 'null' => true, 49 | ), 50 | $afterColumnHandle 51 | ); 52 | 53 | // log that we created the new column 54 | SeomaticPlugin::log("Created the `$columnName` in the `$tableName` table.", LogLevel::Info, true); 55 | 56 | } 57 | 58 | // if the column already exists in the table 59 | else { 60 | 61 | // tell craft that we couldn't create the column as it alredy exists. 62 | SeomaticPlugin::log("Column `$columnName` already exists in the `$tableName` table.", LogLevel::Info, true); 63 | 64 | } 65 | } 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /migrations/m160204_000000_seomatic_addGoogleAnalytics.php: -------------------------------------------------------------------------------- 1 | ColumnType::Varchar, 19 | 'googleAnalyticsAdvertising' => ColumnType::Bool, 20 | ); 21 | 22 | $this->_addColumnsAfter("seomatic_settings", $newColumns, "googleSiteVerification"); 23 | 24 | // return true and let craft know its done 25 | return true; 26 | } 27 | 28 | private function _addColumnsAfter($tableName, $newColumns, $afterColumnHandle) 29 | { 30 | 31 | // this is a foreach loop, enough said 32 | foreach ($newColumns as $columnName => $columnType) 33 | { 34 | // check if the column does NOT exist 35 | if (!craft()->db->columnExists($tableName, $columnName)) 36 | { 37 | $this->addColumnAfter($tableName, $columnName, array( 38 | 'column' => $columnType, 39 | 'null' => false, 40 | ), 41 | $afterColumnHandle 42 | ); 43 | 44 | // log that we created the new column 45 | SeomaticPlugin::log("Created the `$columnName` in the `$tableName` table.", LogLevel::Info, true); 46 | 47 | } 48 | 49 | // if the column already exists in the table 50 | else { 51 | 52 | // tell craft that we couldn't create the column as it alredy exists. 53 | SeomaticPlugin::log("Column `$columnName` already exists in the `$tableName` table.", LogLevel::Info, true); 54 | 55 | } 56 | } 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /vendor/crodas/text-rank/lib/TextRank/Stopword/spanish-stopwords.txt: -------------------------------------------------------------------------------- 1 | un 2 | una 3 | unas 4 | unos 5 | uno 6 | sobre 7 | todo 8 | también 9 | tras 10 | otro 11 | algún 12 | alguno 13 | alguna 14 | algunos 15 | algunas 16 | ser 17 | es 18 | soy 19 | eres 20 | somos 21 | sois 22 | estoy 23 | esta 24 | estamos 25 | estais 26 | estan 27 | como 28 | en 29 | para 30 | atras 31 | porque 32 | por qué 33 | estado 34 | estaba 35 | ante 36 | antes 37 | siendo 38 | ambos 39 | pero 40 | por 41 | poder 42 | puede 43 | puedo 44 | podemos 45 | podeis 46 | pueden 47 | fui 48 | fue 49 | fuimos 50 | fueron 51 | hacer 52 | hago 53 | hace 54 | hacemos 55 | haceis 56 | hacen 57 | cada 58 | fin 59 | incluso 60 | primero desde 61 | conseguir 62 | consigo 63 | consigue 64 | consigues 65 | conseguimos 66 | consiguen 67 | ir 68 | voy 69 | va 70 | vamos 71 | vais 72 | van 73 | vaya 74 | gueno 75 | ha 76 | tener 77 | tengo 78 | tiene 79 | tenemos 80 | teneis 81 | tienen 82 | el 83 | la 84 | lo 85 | las 86 | los 87 | su 88 | aqui 89 | mio 90 | tuyo 91 | ellos 92 | ellas 93 | nos 94 | nosotros 95 | vosotros 96 | vosotras 97 | si 98 | dentro 99 | solo 100 | solamente 101 | saber 102 | sabes 103 | sabe 104 | sabemos 105 | sabeis 106 | saben 107 | ultimo 108 | largo 109 | bastante 110 | haces 111 | muchos 112 | aquellos 113 | aquellas 114 | sus 115 | entonces 116 | tiempo 117 | verdad 118 | verdadero 119 | verdadera cierto 120 | ciertos 121 | cierta 122 | ciertas 123 | intentar 124 | intento 125 | intenta 126 | intentas 127 | intentamos 128 | intentais 129 | intentan 130 | dos 131 | bajo 132 | arriba 133 | encima 134 | usar 135 | uso 136 | usas 137 | usa 138 | usamos 139 | usais 140 | usan 141 | emplear 142 | empleo 143 | empleas 144 | emplean 145 | ampleamos 146 | empleais 147 | valor 148 | muy 149 | era 150 | eras 151 | eramos 152 | eran 153 | modo 154 | bien 155 | cual 156 | cuando 157 | donde 158 | mientras 159 | quien 160 | con 161 | entre 162 | sin 163 | trabajo 164 | trabajar 165 | trabajas 166 | trabaja 167 | trabajamos 168 | trabajais 169 | trabajan 170 | podria 171 | podrias 172 | podriamos 173 | podrian 174 | podriais 175 | yo 176 | aquel 177 | -------------------------------------------------------------------------------- /templates/_preview_display_modal.twig: -------------------------------------------------------------------------------- 1 | 32 | -------------------------------------------------------------------------------- /vendor/crodas/languagedetector/tests/assert/italian/3.txt: -------------------------------------------------------------------------------- 1 | Lucy Lawless nella parte di Xena ebbe grande successo, Xena - Principessa guerriera debuttò il 4 settembre del 1995. Lo show fu apprezzatissimo e durò ben sei stagioni. 2 | Nonostante il successo con Xena, la Lawless non riuscì ad avere più ruoli di maggior spessore, come spesso accade agli attori di serie durature come questa, che finiscono, inevitabilmente, per rimanere "imprigionati" nei personaggi che li hanno resi celebri. Lucy Lawless rimane comunque un personaggio famoso; è stata anche ritratta come personaggio della serie animata I Simpsons. 3 | Nel 1997, la Lawless è stata nominata una delle 50 donne più belle al mondo dalla rivista People. 4 | È apparsa poi ne I monologhi della vagina, nei primi due episodi della nona stagione di X-Files (interpretando il ruolo del supersoldato Shannon McMahon), nella breve serie televisiva di Tarzan e in Due uomini e mezzo. Ha avuto delle piccole comparse nei film Eurotrip, Spider-Man e nel film horror Boogeyman - L'uomo nero. Successivamente è stata una delle protagoniste del film Locusts! (Invasion: il giorno delle locuste) e del film Vampire Bats. Ha anche interpretato l'agente Morris nel telefilm Veronica Mars, nella puntata intitolata "Il Rapimento". 5 | Dal 2005, Lucy ha avuto un ruolo ricorrente in Battlestar Galactica in cui interpreta D'Anna Biers. 6 | Nel 2008 ha preso parte a un episodio di CSI: Miami e a due episodi di The L Word; ha inoltre un ruolo nel film natalizio Racconti incantati accanto a Adam Sandler e Keri Russell. 7 | Nel 2009 ha preso parte al film Bitch Slap interpretando un piccolo ruolo nella parte di Mother Superior affiancata dalla sua amica Renée O'Connor nella parte di Sister Batril. 8 | Nel 2009 prima apparizione nella serie Angel of Death 6º episodio nel ruolo di Vera. 9 | Nel 2010 è tornata in tv nella serie televisiva Spartacus, prodotta dal marito Robert Tapert, in cui ha interpretato il ruolo di "Lucretia". La serie è stata trasmessa sul canale americano Starz a partire da gennaio. 10 | Nel Febbraio del 2012 è stata arrestata assieme ad altri cinque manifestanti di Greenpeace a seguito del tentativo di bloccare la partenza di una nave volta al trivellamento petrolifero nel Mare Artico[1]. 11 | -------------------------------------------------------------------------------- /vendor/crodas/languagedetector/tests/assert/portuguese/1.txt: -------------------------------------------------------------------------------- 1 | Morreu na noite desta sexta-feira (29), no Hospital Dr. Mário Gatti em Campinas (SP), a terceira vítima do ônibus que caiu em uma ribanceira na Rodovia Anhanguera, em Vinhedo (SP). Segundo a assessoria da unidade médica, o homem, de 34 anos, teve traumatismo craniano, chegou a ser atendido, mas não resistiu. Outras 27 pessoas ficaram feridas. 2 | 3 | O ônibus rodoviário intermunicipal fazia o itinerário São Paulo-Campinas com 34 passageiros. De acordo com a assessoria do Mário Gatti, Edson Rodrigo da Silva era funcionário da Viação Cometa e pegava carona no veículo. 4 | 5 | Segundo a concessionária responsável pelo trecho, a AutoBan, 16 pessoas tiveram ferimentos leves e outras quatro ferimentos moderados. Os outros sete feridos, segundo a polícia, tiveram escoriações, receberam atendimento no local e foram liberados em seguida. O restante dos passageiros do ônibus não se feriu. 6 | 7 | Volante puxado por passageiro 8 | A concessionária informou que o veículo passava pelo quilômetro 79, no sentido interior, quando o acidente ocorreu. O motorista do ônibus relatou à reportagem da EPTV, afiliada da TV Globo no interior paulista, que o acidente teria sido provocado por um passageiro que tentou segurar a direção do ônibus durante o trajeto. 9 | 10 | Do nada, ele saiu e puxou a direção. Não falou nada. O carro não tem cabine [separando os passageiros do condutor] porque é usado em viagens curtas, contou o motorista Reginaldo Gomes enquanto recebia atendimento médico com as outras vítimas no local do acidente. 11 | 12 | Trânsito e resgate 13 | Equipes dos bombeiros, Samu, Polícia Militar Rodoviária e da concessionária trabalharam no resgate das vítimas. O trânsito foi interrompido na faixa da direita e no acostamento, o que causou lentidão no trecho e um quilômetro de congestionamento. O tráfego foi liberado totalmente e voltou à normalidade às 19h30, segundo a AutoBan. 14 | 15 | Em nota, a assessoria de imprensa da Viação Cometa informou que apura as causas do acidente e que está dando toda a assistência necessária aos passageiros e familiares. Segundo a Polícia Rodoviária, o caso será registrado na delegacia do município de Vinhedo, que fica responsável por apurar as causas do acidente. 16 | 17 | 18 | -------------------------------------------------------------------------------- /templates/welcome.twig: -------------------------------------------------------------------------------- 1 | {% extends '_layouts/cp' %} 2 | {% set title = 'Welcome to SEOmatic!' %} 3 | 4 | {% includeCssResource "seomatic/css/style.css" %} 5 | 6 | {% set linkGetStarted = url('seomatic/site') %} 7 | {% set docsUrl = "https://github.com/nystudio107/seomatic/wiki" %} 8 | 9 | {% set crumbs = [ 10 | { label: craft.seomatic.getPluginName(), url: url('seomatic') }, 11 | { label: "Welcome"|t, url: url('seomatic/welcome') }, 12 | ] %} 13 | 14 | {% set content %} 15 |
16 | 17 |

Thanks for using SEOmatic!

18 |

SEOmatic is a turnkey SEO implementation for Craft CMS that is comprehensive, powerful, and flexible. The SEOmetrics feature scans your content for focus keywords, and offers analysis on how to improve your SEO.

19 |

It implements JSON-LD microdata, Dublin Core core metadata, Twitter Card tags, Facebook Open Graph tags, Humans.txt authorship accreditation, and as well as HTML meta tags.

20 |

The general philosophy is that SEO Site Meta can be overridden by SEO Template Meta, which can be overridden by SEO Entry Meta, which can be overridden by dynamic SEO Twig tags. See the documentation for details by clicking on the ? link below.

21 |

To better understand how all of this metadata benefits your website, please read: Promote Your Content with Structured Data Markup

22 |

23 |   24 |

25 |

26 | 27 |

28 |
29 |
30 |

31 | Brought to you by nystudio107 32 |

33 |
34 | {% endset %} -------------------------------------------------------------------------------- /migrations/m160206_000000_seomatic_addGoogleAnalyticsPlugins.php: -------------------------------------------------------------------------------- 1 | ColumnType::Bool, 19 | 'googleAnalyticsEEcommerce' => ColumnType::Bool, 20 | 'googleAnalyticsLinkAttribution' => ColumnType::Bool, 21 | 'googleAnalyticsLinker' => ColumnType::Bool, 22 | ); 23 | 24 | $this->_addColumnsAfter("seomatic_settings", $newColumns, "googleAnalyticsAdvertising"); 25 | 26 | // return true and let craft know its done 27 | return true; 28 | } 29 | 30 | private function _addColumnsAfter($tableName, $newColumns, $afterColumnHandle) 31 | { 32 | 33 | // this is a foreach loop, enough said 34 | foreach ($newColumns as $columnName => $columnType) 35 | { 36 | // check if the column does NOT exist 37 | if (!craft()->db->columnExists($tableName, $columnName)) 38 | { 39 | $this->addColumnAfter($tableName, $columnName, array( 40 | 'column' => $columnType, 41 | 'null' => false, 42 | ), 43 | $afterColumnHandle 44 | ); 45 | 46 | // log that we created the new column 47 | SeomaticPlugin::log("Created the `$columnName` in the `$tableName` table.", LogLevel::Info, true); 48 | 49 | } 50 | 51 | // if the column already exists in the table 52 | else { 53 | 54 | // tell craft that we couldn't create the column as it alredy exists. 55 | SeomaticPlugin::log("Column `$columnName` already exists in the `$tableName` table.", LogLevel::Info, true); 56 | 57 | } 58 | } 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /migrations/m160202_000000_seomatic_addSocialHandles.php: -------------------------------------------------------------------------------- 1 | ColumnType::Varchar, 19 | ); 20 | 21 | $this->_addColumnsAfter("seomatic_settings", $newColumns, "youtubeHandle"); 22 | 23 | // specify columns and AttributeType 24 | $newColumns = array ( 25 | 'githubHandle' => ColumnType::Varchar, 26 | ); 27 | 28 | $this->_addColumnsAfter("seomatic_settings", $newColumns, "pinterestHandle"); 29 | 30 | // return true and let craft know its done 31 | return true; 32 | } 33 | 34 | private function _addColumnsAfter($tableName, $newColumns, $afterColumnHandle) 35 | { 36 | 37 | // this is a foreach loop, enough said 38 | foreach ($newColumns as $columnName => $columnType) 39 | { 40 | // check if the column does NOT exist 41 | if (!craft()->db->columnExists($tableName, $columnName)) 42 | { 43 | $this->addColumnAfter($tableName, $columnName, array( 44 | 'column' => $columnType, 45 | 'null' => false, 46 | ), 47 | $afterColumnHandle 48 | ); 49 | 50 | // log that we created the new column 51 | SeomaticPlugin::log("Created the `$columnName` in the `$tableName` table.", LogLevel::Info, true); 52 | 53 | } 54 | 55 | // if the column already exists in the table 56 | else { 57 | 58 | // tell craft that we couldn't create the column as it alredy exists. 59 | SeomaticPlugin::log("Column `$columnName` already exists in the `$tableName` table.", LogLevel::Info, true); 60 | 61 | } 62 | } 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /resources/js/meta.js: -------------------------------------------------------------------------------- 1 | var selectedItem = ""; 2 | if (typeof metaFieldPrefix == 'undefined') 3 | var metaFieldPrefix = ""; 4 | 5 | function setSelectedValue(whichValue) { 6 | selectedItem = whichValue; 7 | } /* -- setSelectedValue */ 8 | 9 | function fillDynamicMenu(whichValue) { 10 | var menu = $('#' + metaFieldPrefix + 'seoMainEntityOfPage'); 11 | 12 | menu.empty(); 13 | if (main_enitity_items[whichValue]) { 14 | $.each(main_enitity_items[whichValue], function(){ 15 | $("